Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. はじめに

おそらく、「分散監視」という用語について、誰もが同じ理解を持っているわけではないでしょう。 実際、監視システムは、それ自体を監視しているだけの場合(これはあまり意味がありません)を除き、常に複数のコンピュータに分散されています。 そのため、このユーザーガイドでは、監視システム全体が 1 つの Checkmk サイトだけで構成されている場合、常に分散監視と表現しています。

したがって、このユーザーガイドでは、監視システム全体が複数の Checkmk サイトから構成される場合を、常に分散監視と呼びます。 監視を複数のサイトに分割する理由はいくつかあります。 パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス:パフォーマンス

  • パフォーマンス:プロセッサ負荷は、複数のマシンで共有する必要があります。

  • 組織:さまざまなグループが、それぞれのサイトを独立して管理できる必要があります。

  • 可用性:ある場所での監視は、他の場所とは独立して機能する必要があります。

  • セキュリティ:2つのセキュリティドメイン間のデータストリームは、個別かつ厳密に制御する必要があります(DMZなど)。

  • ネットワーク: 帯域幅の狭い接続や信頼性の低い接続しか利用できない場所は、リモートで確実に監視できません。

Checkmk は、分散監視を実装するためのさまざまな手順をサポートしています。 Checkmk は、Nagios と大部分互換性があるか、または Nagios をベースとしているため(Nagios がコアとしてインストールされている場合)、その一部を制御します。 これには、mod_gearman による手順などが含まれます。 Checkmk 独自のシステムに比べ、この方法には利点はなく、実装も面倒です。 そのため、この方法はお勧めしません。

Checkmk で推奨されている手順は、ライブステータスと分散設定環境に基づいています。 ネットワークが大幅に分離されている場合や、周辺からセンターへの一方向のデータ転送が厳格に制限されている場合は、ライブダンプ、または CMCDump を使用する方法があります この 2 つの方法は組み合わせることもできます。

2. ライブステータスによる分散監視

2.1. 基本原則

中央ステータス

ライブステータスは監視コアに統合されたインターフェイスで 他の外部プログラムがステータスデータを照会したり コマンドを実行したりすることができます。ライブステータスはネットワーク経由で利用可能にする ことができるため、リモートの Checkmk サイトからもアクセスできます。 Checkmkのユーザーインターフェースは、ライブステータスを使用して すべてのテザーサイトを一つの概要にまとめます。これにより、まるで 「大規模な」監視システムのような感覚を得ることができます。

次の図は、3 つの場所に分散した ライブステータスによる監視の構造を模式的に示したものです。 Checkmkセントラルサイトは、中央処理サイトにあります。 ここから、中央システムが直接制御されます。さらに、 リモートサイト 1およびリモートサイト 2が 他のネットワークにあり、それぞれのローカルシステムによって制御されています。

distributed monitoring overview en

この方法の特徴は、リモートサイトの監視ステータスが セントラルサイトに継続的に送信されないことです。GUI は、 コントロールセンターのユーザーが要求した場合にのみ、リモートサイトから ライブデータを取得します。 データは、その後、一元化されたビューにまとめられます。 したがって、中央でデータを保持する必要がないため、 スケーリングアップに大きなメリットがあります。

この方法の利点の一部を以下に示します。

  • スケーラビリティ:監視自体では、セントラルサイトとリモートサイト間のネットワークトラフィックはまったく発生しません。これにより、数百以上の場所を接続することができます。

  • 信頼性:リモートサイトへのネットワーク接続が切断されても、ローカル監視は通常どおり動作します。データ記録に「穴」が生じたり、データが「詰まる」こともありません。ローカル通知も引き続き機能します。

  • シンプルさ:サイトの追加や削除も非常に簡単です。

  • 柔軟性:リモートサイトは依然として独立しており、それぞれの場所で運用に使用できます。これは、「その場所」が他の監視にアクセスすることを決して許可してはならない場合に特に有用です。

中央セットアップ

上記のようにライブステータスを使用して分散されたシステムでは、個々のサイトは異なるチームによって独立して保守され、 セントラルサイトは集中管理されたダッシュボードを提供する役割のみを担うことが十分に可能です。

複数のサイト、またはすべてのサイトを同じチームで管理する必要がある場合、中央で設定を行う方がはるかにハンドルしやすくなります。 Checkmk はこれをサポートしており、このような設定を「セントラルセットアップ」と呼んでいます。 これにより、すべてのホストとサービス、ユーザーと許可、期間、通知などがセントラルサイトのSetup で管理され、指定に従ってリモートサイトに自動的に配布されます。

このようなシステムでは、共通のステータス概要だけでなく、共通の設定も使用できるため、事実上「大規模なシステムのような感覚」で使用できます。

このようなシステムは、サブエリアや特定のユーザーグループ専用のステータスインターフェイスとして機能する閲覧専用サイトなどを追加して拡張することもできます。

2.2. 分散監視の設定

ライブステータス/中央セットアップを使用して分散監視をインストールするには、以下の手順に従います。

  1. まず、単一のサイトの場合と同じように、セントラルサイトをインストールします。

  2. リモートサイトをインストールし、ネットワーク経由でライブステータスを有効にします。

  3. リモートサイトをセントラルサイトに統合します。Setup > General > Distributed monitoring

  4. ホストおよびサービスについては、監視するサイトから指定します。

  5. 移行したホストに対してサービスディスカバリーを実行し、変更をアクティブにします。

セントラルサイトの設定

セントラルサイトには特別な要件はありません。 つまり、ピギーバックデータを正しくハンドルするために必要な 1 つの変更だけで、既存のサイトを分散監視に拡張することができます。 セットアップページSetup > General > Global settings のセクションSite management で、ピギーバックハブを有効にするだけです。

Die Option 'Enable piggyback-hub' in den globalen Einstellungen.

リモートサイトの設定とネットワーク経由のライブステータスの有効化

omd create で、リモートサイトは通常の方法で新しいサイトとして生成されます。 これは、当然のことながら、それぞれのリモートサイトに対応する (リモート) サーバーで行われます。

特別な注意事項

  • リモートサイトには、分散監視で固有のID を使用してください。

  • リモートサイトとセントラルサイトの Checkmk バージョン (2.4.0 など) は同じにしてください。バージョンの混在は、更新を容易にするためだけにサポートされています。

  • Checkmk が 1 台のサーバーで複数のサイトをサポートしているのと同様に、リモートサイトも 1 台のサーバーで実行できます。

ここでは、myremote1 という名前のリモートサイトを作成する例を示します。

root@linux# omd create myremote1
Adding /opt/omd/sites/myremote1/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/myremote1/tmp...OK
Updating core configuration...
Generating configuration for core (type cmc)...
Starting full compilation for all hosts Creating global helper config...OK
 Creating cmc protobuf configuration...OK
Executing post-create script "01_create-sample-config.py"...OK
Restarting Apache...OK
Created new site myremote1 with version 2.4.0p8.cee.

  The site can be started with omd start myremote1.
  The default web UI is available at http://myserver/myremote1/

  The admin user for the web applications is cmkadmin with password: lEnM8dUV
  For command line administration of the site, log in with 'omd su myremote1'
  After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.

ここで最も重要なステップは、ネットワークの TCP 経由でライブステータスを有効にし、ここでもピギーバックハブを有効にすることです。 ライブステータスはそれ自体は安全なプロトコルではないため、 安全なネットワーク(セキュリティ保護された LAN、VPN など)内でのみ使用してください。 有効化は、サイトが停止している状態で、サイトユーザーとしてomd config を使用して行います。

root@linux# su - myremote1
OMD[myremote1]:~$ omd config

次に、Distributed Monitoring を選択してください:

 ┌サイトの設定myremote1──  サイトの対話設定      │  
  設定変数。以下を編集できます │  
  値を変更できます │  
  サイトの停止中にのみ値を変更できます。                │  
 値を変更してください  
  基本                        
  Web GUI                      
 アドオン                       
  分散監視       
                                 
 └──────────────────────────────┘  
 ├──────────────────────────────────┤  
        <Enter>   <Exit >         │  
 └──────────────────────────────────┘  
                                       

LIVESTATUS_TCPon に設定し、このサーバーで明示的に指定されているLIVESTATUS_TCP_PORT の使用可能なポート番号を入力してください。デフォルトは 6557 です。

 ────────────分散監視──────────────┐ ┌────────────────────────────────────────────┐  
  LIVEPROXYD               on   
   LIVESTATUS_TCP           オン   
   LIVESTATUS_TCP_ONLY_FROM 0.0.0.0 ::/0   
   LIVESTATUS_TCP_PORT       6557             
   LIVESTATUS_TCP_TLS       on   
   PIGGYBACK_HUB            オン   
                                               
 └────────────────────────────────────────────┘  
 ├────────────────────────────────────────────────┤  
          < 変更  >    <メインメニュー>            │  
 └────────────────────────────────────────────────┘  
                                                     

保存後、omd start で通常どおりサイトを開始してください。

OMD[myremote1]:~$ omd start
Starting agent-receiver...OK
Starting mkeventd...OK
Starting liveproxyd...OK
Starting mknotifyd...OK
Starting rrdcached...OK
Starting redis...OK
Starting automation-helper...OK
Starting ui-job-scheduler...OK
Starting cmc...OK
Starting apache...OK
Starting dcd...OK
Starting rabbitmq...OK
Starting stunnel...OK
Starting piggyback-hub...OK
Starting xinetd...OK
Starting crontab...OK

cmkadmin のパスワードを覚えておいてください。 このパスワードは 2 回だけ必要になります。1 回目はピギーバックハブを有効にするため、2 回目はリモートサイトをセントラルサイトに接続するためです。 リモートサイトがセントラルサイトに従属すると、 すべてのユーザーはセントラルサイトのユーザーに置き換えられます。

これでサイトの準備は完了です。netstat で確認してください。 ポート 6557 が開いていることが表示されます。このポートへの接続は、サイト インターネットスーパーサーバーxinetd によって行われます。このサーバーは、サイト内で直接実行されています。

root@linux# netstat -lnp | grep 6557
tcp6       0      0 :::6557               :::*          LISTEN      10719/xinetd

次に、ユーザーcmkadmin としてリモートインスタンスに一度ログインし、セクションSite management の設定Setup > General > Global を使用してピギーバックハブを有効にします。

Die Option 'Enable piggyback-hub' in den globalen Einstellungen.
Tip

変更を適用してください(Activate changes を使用)。

リモートサイトをセントラルサイトに割り当てる

分散監視の設定は、セントラルサイトのメニューSetup > General > Distributed monitoring でのみ行います。これは、個々のサイトへの接続を管理するためのものです。 この機能では、セントラルサイト自体がサイトとしてカウントされ、リストにすでに存在しています。

distributed monitoring central site

Add connection を使用して、最初のリモートサイトへの接続を定義します。

distributed monitoring basic settings

Basic settings では、omd createで定義したリモートサイトの正確な名前をSite ID として使用することが重要です。 エイリアスは、いつものように任意で定義でき、後で変更することもできます。

distributed monitoring status connection

Status connection の設定によって、セントラルサイトがライブステータスを介してリモートサイトのステータスを照会する方法が決まります。 スクリーンショットの例は、Connect via TCP(IPv4) 方法による接続を示しています。 これは、レイテンシーが短く(LAN など)、安定した接続に最適です。 WAN 接続に最適な設定については、後で説明します。

ここに、リモート web インターフェイスの HTTP-URL を入力します(check_mk/ の部分のみ)。 基本的に HTTPS 経由で Checkmk にアクセスする場合は、ここでhttphttps に置き換えてください。 詳細については、オンラインヘルプまたはHTTPS による web インターフェイスのセキュリティ保護に関する記事をご覧ください。

distributed monitoring configuration connection

設定を複製してセントラルセットアップを使用することは、冒頭で説明したようにオプションです。 セントラルサイトからリモートを設定する場合は、Push configuration to this site を選択して複製を有効にしてください。 その場合は、上の画像とまったく同じ設定を選択してください。

指定する必要があるMessage broker port を必ずチェックしてください。 これを確認するには、それぞれのリモートサイトにログインし、コマンドラインからomd config を実行します。Basic セクションに移動します。 ここで、変数RABBITMQ_PORT が関連しています。

 ─────────────────基本───────────────────┐ ┌─────────────────────────────────────┐  
   ADMIN_MAIL                          
   AGENT_RECEIVER           on   
   AGENT_RECEIVER_PORT      8016   
   AUTOMATION_HELPER        on   
   AUTOSTART                on   
   CORE                     cmc   
  RABBITMQ_DIST_PORT       25672   
  RABBITMQ_MANAGEMENT_PORT 15671     
   RABBITMQ_ONLY_FROM       ::   
  RABBITMQ_PORT             5671      
   TMPFS                    on   
                                        
 └─────────────────────────────────────┘  
 ├─────────────────────────────────────────┤  
        < 変更  >   <メインメニュー>        │  
 └─────────────────────────────────────────┘  
                                              
Tip

Message Broker Port は、Checkmk で特に使用されるメッセージブローカーソフトウェアである RabbitMQ であるため、ここでは変数RABBITMQ_PORT で定義されています。

URL of remote site の正しい設定は非常に重要です。 URL は必ず/check_mk/ で終わらなければなりません。リモートサイトの Apache が HTTPS をサポートしている場合は、HTTPS による接続をお勧めします。 これは、Linux レベルでリモートに手動でインストールする必要があります。 Checkmk アプライアンスの場合、HTTPS は web ベースのコンフィギュレーションインターフェイスを使用して設定できます。 自己署名証明書を利用する場合は、Ignore SSL certificate errors チェックボックスをオンにする必要があります。

マスクを保存すると、概要に 2 つ目のサイトが表示されます。

distributed monitoring before login

(これまでのところ)空のリモートサイトの監視ステータスが正しく統合されました。 セントラルセットアップを使用するには、リモート Checkmk サイト用のlogin がまだ必要です。 この目的のために、セントラルサイトは、ランダムに生成されたログインシークレットをリモートサイトと交換し、それ以降、すべての通信はそれを通じて行われます。 その後、リモートサイトへのcmkadmin アクセスは使用されなくなります。

ログインするには、アクセスデータcmkadmin およびリモートサイトの対応するパスワードを使用してください。Login ボタンをクリックする前に、ボックスConfirm overwrite をオンにしてください。

distributed monitoring login credentials

ログインが成功すると、次のように承認されます。

distributed monitoring successful login

ログインでエラーが発生した場合は、いくつかの原因が考えられます。 例えば、

  • リモートサイトが現在停止しています。

  • URL of remote site が正しく設定されていません。

  • URL で指定した「セントラルサイトからの」ホスト名でリモートに接続できません。

  • セントラルサイトとリモートサイトの Checkmk バージョンが(あまりにも)互換性がありません。

  • 無効なユーザー ID および/またはパスワードが入力されています。

最初の 2 つのリストエントリは、ブラウザでリモートの URL を手動で呼び出すことで簡単にテストできます。

すべて正常に完了したら、Activate Changes を実行してください。 これにより、通常どおり、まだアクティブになっていない変更の概要が表示されます。 同時に、概要には、ライブステータス接続の状態、およびセントラルセットアップの個々のサイトの同期状態も表示されます。

distributed monitoring activate pending changes

Version 列には、各サイトのライブステータスバージョンが表示されます。 CMC をCheckmk のコア(商業版)として使用している場合、コアのバージョン番号 (‘Core’ 列に表示)は、ライブステータスのバージョン番号と同じになります。 Nagios をコア(Checkmk Raw)として使用している場合、Nagios のバージョン番号がここに表示されます。

以下の記号は、設定環境の複製ステータスを示しています。

このサイトには未処理の変更があります。設定はセントラルサイトと一致していますが、すべての変更がアクティブ化されているわけではありません。ボタンをクリックすると、このサイトに対して対象を絞ったアクティブ化を行うことができます。

このサイトの構成は同期されておらず、引き継ぐ必要があります。もちろん、有効にするには再起動が必要です。どちらの機能も、 ボタンをクリックするだけで実行できます。

Status 列には、各サイトのライブステータス接続の状態が表示されます。 これは、設定はライブステータスではなくHTTP経由で送信されるため、 情報としてのみ表示されます。 以下の値が表示されます。

サイトはライブステータス経由でアクセス可能です。

サイトは現在アクセスできません。ライブステータスクエリはタイムアウト中です。これにより、ページの読み込みが遅れます。このサイトのステータスデータは GUI には表示されません。

サイトは現在アクセスできませんが、これはステータスホストの設定によるもの、またはライブステータスプロキシ下記参照)を通じて認識されているためです。アクセスできない場合でもタイムアウトにはなりません。このサイトのステータスデータは GUI には表示されません。

このサイトへのライブステータス接続は、 (セントラルサイト) 管理者によって一時的に無効にされています。この設定は、この接続の設定にある「この接続を一時的に無効にする」チェックボックスと一致しています。

Activate on selected sites ボタンをクリックすると、すべてのサイトが同期され、変更がアクティブになります。 これは並行して実行されるため、全体の時間は最も遅いサイトに必要な時間と同じになります。 この時間には、各サイトの構成スナップショットの作成、HTTP による送信、リモートサイトでのスナップショットの解凍、および変更のアクティブ化が含まれます。

重要:すべてのサイトで同期が完了する前にページを離れないでください 。ページを離れると、同期が中断されます。

ホストおよびフォルダに対して、どのサイトを監視するかを指定する

分散環境がインストールされたら、その使用を開始できます。 実際には、各ホストに、どのサイトによって監視されるかを指定するだけで済みます。 セントラルサイトはデフォルトで指定されています。

このために必要な属性は、‘Monitored on site’ です。 これは、ホストごとに個別に設定できます。 もちろん、これはフォルダレベルでも実行できます。

distributed monitoring monitored on site

新しいサービスディスカバリーを実行し、移行したホストの変更をアクティブにする

ホストの追加は通常どおり行います。ただし、監視 およびサービスディスカバリーは、それぞれのリモート サイトから実行されることを除けば、特別な考慮事項はありません。

ホストをあるサイトから別のサイトに移行する場合、注意すべき点がいくつかあります。 ホストの現在のステータスデータも履歴データも引き継がれません。 設定環境には、ホストの設定のみが残ります。 事実上、ホストは 1 つのサイトから削除され、別のサイトに新しくインストールされたことになります。

  • 自動的にディスカバリーされたサービスは移行されません。移行後にサービスディスカバリーを実行してください。

  • 再起動すると、ホストおよびサービスはPEND と表示されます。その結果、現在存在する問題が新たに通知される場合があります。

  • 履歴グラフは失われます。これは、関連する RRD ファイルを手動で移動することで回避できます。ファイルの場所は、ファイルとディレクトリで確認できます。

  • 可用性および履歴イベントのデータは失われます。これらのデータは、監視ログの 1 行で構成されているため、移行は容易ではありません。

ヒストリーの継続性が重要な場合は、監視の実装時に どのホストをどこから監視するかを慎重にプランしてください。

2.3. 暗号化によるライブステータスの接続

セントラルサイトとリモートサイト間のライブステータス接続は、暗号化することができます。 新しく作成されたサイトについては、Checkmk が必要な手順を自動的に実行するため、追加の作業は必要ありません。 その後、 omd configを使用してライブステータスを有効にすると、TLS による暗号化も自動的に有効になります。

 ────────────分散監視──────────────┐ ┌────────────────────────────────────────────┐  
  LIVEPROXYD               オン   
   LIVESTATUS_TCP           オン   
   LIVESTATUS_TCP_ONLY_FROM 0.0.0.0 ::/0   
   LIVESTATUS_TCP_PORT      6557            
   LIVESTATUS_TCP_TLS        オン               
   PIGGYBACK_HUB            on   
                                               
 └────────────────────────────────────────────┘  
 ├────────────────────────────────────────────────┤  
          < 変更  >    <メインメニュー>            │  
 └────────────────────────────────────────────────┘  
                                                     

したがって、分散監視の設定はこれまでと同様に簡単です。 他のサイトへの新しい接続については、オプションEncryption が自動的に有効になります。

リモートサイトを追加すると、2 つの点に気付くでしょう。まず、 接続が新しいアイコンで暗号化されていることが示されます。 次に、Checkmk は、CA がリモートサイトを信頼しなくなったことを通知します。をクリックすると、 使用されている証明書の詳細が表示されます。をクリックすると、 web インターフェイスから CA を簡単に追加できます。すると、両方の証明書が 信頼済みとしてリストされます。

distributed monitoring certificate details

使用されている技術の詳細

暗号化を実現するために、Checkmk はstunnel プログラムと 独自の証明書および独自の認証機関(CA) を使用して 証明書に署名します。これらは、新しいサイトごとに個別に自動的に生成されるため 、あらかじめ定義された静的な CA または証明書ではありません。これは、偽の 証明書が攻撃者に使用されるのを防ぐための非常に重要な安全対策です。偽の証明書を使用すると、攻撃者は 公開されている CA にアクセスできるからです。

生成された証明書には、以下の特性もあります。

  • 両方の証明書は PEM 形式です。サイト用の署名付き証明書には、完全な証明書チェーンも含まれています。

  • 鍵は 4096 ビットの RSA を使用し、証明書は SHA512 を使用して署名されています。

  • サイトの証明書は 10 年間有効です。

標準の証明書は有効期間が非常に長いため、分類できない接続の問題が発生することを非常に効果的に 防止できます。 同時に、証明書が一度侵害されると、それに応じて長期間、不正使用される可能性があることはもちろん可能です。 したがって、攻撃者が CA またはそれを使用して署名されたサイト証明書にアクセスするおそれがある場合は、 必ず両方の証明書 (CA およびサイト) を交換してください。 古いバージョンからの移行

古いバージョンからの移行

Checkmk のアップデート中、LIVESTATUS_TCP およびLIVESTATUS_TCP_TLS の 2 つのオプションは自動的に変更されることはありません。 TLS を自動的にアクティブにすると、最終的にはリモートサイトにクエリを送信できなくなる可能性があります。

これまで暗号化されていないライブステータスを使用しており、暗号化を使用することに決めた場合は、手動で暗号化を有効にする必要があります。 これを行うには、まず影響を受けるサイトを停止し、次のコマンドで TLS を有効にしてください。

OMD[mysite]:~$ omd config set LIVESTATUS_TCP_TLS on

証明書はアップデート中に自動的に生成されるため、サイトはすぐに新しい暗号化機能を使用します。 セントラルサイトからサイトに引き続きアクセスできるように、[Setup > General > Distributed Monitoring] のメニューで、[Encryption ] オプションがEncrypt data using TLS に設定されていることを確認してください。

distributed monitoring enable encryption

最後の手順は上記と同じです。ここでも、まずリモートサイトの CA を信頼済みとしてマークする必要があります。

2.4. 中央セットアップの特別な機能

分散監視は、ライブステータスを介して単一のシステムとほぼ同様に動作しますが、いくつかの特別な特徴があります。

監視対象ホストへのアクセス

監視対象ホストへのアクセスはすべて、そのホストが割り当てられている サイトから一貫して実行されます。 これは、実際の監視だけでなく、サービスディスカバリー診断ページ通知アラートハンドラー、その他すべてにも適用されます。 この点は、セントラルサイトが 実際にこのホストにアクセスできるとは想定されていないため、非常に重要です。

ビューでのサイトの指定

標準ビューの一部は、ホストを監視するサイトに応じてグループ化されています 。これは、たとえばAll hosts

distributed monitoring all hosts

サイトは、ホストまたはサービスの詳細にも同様に表示されます。

distributed monitoring service check mk

この情報は、通常、独自のビューを作成する際に 列で使用できます。また、特定のサイトのホストのビューをフィルタリングする フィルタもあります。

distributed monitoring filter by site

サイトステータススナップイン

サイドバーには、Site status スナップインがあり、を使用して追加できます。 これにより、個々のサイトのステータスが表示されます。 また、ステータスをクリックして、1 つのサイトだけ、または [Disable all ] または [Enable all] をクリックしてすべてのサイトを一時的に使用不能にしたり、再び使用可能にしたりするオプションもあります。

distributed monitoring snapin site status

使用不能になったサイトは、ステータスで表示されます。 これにより、タイムアウトを発生させているサイトを無効にして、不要なタイムアウトを回避することもできます。 この無効化は、Setup の接続設定を使用してライブステータスの接続を無効にするものとは異なります。 この「無効化」は、現在ログインしているユーザーにのみ影響し、純粋に視覚的な機能です。 サイトの名前をクリックすると、そのサイトのすべてのホストのビューが表示されます。

マスターコントロールスナップイン

分散監視では、Master control スナップインの外観が異なります。 各サイトには独自のグローバルスイッチがあります。

distributed monitoring master control

Checkmk クラスタホスト

CheckmkHAクラスタで監視する場合、クラスタの個々のノードは クラスタ自体と同じサイトに割り当てる必要があります。 これは、クラスタ化されたサービスの状態を判断するために、ノードの監視によって生成されたキャッシュ ファイルにアクセスするためです。 このデータは、それぞれのサイトにローカルに保存されています。

ピギーバックデータ

一部のチェックプラグインは、ピギーバックデータを使用します。 たとえば、ホストから「ピギーバック」された監視データを個々の仮想マシンに割り当てる場合などです。 分散監視では、ピギーバックホスト(ピギーバックデータを受信するホスト)と、そのピギーバックデータに依存するホスト(ピギーバックデータの実際の消費者)は、必ずしも同じサイトから監視されるとは限りません。 このような場合、ピギーバックデータのサイト間ホスト割り当てを有効にすることができます。

これは、少なくとも、ここに「Disabled 」と表示された時点でチェックしてください。

“The piggyback connection is displayed as 'disabled'.”

ピアツーピア接続

データトラフィックは、通信のボトルネックになることがよくあります。 すべてのポイント間でデータがやり取りされると、すぐに膨大なデータ流量が発生し、通信ネットワークが過負荷になる可能性があります。 そのため、通信チャンネルの数を減らし、データ交換は主にローカルネットワーク内に留めることをお勧めします。 セントラルサイトの負荷を軽減したり、ネットワークトラフィックを最適化したりするために、リモートサイト間で直接通信を行う(ピアツーピア接続)こともできます。 このためには、両方のリモートサイトがセントラルサイトによって設定されている必要があります。つまり、「リモートサイトをセントラルサイトに割り当てる」セクションの説明に従って、Push configuration to this site が両方で有効になっている必要があります。

Setup > General > Distributed monitoring で、メニュー項目Connections > Add peer-to-peer message broker connection を選択します。 ここで一意の ID を割り当て、直接接続する 2 つのサイトを選択します。 インラインヘルプの指示に従ってください。

HW/SWインベントリ

Checkmk のHW/SW インベントリは、分散環境でも機能します。 その場合、var/check_mk/inventory ディレクトリにあるインベントリデータは リモートからセントラルサイトに定期的に送信する必要があります。 パフォーマンス上の理由から、ユーザーインターフェースは常にこのディレクトリにローカルでアクセスします。 商用版では、Livestatus プロキシを使用して接続されているすべてのサイトで同期が自動的に実行されます。

商業版では、ライブステータスプロキシを使用して接続されているすべてのサイトで同期が自動的に実行されます。 分散システムで CheckmkRaw を使用してインベントリを実行する場合、ディレクトリは

分散システムで Checkmk Raw を使用してインベントリを実行する場合は、ディレクトリを 独自のツール(rsync など)を使用して、セントラルサイトに定期的にミラーリングする必要があります。

パスワードの変更

すべてのサイトが集中的に監視されている場合でも、個々の サイトのインターフェースにログインすることは可能であり、多くの場合、それが適切です。 このため、Checkmk では、ユーザーのパスワードはすべてのサイトで常に同じになるようになっています。

管理者がパスワードを変更すると、その変更はActivate Changes を使用してすべてのサイトに共有されるとすぐに有効になります。

ユーザーが自分の個人設定のサイドバーを使用してパスワードを変更した場合 は、少し動作が異なります。 ユーザーには当然この機能に対する一般的な権限がないため、Activate changes を実行することはできません。 このような場合、Checkmk は、変更されたパスワードを すべてのサイトに自動的に共有します。 実際には、保存された直後に共有されます。

ご存じのとおり、ネットワークは 100% 可用であるとは限りません。 パスワードの変更時にサイトにアクセスできない場合 そのサイトには新しいパスワードは送信されません。 管理者がActivate changes を正常に実行するか または、次のパスワード変更が正常に実行されるまで、そのサイトでは ユーザーの古いパスワードが保持されます。 ステータス記号により、個々のサイトへのパスワード 共有のステータスがユーザーに通知されます。

distributed monitoring replicate user profile

2.5. 既存のサイトのテザリング

前述のように、既存のサイトも遡って分散監視にテザリングすることができます。 上記の条件(互換性のある Checkmk バージョン)が満たされている限り、これは新しいリモートサイトを設定する場合とまったく同じように行われます。 ライブステータスを TCP で共有し、Setup > General > Distributed monitoring を使用してサイトを追加すれば、設定は完了です。

Important

2 段階目、つまりセントラルセットアップへの移行は、やや複雑です。 上記の手順に従ってサイトをセントラル設定環境に統合する前に、そのサイトのローカル設定全体が上書きされることにご留意ください

既存のホスト、および場合によってはルールも引き継ぐ場合は、3 つの手順が必要です。

  1. ホストタグのスキームを一致させます

  2. (ホスト) ディレクトリをコピーします

  3. 親フォルダ内の特性を編集する

1. ホストタグ

リモートで使用されているホストタグは、引き継ぐためにセントラルサイトでも認識されている必要があります。 移行前にこれらをチェックし、不足しているタグはセントラルサイトに手動で追加してください。 ここでは、タグ ID が一致していることが重要です。タグのタイトルは関係ありません。

2. フォルダ

次に、ホストとルールをセントラルサイトの設定環境に移動します。 これは、サブフォルダ(Main フォルダ以外)にあるホストとルールにのみ機能します。 メインフォルダにあるホストは、まずSetup > Hosts > Hosts を使用して、リモートサイトのサブフォルダに移動してください。

実際の移行は、該当するディレクトリをコピーするだけで簡単に実行できます。 設定環境のフォルダは、~/etc/check_mk/conf.d/wato/ 内のディレクトリに対応しています。 これらのフォルダは、お好みのツール(scp など)を使用して、テザリングサイトからセントラルサイトの同じ場所にコピーできます。 同じ名前のディレクトリがすでに存在する場合、その名前を変更してください。 Linux ユーザーおよびグループは、セントラルサイトでも使用されます。

コピーすると、ホストがセントラルサイトのSetupに表示されます。また、これらのフォルダに作成したルールも表示されます。 フォルダのプロパティもコピーされます。 これらは、隠しファイル.wato 内のディレクトリにあります。

3. 1 回限りの編集と保存

セントラルサイトの親フォルダの機能の属性が正しく継承されるように、移行の最後のステップとして、親フォルダの特性を一度開いて保存する必要があります。これにより、ホストの属性が新たに定義されます。

2.6. サイト固有のグローバル設定

セントラルセットアップとは、まず第一に、すべてのサイトが共通の(ホストを除く)同じ設定を持つことを意味します。 しかし、個々のサイトで異なるグローバル設定が必要な場合はどうでしょうか? その一例として、CMC設定の「Maximum concurrent Checkmk checks 」があります。 特に小規模または大規模なサイトでは、カスタマイズされた設定が必要になる場合があります。

このような場合、サイト固有のグローバル設定を使用します。 これは、[Setup > General > Distributed monitoring] のメニューにある 記号からアクセスできます。

distributed monitoring site specific global configuration

この記号をクリックすると、すべてのグローバル設定の選択画面が表示されます。ただし、ここで定義した内容は、選択したサイトでのみ有効になります。 標準設定と異なる値は視覚的に強調表示され 、そのサイトのみに適用されます。

distributed monitoring site specific global configuration 2

2.7. 分散イベントコンソール

イベントコンソールは、syslog メッセージ、SNMP トラップ、およびその他の 非同期的なイベントを処理します。

Checkmk では、分散イベントコンソールを実行するオプションも提供しています。 このオプションを有効にすると、各サイトが独自のイベント処理を実行し、そのサイトから監視されているすべてのホストのイベントをキャプチャします 。 これにより、イベントはセントラルシステムに送信されず、サイトに残り、セントラルシステムから取得されるだけになります。 これは、ライブステータスによるアクティブ状態の場合と同様で、Checkmk Rawおよび商業版の両方で機能します。

新しい方式に従って分散イベントコンソールに変換するには、以下の手順が必要です。

  • 接続設定で、オプション(Replicate Event Console configuration to this site )を有効にします。

  • 影響を受けるホストの Syslog の場所と SNMP トラップの送信先をリモートサイトに切り替えます。これが最も手間のかかる作業です。

  • Check event state in Event Console ルールセットを使用している場合は、これをConnect to the local Event Console に戻してください。

  • Logwatch Event Console Forwarding ルールセットを使用している場合は、これを同様にローカルイベントコンソールに切り替えてください。

  • イベントコンソールSettings で、Access to event status via TCPno access via TCP に戻します。

2.8. NagVis

nagvis

NagVisオープンソースプログラムは、監視からのステータスデータを、独自に作成したマップ、図、その他のチャートで視覚化します。 NagVis は Checkmk に統合されており、すぐに使用できます。NagVis Maps サイドバーエレメントからアクセスするのが最も簡単です。 NagVis の Checkmk への統合については、別の記事で説明しています。

NagVis は、Checkmk とほぼ同じ方法で、ライブステータスによる分散監視をサポートしています。 個々のサイトへのリンクは、Backends と呼ばれています。 バックエンドは Checkmk によって自動的に正しく設定されるため、分散監視でも、すぐに NagVis チャートの生成を開始できます。

チャートに配置する各オブジェクトに対して、正しいバックエンド(つまり、オブジェクトを監視する Checkmk サイト)を選択してください。 NagVis は、主にパフォーマンス上の理由から、ホストやサービスを自動的に見つけることはできません。 そのため、ホストを別のリモートサイトに移動した場合は、NagVis チャートもそれに応じて更新する必要があります。

バックエンドの詳細については、こちらのドキュメントをご覧ください。 NagVis

3. 接続が不安定または遅い

ユーザーインターフェースの一般的なステータス概要により、接続されているすべてのサイトに常にアクセスでき、信頼性の高いアクセスが可能になります。 この機能の唯一の欠点は、すべてのサイト応答してからでないとビューを表示できないことです。 プロセスは、常にまずライブステータスクエリが送信されます(例:「OK 以外のすべてのサービスをリストしてください」)。 その後、最後のサイトが応答してから初めてビューを表示できます。

サイトがまったく応答しない場合は、煩わしいです。サイトのリスタートや TCP パケットの損失などによる短時間の停止に対応するため、GUI は、サイトが「応答なし」と認識されるまで一定時間待機し、その後、残りのサイトからの応答の処理を続行します。 その結果、GUI が「ハング」状態になります。タイムアウトは、デフォルトで 10 秒に設定されています。

ネットワークでこのような現象が頻繁に発生する場合は、ステータスホスト または(さらに良い方法として)ライブステータスプロキシを設定してください。

3.1. ステータスホスト

ステータスホストの設定は、故障した接続を確実に認識するために、Checkmk Rawで推奨される手順です。 その考え方は単純です。セントラルサイトが、個々のリモートサイトへの接続をアクティブに監視します。そうすれば、少なくとも監視システムを利用できるようになります。 GUI は、到達できないサイトを認識し、それらを即座に除外して としてフラグを立てることができます。 これにより、タイムアウトが最小限に抑えられます。

接続のステータスホストを設定する方法は次のとおりです。

  1. リモートサイトが実行されているホストを、監視のセントラルサイトに追加します。

  2. これを、リモートへの接続のステータスホストとして入力します。

distributed monitoring status host

リモートサイトへの接続が失敗しても、GUI は一時的にハングアップするだけです。これは、監視がそれを認識するまで続きます。 ステータスホストの証明間隔をデフォルトの 60 秒から、たとえば 5 秒に短縮することで、ハングアップの継続時間を最小限に抑えることができます。

ステータスホストを設定している場合、接続にはさらに別の状態があります。

ルーターがダウンしているため、リモートサイトを実行しているコンピュータが監視に到達できません(ステータスホストはUNREACH 状態です)。

リモートシステムへの接続を監視するステータスホストが、まだ監視によって確認されていません (ステータスホストはPEND状態のままです)。

ステータスホストのステータスが、無効な値になっています (これは決して発生してはなりません)。

3 つのケースすべてにおいて、サイトへの接続は除外され、タイムアウトは回避されます。

3.2. 持続的な接続

Use persistent connections チェックボックスをオンにすると、GUI は、リモートサイトへの確立済みのライブステータス接続を「UP」状態で永続的に維持し 、クエリに引き続き使用します。 特に、パケットの往復時間が長い接続(大陸間など)の場合 、これにより GUI の応答性が大幅に向上します。

Apache GUI は複数の独立したプロセスで共有されるため、同時に実行されている Apache クライアントプロセスごとに 1 つの接続 が必要です。 同時ユーザー数が多い場合は、リモート側の Nagios コアに 十分な数のライブステータス接続が設定されていることを確認してください。 これらは、etc/mk-livestatus/nagios.cfg ファイルで設定します。 デフォルトは 20 です (num_client_threads=20)。

デフォルトでは、Apache は Checkmk で、最大 128 の 同時ユーザー接続を許可するように設定されています。これは、etc/apache/apache.conf ファイルの次のセクションで設定されています。 etc/apache/apache.conf

etc/apache/apache.conf
<IfModule prefork.c>
StartServers         1
MinSpareServers      1
MaxSpareServers      5
ServerLimit          128
MaxClients           128
MaxRequestsPerChild  4000
</IfModule>

つまり、高負荷時には、最大 128 個の Apache プロセスが起動し、 最大 128 個のライブステータス接続を生成および維持します。num_client_threads を十分に高く設定しないと、エラーが発生したり、 GUI の応答時間が非常に遅くなったりする可能性があります。

LAN または高速 WAN ネットワークへの接続では、 持続的な接続を利用しないことをお勧めします。

3.3. ライブステータスプロキシ

ライブステータスプロキシを使用すると、商業版では 切断された接続を検出するための高度なメカニズムを利用できます。 さらに、ラウンドトリップタイムが長い接続のパフォーマンスを特に最適化します。 ライブステータスプロキシの利点は次のとおりです。非常に高速で、応答しないサイトをプロアクティブに検出します。

  • 応答のないサイトを非常に高速かつ積極的に検出

  • 静的データを配信するクエリのローカルキャッシュ

  • TCP 接続の維持 — 往復回数が少なく、その結果、遠隔地(米国⇄中国など)からの応答が大幅に高速化されます。

  • 必要なライブステータス接続の最大数を正確に制御

  • 分散環境でのHW/SW インベントリが可能

インストール

ライブステータスプロキシのインストールは非常に簡単です。 商業版ではデフォルトで有効になっています。

OMD[central]:~$ omd start
Temporary filesystem already mounted
Starting mkeventd...OK
Starting liveproxyd...OK
Starting mknotifyd...OK
Starting rrdcached...OK
Starting cmc...OK
Starting apache...OK
Starting dcd...OK
Starting redis...OK
Starting stunnel...OK
Starting xinetd...OK
Initializing Crontab...OK

リモートサイトへの接続設定で、「TCP 経由で接続」ではなく「Use Livestatus Proxy-Daemon」を選択してください。 ホストとポートの詳細は、通常どおりです。

distributed monitoring livestatus proxy daemon

ホストおよびポートの詳細は、これまでと同じです。リモートサイトでは、変更を行う必要はありません。Number of channels to keep open で、プロキシがターゲットサイトに対して確立および維持する TCP 接続の並列接続数を入力します。

TCP 接続プールは、すべての GUI 問い合わせで共有されます。接続数 は、同時に処理できるクエリの最大数を制限します。 これにより、間接的にユーザー数が制限されます。すべてのチャンネルが 予約されている状況では、これはすぐにはエラーにはなりません。GUI は、指定した時間、 空きチャンネルを待ちます。ほとんどのクエリは、実際には数ミリ秒しかかかりません。

GUI がTimeout waiting for a free channel よりも長くチャンネルを待機しなければならない場合 エラーで中断され、ユーザーにエラーメッセージが表示されます。 このような場合は、接続数を増やす必要があります。ただし リモートサイトでは、十分な並列着信接続が許可されている必要があります。これはデフォルトで 20 に設定されています。この設定は、グローバルオプションのMonitoring core > Maximum concurrent Livestatus connections

Regular heartbeat は、プロトコルレベルで接続を常にアクティブに監視します 。このプロセスでは、プロキシは定期的に単純な ライブステータスクエリを送信し、リモートサイトは、あらかじめ決められた時間内 (デフォルト:2 秒)にそれに応答する必要があります。この方法では、ターゲットサーバーと TCP ポートは実際に到達可能ですが、監視コアが応答しなくなった 状況も検出されます。

応答がない場合、すべての接続は「切断」とみなされ 、一定時間(デフォルト:4 秒)の「クールダウン」期間を経て、新たに確立されます。 これらはすべて、ユーザーが GUI ウィンドウを開く必要なく、 プロアクティブに実行されます。 これにより、障害を迅速に検出し、リカバリによって接続を 即座に再確立することができ、最良の場合、 ユーザーが障害に気付く前に接続を復旧することができます。

Caching は、静的クエリはリモートサイトによって 1 回だけ応答すればよく、 その時点からは遅延なく、直接ローカルで応答できることを保証します。 この例としては、Quicksearch で必要な、監視対象のホストのリストがあります。

エラー診断

ライブステータスプロキシには独自のログファイルがあり 、~/var/log/liveproxyd.log にあります。 5 つのチャンネル(標準)を持つ正しく設定されたリモートサイトでは 、次のような内容になります。

~/var/log/liveproxyd.log
2025-04-30 15:58:30,624 [20] ----------------------------------------------------------
2025-04-30 15:58:30,627 [20] [cmk.liveproxyd] Livestatus Proxy-Daemon (2.4.0p8) starting...
2025-04-30 15:58:30,638 [20] [cmk.liveproxyd] Configured 1 sites
2025-04-30 15:58:36,690 [20] [cmk.liveproxyd.(3236831).Manager] Reload initiated. Checking if configuration changed.
2025-04-30 15:58:36,692 [20] [cmk.liveproxyd.(3236831).Manager] No configuration changes found, continuing.
2025-04-30 16:00:16,989 [20] [cmk.liveproxyd.(3236831).Manager] Reload initiated. Checking if configuration changed.
2025-04-30 16:00:16,993 [20] [cmk.liveproxyd.(3236831).Manager] Found configuration changes, triggering restart.
2025-04-30 16:00:17,000 [20] [cmk.liveproxyd.(3236831).Manager] Restart initiated. Terminating site processes...
2025-04-30 16:00:17,028 [20] [cmk.liveproxyd.(3236831).Manager] Restart master process

ライブステータスプロキシは、その状態を~/var/log/liveproxyd.state ファイルに定期的に記録します。

~/var/log/liveproxyd.state
Current state:
[myremote1]
  State:                   ready
  State dump time:         2025-04-30 15:01:15 (0:00:00)
  Last reset:              2025-04-30 14:58:49 (0:02:25)
  Site's last reload:      2025-04-30 14:26:00 (0:35:15)
  Last failed connect:     Never
  Last failed error:       None
  Cached responses:        1
  Channels:
       9 - ready             -  client: none - since: 2025-04-30 15:01:00 (0:00:14)
      10 - ready             -  client: none - since: 2025-04-30 15:01:10 (0:00:04)
      11 - ready             -  client: none - since: 2025-04-30 15:00:55 (0:00:19)
      12 - ready             -  client: none - since: 2025-04-30 15:01:05 (0:00:09)
      13 - ready             -  client: none - since: 2025-04-30 15:00:50 (0:00:24)
  Clients:
  Heartbeat:
    heartbeats received: 29
    next in 0.2s
  Inventory:
    State: not running
    Last update: 2025-04-30 14:58:50 (0:02:25)

サイトが現在停止している場合、状態は次のようになります。

~/var/log/liveproxyd.state
----------------------------------------------
Current state:
[myremote1]
  State:                   starting
  State dump time:         2025-04-30 16:11:35 (0:00:00)
  Last reset:              2025-04-30 16:11:29 (0:00:06)
  Site's last reload:      2025-04-30 16:11:29 (0:00:06)
  Last failed connect:     2025-04-30 16:11:33 (0:00:01)
  Last failed error:       [Errno 111] Connection refused
  Cached responses:        0
  Channels:
  Clients:
  Heartbeat:
    heartbeats received: 0
    next in -1.0s
  Inventory:
    State: not running
    Last update: 2025-04-30 16:00:45 (0:10:50)

ここでは、状態は「starting」です。 したがって、プロキシは接続の確立を試みています。 まだチャンネルはありません。 この状態では、サイトへのクエリはエラーで応答されます。

4. ライブステータスのカスケード

はじめに述べたように、分散監視を拡張して、直接アクセスできないリモートサイトの監視データを表示する専用の Checkmk 閲覧専用サイトを追加することができます。 このための唯一の要件は、もちろんセントラルサイトがアクセス可能であることです。 技術的には、これはライブステータスプロキシによって実装されます。セントラルサイトは、ライブステータスを介してリモートサイトからデータを受信し、それ自体がプロキシとして機能します。つまり、データをサードパーティのサイトに転送することができます。 このチェーンは、たとえば、最初の閲覧専用サイトに 2 番目の閲覧専用サイトを接続するなど、必要に応じて拡張することができます。

これは、たとえば次のようなシナリオで実用的です。 セントラルサイトは、3 つの独立したネットワーク(customer1customer2customer3)をサポートしており、ネットワークオペレーター1 で運用されています。 オペレーター1ネットワークのオペレーターの管理者が、顧客サイトの監視ステータスを確認したい場合、これはもちろん、セントラルサイトからのアクセスによって規制することができます。 しかし、技術的および法的な理由により、セントラルサイトは、その責任者にのみアクセスを制限したい場合があります。 このような場合、リモートサイトを閲覧専用のビューアサイトを設定することで、直接アクセスを回避することができます。 ビューアサイトには、接続されたサイトのホストとサービスが表示されますが、ビューアサイト自体の設定は完全に空のままになります。

セットアップは、分散監視の接続設定で、まずセントラルサイト、次に閲覧専用サイト(実際にはまだ存在する必要はありません)で行います。

セントラルサイトで、Setup > General > Distributed monitoring から目的のリモートサイトの接続設定を開きます。Use Livestatus Proxy Daemon で、Allow access via TCP オプションを有効にし、使用可能なポート(ここでは6560 )を入力します。 これにより、セントラルサイトのライブステータスプロキシがリモートサイトに接続し、閲覧専用サイトからのリクエスト用のポートを開きます。リクエストは、リモートサイトに転送されます。

Connection settings in distributed monitoring with TCP access enabled for viewer sites.

次に、閲覧専用サイトを作成し、Setup > General > Distributed monitoring から接続設定を再度開きます。Basic settings で、分散監視の接続の場合と同様に、セントラルサイトの正確な名前をSite ID として入力します。

Site ID in the connection settings.

Status connection パネルで、セントラルサイトをホストとして入力し、手動で割り当てた空きポート(ここでは6560 )も入力します。

Connection settings with a central site and free port for Livestatus.

接続が確立すると、閲覧専用サイトの監視ビューに、リモートサイトの目的のホストおよびサービスが表示されます。

さらにカスケード接続を行う場合は、セントラルサイトで行ったのと同じように、閲覧専用サイトでもライブステータスプロキシへの TCP アクセスを許可する必要があります。ただし、この場合は別の空きポートを使用してください。

5. ライブダンプと CMCDump

5.1. 動機

これまで説明してきた Checkmk による分散監視の概念は ほとんどの場合、優れたシンプルなソリューションです。 ただし、セントラルサイトからリモートサイトへのネットワークアクセスが必要です。 アクセスが不可能な場合や アクセスを望ましくない場合もあります。

  • リモートサイトは、アクセス権のないお客様のネットワーク内にあります。

  • リモートサイトが、アクセスが厳しく制限されているセキュリティエリアにある。

  • リモートサイトには常設のネットワーク接続や固定 IP アドレスがなく、ダイナミック DNSなどの方法も使用できません。

ライブダンプ、あるいは CMCDump による分散監視は、まったく異なるアプローチを採用しています。 まず、リモートサイトは、セントラルサイトから完全に独立して動作し、分散して管理されるように接続されます。 セントラルサイトでのセットアップは不要です。 セントラルサイトには、リモートサイトのすべてのホストとサービスのコピーが作成されます。

その後、リモートサイトのすべてのホストおよびサービスが、セントラルサイトにコピーとして複製されます。 ライブダンプ/CMCDump は、リモートサイトの構成のコピーを生成し、それをセントラルサイトにロードすることで役立ちます。

これで、監視中に、すべてのリモートサイトで、現在のステータスのコピーが あらかじめ決められた間隔(たとえば 1 分ごと)でファイルに書き込まれます。 これは、ユーザー定義の方法でセントラルサイトに送信され、 ステータス更新として保存されます。このデータ転送には、特定のプロトコルは提供も指定もされていません。 自動化できるすべての転送プロトコルを使用できます。scpを使用する必要はありません。電子メールによる転送も考えられます。 このような設定は、「通常の」分散監視とは以下の点で異なります。

このようなセットアップは、「通常の」分散監視とは以下の点で異なります。

  • セントラルサイトでの状態およびパフォーマンスデータの更新が遅れます。

  • セントラルサイトでの可用性の計算結果は、リモートサイトでの計算結果と若干異なります。

  • 更新間隔よりも早く発生する状態の変化は、セントラルサイトには表示されません。

  • リモートサイトが「ダウン」している場合、セントラルサイトでの状態は古くなり、サービスは「面白くない」状態になりますが、それでも表示はされます。 この期間のパフォーマンスおよび可用性データは「失われます」(ただし、リモートサイトでは引き続き利用可能です)。

  • Schedule downtimesAcknowledge problems などのセントラルサイトでのコマンドは、リモートサイトには送信できません

  • セントラルサイトは、リモートサイトにアクセスすることはできません。

  • ログウォッチによるログファイルの詳細へのアクセスは不可能です。

  • イベントコンソールは、ライブダンプ/CMCDump ではサポートされません。

セントラルサイトで選択した周期的な間隔によっては、短い状態の変化が見えない場合があるため、セントラルサイトによる通知は理想的ではありません。 ただし、セントラルサイトを純粋に表示サイトとして(たとえば、 すべての顧客の概要を中央で把握するため)利用する場合は、この方法には間違いなくメリットがあります。

ちなみに、ライブダンプ/CMCDump は、ライブステータスによる分散監視と 同時に使用しても問題はありません。 一部のサイトはライブステータスに直接接続されており、その他のサイトはライブダンプを使用しています。 ライブダンプは、ライブステータスのリモートサイトの 1 つに追加することもできます。

5.2. Livedump のインストール

Checkmk Raw(または Nagios コアを含む商業版)をインストールする場合は、livedump ツールを使用してください。 この名前は、Livestatusステータスダンプに由来しています。livedump は検索パスに直接あり、コマンドとして使用できます。

以下の前提条件を想定します:

  • リモートサイトが完全に設定され、ホストおよびサービスを積極的に監視しています。

  • セントラルサイトが起動して実行されています。

  • セントラルサイトでは、少なくとも 1 台のホストがローカルで監視されています (セントラルは自身を監視するため)。

設定の転送

まず、リモートサイトで、そのホストおよびサービスの設定のコピーを Nagios 設定形式で作成します。また、livedump -TC からの出力をファイルにリダイレクトします。

OMD[myremote1]:~$ livedump -TC > config-myremote1.cfg

ファイルの先頭は次のような形式になります:

config-myremote1.cfg
define host {
    name                    livedump-host
    use                     check_mk_default
    register                0
    active_checks_enabled   0
    passive_checks_enabled  1

}

define service {
    name                    livedump-service
    register                0
    active_checks_enabled   0
    passive_checks_enabled  1
    check_period            0x0

}

このファイルをセントラルサイトに送信し (scp など)、~/etc/nagios/conf.d/ ディレクトリに保存します。このディレクトリには、ホストおよびサービスの設定データが保存されます。ファイル名は、.cfg で終わるものを選択してください。たとえば、~/etc/nagios/conf.d/config-myremote1.cfg などです。 リモートサイトからセントラルサイトへの SSH アクセスが可能な場合は、次のように実行できます。

OMD[myremote1]:~$ scp config-myremote1.cfg central@myserver.mydomain:etc/nagios/conf.d/
central@myserver.mydomain's password:
config-myremote1.cfg                                             100% 8071     7.9KB/s   00:00

次に、セントラルサイトにログインし、変更をアクティブにします。

OMD[central]:~$ cmk -R
Generating configuration for core (type nagios)...OK
Validating Nagios configuration...OK
Precompiling host checks...OK
Restarting monitoring core...OK

これで、リモートサイトのすべてのホストおよびサービスがセントラルサイトに表示されます。 最初はPEND状態になりますが、これは当面は変更されません。

distributed monitoring livedump pending

:

  • livedump-T オプションを使用すると、Livedump にテンプレート定義が作成され、そこから設定が取得されます。これがないと、Nagios を起動できません。ただし、これらは1 つだけ存在してください。別のリモートサイトから設定をインポートする場合は、-T オプションを使用しないでください

  • 設定のダンプは、Checkmk マイクロコア (CMC)でも可能です。ただし、インポートには Nagios が必要です。CMC がセントラルサイトで実行されている場合は、CMCDump を使用してください。

  • リモートサイトのホストまたはサービスに変更があった場合は、設定のコピーと転送を毎回繰り返す必要があります。

ステータスの転送

ホストがセントラルサイトに表示されたら、リモートサイトの監視ステータスの(定期的な)送信を設定する必要があります。 再び、livedump でファイルを作成しますが、今回は二次オプションは指定しないでください。 このファイルには、Nagios がチェック結果から直接読み込める形式で、すべてのホストおよびサービスのステータスが含まれます。

OMD[myremote1]:~$ livedump > state

このファイルには、Nagios がチェック結果から直接読み込める形式で、すべてのホストおよびサービスの状態が 記録されます。このファイルの先頭は、次のような形式になっています。

state
host_name=myhost1900
check_type=1
check_options=0
reschedule_check
latency=0.13
start_time=1615521257.2
finish_time=16175521257.2
return_code=0
output=OK - 10.1.5.44: rta 0.066ms, lost 0%|rta=0.066ms;200.000;500.000;0; pl=0%;80;100;; rtmax=0.242ms;;;; rtmin=0.017ms;;;;

このファイルをセントラルサイトの~/tmp/nagios/checkresults ディレクトリにコピーします。 重要:このファイルの名前は、c で始まり、7 文字でなければなりません。scp の場合、次のようなファイルになります。

OMD[myremote1]:~$ scp state central@mycentral.mydomain:tmp/nagios/checkresults/caabbcc
central@mycentral.mydomain's password:
state                                                  100%   12KB  12.5KB/s   00:00

最後に、セントラルサイトに同じ名前で、拡張子を.ok にした空のファイルを作成します。 これにより、Nagios はステータスファイルが完全に転送されたことを認識し、 読み込むことができるようになります。

OMD[central]:~$ touch tmp/nagios/checkresults/caabbcc.ok

リモートホスト/サービスのステータスが、セントラルサイトで即座に更新されます。

distributed monitoring livedump status

ステータスの送信は、これからは定期的に行う必要があります。 スクリプトを使用すると、上記のステップを任意の間隔で繰り返し実行することができます。scp 経由でデータをコピーする代わりに、スクリプトをセントラルサイトから直接実行して、ssh 経由でステータスや設定データを受信することができます。

これらのアクションを実行するためのスクリプトは、GitHubtreasures ディレクトリで入手できます。

Important

treasures ディレクトリにファイルを提供しているのは、コミュニティの皆様のお役に立てるかもしれないからです。 ただし、これらは Checkmk 製品の一部ではありません。treasures にあるスクリプトはサポートの対象外です。 これらのスクリプトは、ご自身の責任においてご利用ください。

ライブステータスフィルタを使用すると、設定およびステータスのダンプを制限することもできます。 たとえば、ホストをmygroup ホストグループのメンバーに制限することができます。

OMD[myremote1]:~$: livedump -H "Filter: host_groups >= mygroup" > state

5.3. CMCDump の実装

CMCDump は、Checkmk Micro Coreにとって、Livedump Nagios にとってのものと同じであり、したがって、商業版に最適なツールです。 Livedump とは対照的に、CMCDump はホストおよびサービスの完全なステータスを複製することができます (Nagios にはこのタスクに必要なインターフェイスがありません)。

比較のために、Livedump は以下のデータを転送します。

  • 現在の状態、つまりPENDOKWARNCRITUNKNOWNUPDOWN 、またはUNREACH

  • チェックプラグインからの出力

  • パフォーマンスデータ

CMCDump はさらに同期します:

  • プラグインからの長い出力

  • オブジェクトが現在フラッピングしているかどうか

  • 最後のチェック実行および最後の状態変更のタイムスタンプ

  • チェックの実行時間

  • チェック実行のレイテンシー

  • 現在のチェックの試みのシーケンス番号、および現在の状態が「ハード」か「ソフト」か

  • 承認されているかどうか

  • オブジェクトが現在スケジュールダウンタイム中であるかどうか。

これにより、監視結果がより正確に反映されます。 ステータスをインポートする場合、CMC はチェックの実行をシミュレートするだけでなく このタスク用に設計されたインターフェイスを使用して、正確なステータスを送信します。 これにより、オペレーションセンターは、問題の承認状況やメンテナンス時間の入力状況などをいつでも確認することができます。

インストールはライブダンプとほぼ同じですが、テンプレートの重複などを気にする必要がないため、 やや簡単です。

設定のコピーは、cmcdump -C を使用して作成します。このファイルは、 セントラルサイトのetc/check_mk/conf.d/ に保存してください。ファイル拡張子は.mk を使用してください。

OMD[myremote1]:~$ cmcdump -C > config.mk
OMD[myremote1]:~$ scp config.mk central@mycentral.mydomain:etc/check_mk/conf.d/myremote1.mk

セントラルサイトで設定を有効にします。

OMD[central]:~$ cmk -O

ライブダンプと同様に、ホストおよびサービスは、セントラルサイトの PEND状態に表示されます。ただし、 記号によって、 シャドウオブジェクトであることがわかります。これにより、セントラルサイトまたは「通常の」リモートサイトで直接監視されているオブジェクトと区別することができます。 ステータスの定期的な生成は、追加の引数なしで、xml-ph-0000@deepl.internal

distributed monitoring cmcdump pending

ステータスの定期的な生成は、追加の引数なしでcmcdump を使用して 実現されます:

OMD[myremote1]:~$ cmcdump > state
OMD[myremote1]:~$ scp state central@mycentral.mydomain:tmp/state_myremote1

ステータスをセントラルサイトにインポートするには、ファイルの内容を unixcat ツールを使用して、tmp/run/live Unix ソケットに書き込む必要があります。

OMD[central]:~$ unixcat tmp/run/live < tmp/state_remote1

パスワードを使用せずに SSH 経由でリモートサイトからセントラルサイトに接続している場合は 3 つのコマンドを 1 つにまとめることができ、その場合は 一時ファイルも作成されません。

OMD[myremote1]:~$ cmcdump | ssh central@mycentral.mydomain "unixcat tmp/run/live"

本当に簡単です。しかし、すでに述べたように、ssh/scp は ファイル転送の唯一の方法ではなく、設定やステータス は電子メールやその他のプロトコルを使用して同様に転送することができます。

6. 分散環境における通知

6.1. 中央集約型か分散型か?

分散環境では、通知(電子メールなど)はどのサイトから送信すべきかという問題が発生します。 個々のリモートサイトから送信すべきか、それともセントラルサイトから送信すべきか? どちらの手順にも、それぞれ賛成の意見があります。

リモートサイトから送信すべきという主張:

  • 設定が簡単

  • セントラルサイトへのリンクが利用できない場合でも、ローカル通知が可能です

  • Checkmk Rawでも動作します

セントラルサイトから送信することの利点

  • 通知は中央でさらに処理できます(チケットシステムに転送するなど)

  • リモートサイトでは、電子メールや SMS の設定は不要です

  • ハードウェア経由で SMS を送信する場合、設定はセントラルサイトで 1 回だけ行えば十分です。

6.2. 分散型通知

分散通知は標準設定であるため、特別な手順は必要ありません。 リモートサイトで生成されたすべての通知は、そのサイトにある通知ルールのチェーンを通過します。 セントラルサイトを設定した場合、これらのルールはすべてのサイトで同じになります。 これらのルールに基づいて生成された通知は、通常どおり配信され、適切な通知スクリプトがローカルで実行されます。

サイトに適切なサービスが正しくインストールされていること たとえば、電子メール用にスマートホストが定義されていることなど、つまり、個々の Checkmk サイトの設定と同じ手順で設定されていることを確認してください。 6.3. 中央通知

6.3. 通知の集中化

基本

商業版には、各リモートサイトで個別に有効化できる、集中通知用のビルトインメカニズムが用意されています。 このようなリモートは、すべての通知をセントラルサイトにルーティングして、さらに処理します。 したがって、集中通知は、分散監視が標準的な方法で設定されているか、CMCDump を使用して設定されているか、あるいはこれらの手順を組み合わせて設定されているかに関係なく、機能します。 技術的には、中央通知サーバーは「中央」である必要はありません。このタスクは、任意の Checkmk サイトで行うことができます。

リモートサイトが「転送」に設定されている場合、すべての通知は コアから送信されるのと同じように、セントラルサイトに直接転送されます セントラルサイトでは、通知ルールが評価され、実際に 誰にどのように通知するかが決定されます。 必要な通知スクリプトがセントラルサイトで呼び出されます。

TCP 接続の設定

リモートサイトとセントラル(通知)サイトの通知スプーラは、TCP 経由で相互に通信します。 通知は、リモートサイトからセントラルサイトに送信されます。セントラルサイトは 、通知が受信されたことをリモートサイトに承認します。これにより 、TCP 接続が切断されても通知が失われることはありません。

TCP接続の構築には2 つの方法があります。

  1. セントラルサイトからリモートサイトへ TCP 接続を設定します。この場合、リモートはTCP サーバーとなります。

  2. リモートサイトからセントラルサイトへの TCP 接続を設定します。この場合、セントラルサイトはTCP サーバーとなります。

したがって、ネットワーク上の理由により、特定の方向での接続しか確立できない場合でも、通知の転送に支障はありません。 TCP 接続は、ハートビート信号によってスプーラによって監視され、 必要に応じて、通知イベントが発生した場合だけでなく、直ちに再確立されます。 リモートサイトと中央サイトでは異なるグローバル設定が必要であるため、

リモートサイトとセントラルサイトでは異なるグローバル設定が必要であるため、 すべてのリモートサイトに対してサイト固有の設定を行う必要があります。 セントラルサイトの設定は、通常のグローバル設定を使用して行います。 注:この設定は、特定の設定が定義されていないすべてのリモートサイトに自動的に継承されます。

まず、セントラルサイトがリモートサイトへの TCP 接続を確立する例を見てみましょう。

ステップ 1:リモートサイトで、サイト固有のグローバル設定Notifications > Notification Spooler Configuration を編集し、Accept incoming TCP connections を有効にします。 着信接続には、TCP ポート 6555 を推奨します。 問題がなければ、この設定を採用してください。

distributed monitoring notification spooler configuration

ステップ 2: 次に、同様に、Notification Spooling サブメニュー (リモートサイトのみ)で、オプションForward to remote site by notification spooler を選択します。

distributed monitoring notification spooling

ステップ 3: 次に、セントラルサイト(つまり、通常のグローバル設定) リモートサイトへの接続を設定します(必要に応じて、追加のリモートサイトにも接続を設定します)。

distributed monitoring notification spooler central configuration

ステップ 4:グローバル設定の「Notification Spooling 」を 「Asynchronous local delivery by notification spooler 」に設定して、セントラルサイトの 通信も、同じセントラルスプーラーで処理されるようにします。

distributed monitoring notification spooling central

ステップ 5:変更をアクティブにします。

リモートサイトからの接続の確立

TCP 接続をリモートから確立する場合は、 手順はまったく同じですが、上記の説明と セントラルサイトとリモートサイトの役割が逆になるだけです。

2 つの手順を組み合わせることもできます。その場合は、セントラルサイトは 着信接続をリッスンし、リモートサイトに接続するように インストールする必要があります。ただし、すべてのセントラル/リモート関係において ペアのうち 1 つだけが接続を確立することができます。

テストと診断

通知スプーラは、~/var/log/mknotifyd.log ファイルにログを記録します。 スプーラの設定で、ログのレベルを上げると、より多くのメッセージを受信することができます。 標準のログレベルでは、セントラルサイトには次のようなメッセージが表示されます。

~/var/log/mknotifyd.log
2025-04-30 07:11:40,023 [20] [cmk.mknotifyd] -----------------------------------------------------------------
2025-04-30 07:11:40,023 [20] [cmk.mknotifyd] Check_MK Notification Spooler version 2.4.0p8 starting
2025-04-30 07:11:40,024 [20] [cmk.mknotifyd] Log verbosity: 0
2025-04-30 07:11:40,025 [20] [cmk.mknotifyd] Daemonized with PID 31081.
2025-04-30 07:11:40,029 [20] [cmk.mknotifyd] Connection to 10.1.8.44 port 6555 in progress
2025-04-30 07:11:40,029 [20] [cmk.mknotifyd] Successfully connected to 10.1.8.44:6555

~/var/log/mknotifyd.state ファイルには、スプーラーとそのすべての接続の現在のステータスが常に記録されます。 中央: ~/var/mknotifyd.state (抜粋)

central:~/var/log/mknotifyd.state (抜粋)
Connection:               10.1.8.44:6555
Type:                     outgoing
State:                    established
Status Message:           Successfully connected to 10.1.8.44:6555
Since:                    1637129500 (2025-04-30 07:11:40, 140 sec ago)
Connect Time:             0.002 sec

同じファイルのバージョンは、リモートサイトにも存在します。 そこでは、接続は次のようなものになります。

remote:~/var/log/mknotifyd.state (抜粋)
Connection:               10.22.4.12:56546
Type:                     incoming
State:                    established
Since:                    1637129500 (2025-04-30 07:11:40, 330 sec ago)

テストするには、監視対象のリモートサービスを選択し、Fake check results コマンドを使用して、手動でCRIT に設定します。

これで、セントラルサイトの通知ログファイル (notify.log) に、着信通知が表示されます。

central:~/var/log/notify.log
2025-04-30 07:59:36,231 ----------------------------------------------------------------------
2025-04-30 07:59:36,232 [20] [cmk.base.notify] Got spool file 307ad477 (myremotehost123;Check_MK) from remote host for local delivery.

同じイベントは、リモートサイトでは次のように表示されます。

remote:~/var/log/notify.log
2025-04-30 07:59:28,161 [20] [cmk.base.notify] ----------------------------------------------------------------------
2025-04-30 07:59:28,161 [20] [cmk.base.notify] Got raw notification (myremotehost123;Check_MK) context with 71 variables
2025-04-30 07:59:28,162 [20] [cmk.base.notify] Creating spoolfile: /omd/sites/myremote1/var/check_mk/notify/spool/307ad477-b534-4cc0-99c9-db1c517b31f

グローバル設定では、通知の通常のログファイル (notify.log) と通知スプーラのログファイルの両方を、より高いログレベルに変更することができます。

スプールを監視する

上記の手順で設定が完了すると、セントラルサイトには 、リモートサイトには、それぞれ新しいサービスが検出されます。このサービスは、必ず 監視対象に追加する必要があります。このサービスは、通知スプーラとその TCP 接続を監視します。 これにより、すべての接続は 2 回、セントラルサイトとリモートサイトそれぞれで監視されます。

distributed monitoring notification services

7. セントラルサイトとリモートサイトが異なるバージョンを使用している場合

通常、すべてのリモートサイトとセントラルサイトのバージョンは一致している必要があります。 この例外は、アップデートの実行中にのみ適用されます。 ここでは、以下の 2 つの状況を区別する必要があります。

7.1. パッチレベルが異なる(ただしメジャーバージョンは同じ)

パッチレベル (p11 など) は、通常、異なっていても問題はありません。 ただし、まれに、これらのパッチレベルも互いに互換性がない場合があります。このような場合、すべてのサイトでまったく同じバージョンレベル (2.4.0p11 など) を維持して、サイト間でエラーなく動作するようにする必要があります。 そのため、Werks で、各パッチバージョンの互換性のない変更点を必ず記録しておいてください。

一般的なルールとして(例外はあり、Werks に記載されています)、リモートサイトを最初に更新し、セントラルサイトを最後に更新してください。

7.2. 異なるメジャーバージョン

大規模な分散環境において、メジャーアップデート(2.3.0 から 2.4.0 など)を円滑に実行するため、2.0.0 以降、Checkmk では、セントラルサイトとリモートサイトのメジャーバージョンが 1 つ異なる混合運用が可能になりました。 アップデートを行う場合は、まずリモートサイトからアップデートを行ってください。 その後、すべてのリモートサイトが新しいバージョンにアップデートされた後に、セントラルサイトのみをアップデートしてください。

繰り返しになりますが、アップデートを開始する前に、Werk およびバージョンアップデートノートを必ずチェックしてください。 トラブルのない混合運用を行うためには、セントラルサイトには、必ず古いバージョンの特定の(前提条件となる)パッチレベルが必要です。

混合環境での特別な機能として、拡張パッケージの一元管理があります。これにより、古い Checkmk バージョンと新しい Checkmk バージョンの両方のバリアントを保存しておくことができます。 詳細については、MKP の管理に関する記事で説明しています。

8. ファイルとディレクトリ

8.1. 設定ファイル

パス 説明

~/etc/check_mk/multisite.d/sites.mk

ここでは、Checkmk は個々のサイトへの接続の設定を保存します。設定のエラーによりインターフェースが「ハング」して動作不能になった場合は、このファイルで問題のあるエントリを直接編集することができます。ただし、ライブステータスプロキシが有効になっている場合は、このディーモンに適した設定が生成されるためには、少なくとも 1 つの接続を編集して保存する必要があります。

~/etc/check_mk/liveproxyd.mk

ライブステータスプロキシの設定。このファイルは、分散監視の設定が変更されるたびに Checkmk によって新たに生成されます。

~/etc/check_mk/mknotifyd.d/wato/global.mk

通知スプーラの設定。このファイルは、グローバル設定を保存する際に Checkmk によって生成されます。

~/etc/check_mk/conf.d/distributed_wato.mk

これはリモートサイトで作成され、各サイトが自分のホストのみを監視するようにします。

~/etc/nagios/conf.d/

ホストおよびサービスを含む、顧客が作成した Nagios 設定ファイルの保存場所です。これらは、セントラルサイトでLivedumpを使用するために必要です。

~/etc/mk-livestatus/nagios.cfg

Nagios をコアとして使用するためのライブステータスの設定。ここで、同時に許可する接続の最大数を設定できます。

~/etc/check_mk/conf.d/

Checkmk のホストおよびルールの設定。CMCDumpによって生成された設定ファイルをここに保存します。wato/ サブディレクトリのみが管理され、設定環境で表示されます。

~/var/check_mk/autochecks/

サービスディスカバリーによって検出されたサービス用です。これらは常にリモートサイトにローカルで保存されます。

~/var/check_mk/rrds/

Checkmk-RRD フォーマット(商業版ではデフォルト)を使用する場合、パフォーマンスデータをアーカイブするためのラウンドロビンデータベースの場所。

~/var/pnp4nagios/perfdata/

PNP4Nagios 形式(Checkmk Raw)のラウンドロビンデータベースの場所

~/var/log/liveproxyd.log

ライブステータスプロキシのログファイル。

~/var/log/liveproxyd.state

ライブステータスプロキシの現在の状態を読み取り可能なフォームで表示します。このファイルは 5 秒ごとに更新されます。

~/var/log/notify.log

Checkmk 通知システムのログファイルです。

~/var/log/mknotifyd.log

通知スプーラのログファイルです。

~/var/log/mknotifyd.state

通知スプーラの現在の状態を読み取り可能な形式で表示します。このファイルは 20 秒ごとに更新されます。

このページでは