Docs » Splunk On-Callインテグレーション » Splunk On-CallのNagios CoreとNagios XIインテグレーション

Splunk On-CallのNagios CoreとNagios XIインテグレーション 🔗

Splunk On-CallとNagiosのインテグレーションは、Nagios CoreとNagios XIの両方をサポートします。NagiosとSplunk On-Callを統合することで、クラウド、仮想、物理のIT環境を問わず、インフラ全体を監視し、アラートを出すことができます。

Nagiosは、アプリケーション、ネットワーク、およびサーバーリソースの重要なパラメータを定期的にチェックします。それは、例えば、メモリ使用量、ディスク使用量、マイクロプロセッサの負荷、ログファイル、および現在実行中のプロセスの量を監視することができます。Nagiosは、Simple Mail Transfer Protocol (SMTP)、Post Office Protocol 3 (POP3)、Hypertext Transfer Protocol (HTTP)や他の一般的なネットワークプロトコルなどのサービスも監視できます。Nagiosはデータを提供し、アラートをSplunk On-Callタイムラインに送り、そこで問題に対応することができます。

Splunk On-CallとNagiosのインテグレーションは、Splunk On-Callインテグレーション設定にある簡単な自己生成サービスAPIキーで設定可能です。定義されたパラメータとしきい値に基づいて、Nagiosはクリティカルなレベルに達した場合にアラートを送信できます。これらの通知は、ライブコールルーティング、ネイティブチャット、電話、メール、SMSなどの複数のチャネルを通じて、Splunk On-Callの適切なチームに送信できます。

NagiosとSplunk On-Callとのインテグレーションにより、次のことが可能になります:

  • Splunk On-Call内でサービスAPIキーを生成することにより、Nagiosを簡単に設定できます

  • アラートを直接Splunk On-Callに送信するようにNagiosを設定します。サービスがクリティカルになると、アラートで適切なチームに通知します

  • ハートビート情報をSplunk On-Callに送信することで、Nagiosでアラートが生成されていなくても、プラグインが正常に動作しているかどうかを判断できます。Nagiosインテグレーション機能を使用すると、Nagiosサーバーがダウンしている場合でも、Splunk On-Callで情報を収集し、アラートを生成できます。

  • Splunk On-Callを使用して、Nagiosサーバーでacknoledge backコマンドポールコマンドを実行します。Splunk On-Callで発行されたコマンドは、Nagiosモニターにリレーされます。

Nagios Coreインテグレーションガイド 🔗

要件 🔗

  • サポートされているNagiosのバージョン:Nagios 4.x以下

  • 必須Splunk On-Callバージョン:Starter、Growth、またはエンタープライズ

  • ファイアウォールの背後にあるNagios環境については、メールでNagiosアラートを送信する を参照してください

インテグレーションをオンにしてAPIキーを生成する 🔗

SettingsAlert BehaviorIntegrationsNagios の順に移動して、Enable Integration を選択し、Nagios用の設定値を生成します。インテグレーションをオンにした後に表示されるAPIキーは、後の設定ステップで使用します。

Nagiosインテグレーションを有効にする - VictorOps

Nagiosプラグインを設定する 🔗

Splunk On-Callアラート処理は、連絡先グループ (多くの場合管理者ですが、これは個々の設定に依存します)に追加されるNagios連絡先として実装されています。Splunk On-Call連絡先の連絡メカニズムは、アラートの詳細をディスク上のファイルにスプールする単純なシェルスクリプトです。アラートが発生し、Nagiosが連絡スクリプトを呼び出すと、詳細は/var/nagiosに置かれ、Nagiosに戻ります。新しいファイルがないか/var/nagiosを監視し、そのファイルのデータをHTTPS経由でSplunk On-Callに転送する長時間実行のbashスクリプトがあります。この転送スクリプトはNagios自身によって監視され、何らかの理由で停止した場合、Nagiosのサービスチェックが再起動を試みます。この転送スクリプトが一時的にSplunk On-Callにアラートを正常に送信できない場合、アラートのメールバージョンの送信にフォールバックします。フォールバックアラートのターゲットアドレスを設定できます。

プラグインをインストールしたくない場合は、メールでNagiosアラートを送信する を参照してください。

プラグインファイルは/opt/victorops/nagios_pluginにインストールされます。victorops.cfgというNagios設定ファイルが/opt/victorops/nagios_plugin/nagios_confにあり、プラグインのすべての設定を含んでいます。

Nagiosプラグインをインストールする 🔗

システムによっては、これらのコマンドでsudoを使う必要がある可能性があります。

  1. 以下のコマンドを実行します:

    wget https://github.com/victorops/monitoring_tool_releases/releases/download/victorops-nagios-1.4.20/victorops-nagios_1.4.20_all.deb
    
  2. 以下のコマンドを実行します:

    dpkg -i <path_to_file>
    

    dpkgを使いたくない場合は、以下を実行することもできます。

    sudo apt install <path_to_file>
    

DEBまたはRPMパッケージからインストールする場合、インストーラはプラグインファイルを/opt/victorops/nagios_pluginに置き、ロギングとアラートディレクトリを作成します。

Nagios設定ファイルを変更する 🔗

インストール後、victorops.cfgファイルをNagios設定ディレクトリに移動し、nagios.cfgとvictorops.cfgファイルの両方を変更する必要があります。

Splunk On-Callへのアラート送信は、Nagios/Icinga環境マクロを必要とするシェルスクリプトを介して行われます。このNagios機能を有効にするには、/etc/nagios/nagios.cfg (またはicinga.cfg。実際のパスは異なる場合があります)を開き、enable_environment_macrosディレクティブを見つけます。これが enable_environment_macros=1 に設定されていることを確認してください。このディレクティブが存在しない場合は、設定ファイルに追加してください。

nagios.cfgファイル内で、独自のファイルパスを使用してSplunk On-Call設定ファイルを見つけるためにNagiosに指示する次の行を追加します。この行は cfg_file=/usr/local/nagios/etc/victorops.cfg のようになります。

VictorOpsの設定ファイルを修正する 🔗

このファイルは、他の変数の中で、Nagiosアラートがどこにルーティングするかを定義します(詳細は下の*インシデントのルーティング*セクションを参照)。

  1. 次を使用してファイルをNagios設定ディレクトリに移動する

    mv /opt/victorops/nagios_plugin/nagios_conf/victorops.cfg /usr/local/nagios/etc
    
  2. victorops.cfgファイルを開き、以下の値をVictorOps_Contact_Settings(~行20)の連絡先とVictorOps_Service_Settings(~行40)のサービスオブジェクトの定義として設定します:

    必要なコンフィギュレーション設定:

    設定

    場所

    説明

    _VO_ORGANIZATION_ID

    VictorOps_Contact_Settings のおよそ24行目と VictorOps_Service_Settings の44行目

    Splunk On-call組織のスラグ。スラグを見つけるには、Splunk On-Callのタイムラインに移動してURLを見てください。/client/ に続く文字列が _VO_ORGANIZATION_ID です。

    _VO_ORGANIZATION_KEY

    VictorOps_Contact_Settings のおよそ25行目と26行目

    インテグレーションをオンにしたときに作成されたAPIキー。

    VictorOps_Service_Settings のおよそ51行目

    この値は VictorOps_Service_Settings サービスオブジェクト定義にあります。Nagiosに定義されたNagiosホストの名前です。これはハートビートとコマンドチェックサービスをオンにします。

    オプションのコンフィギュレーション設定:

    設定

    場所

    説明

    _VO_MONITOR_NAME

    VictorOps_Contact_Settings のおよそ24行目と VictorOps_Service_Settings の46行目

    Splunk On-Callに対するNagiosインスタンスを識別し、空白の場合もあります。アーキテクチャで複数のNagiosサーバーを使用している場合は、このフィールドに一意のIDを指定して区別します。

    _VO_CONTACTEMAIL

    VictorOps_Contact_Settings のおよそ32行目

    アラート送信先のバックアップメールアドレス。プラグインがSplunk On-Callにアラートを中継できない場合、このアドレスにアラートメールが送信されます。このリストにemail-SMSゲートウェイを含めます。複数のアドレスを設定するには、たとえばスペースで区切って全体をシングルクォートで囲みます。例: 'me@mydomain.com you@mydomain.com him@mydomain.com 3035551212@vtext.com'

    _VO_MAX_SEND_DELAY

    VictorOps_Contact_Settings のおよそ36行目

    アラートが連絡先メールに送信される前にキューに残っていることを許可されるアラートの最大時間(秒)。

追加サービスを設定する 🔗

これら4つのサービスは、IcingaサーバーのIcingaダッシュボードに表示されます。これらのサービスのアラートをオンにしたい場合は、victorops.cfgのサービス定義を編集してください。

Splunk On-Callアラートフォワーダー 🔗

これは長時間実行されるスクリプトのプロセスチェックです。このサービスがクリティカルになると、メールアラートが作成されます(このサービスがダウンしているときは、通常のアラート転送は機能しないため)。

Splunk On-Callハートビート 🔗

victorops.cfgファイルは、ハートビート情報をSplunk On-Callに送信するサービスを定義します。このサービスはデフォルトでオンになっています。このサービスは、Nagiosによってアラートが生成されなくても、プラグインが正しく動作しているかどうかを判断するのに役立ちます。

Splunk On-Callコマンドポール (応答を確認) 🔗

このサービスはNagiosサーバーで実行するコマンドをSplunk On-Callにポーリングします。このサービスはデフォルトではオフになっています。目的はSplunk On-Callで発行されたコマンドをNagiosモニターに中継できるようにすることです。現時点では、このサービスで許可されるコマンドはホストとサービスの承認のみです。NagiosのAck-Back を参照してください。

Splunk On-Callステータスの再同期(手動/自動) 🔗

このサービスは完全なNagiosステータスをSplunk On-Callに送ることができます。これはSplunk On-CallがNagiosシステムと同期していない場合に使用できます。例えば、Nagiosで一時的に通知を無効にしていた場合などに発生する可能性があります。NagiosホストにcURLがインストールされている必要があります。手動と自動の2つのオプションがあります。手動オプションはNagiosコンソールで手動でのみ起動できます。autoオプションは自動的に実行されますが、デフォルトではオフにされ、コメントアウトされています。現時点では、これはプレビュー機能です。

インストールの確認 🔗

プラグインをインストールして設定した後、Nagiosを使用して定義したサービスのカスタム通知を送信して機能を確認できます。アラートはSplunk On-Callで受信され、会社のタイムラインに表示されるはずです。

コンタクトスクリプトとアラートフォワーダーは、/var/log/victoropsにログを書き込みます。プラグインが正しく動作していないようであれば、これらのログにエラーがないか確認してください。

インシデントのルーティング 🔗

Splunk On-Call用のNagiosプラグインでは、Splunk On-Callに送信されるルーティングキーは、Splunk On-Callの連絡先を含む連絡先グループの名前です。NagiosでさまざまなインシデントをSplunk On-Callの複数のチームにルーティングできるようにしたい場合は、SplunkOn-Callで使用したいルーティングキーごとに、一意の連絡先と一意の連絡先グループ(1つの連絡先が唯一のメンバー)を作成する必要があります。ルーティングキーはSplunk On-Callで SettingsAlert BehaviorRouting Keys の順に移動してセットアップできます。

次の例では、Nagiosからインシデントを受信したいSplunk On-Callのチームが3つあるとします。チームはDevOps、SRE、データベースです。

  1. victorops.cfgで定義された VictorOps_Contactsettings 設定を使用して、各チームに連絡先を定義します。

    Devopsの連絡先:

    define contact{
    use            VictorOps_Contact
    name           VictorOps_devops
    contact_name   VictorOps_devops
    alias          VictorOps_devops
    }
    

    SREの連絡先

    define contact{
    use            VictorOps_Contact
    name           VictorOps_sre
    contact_name   VictorOps_sre
    alias          VictorOps_sre
    }
    

    データベースの連絡先

    define contact{
    use            VictorOps_Contact
    name           VictorOps_database
    contact_name   VictorOps_database
    alias          VictorOps_database
    }
    
  2. 上記で定義した連絡先ごとに一意の連絡先グループを定義し、それらの連絡先をそれぞれ唯一のメンバーとして追加します。Splunk On-Callへのアラートで使用される値は contactgroup_name に由来するため、これらの名前がSplunk On-Callで使用する値と一致していることを確認するか、Splunk On-Callのrouting_keysをここで定義した名前に一致するように変更してください。

    Devops連絡先グループ:

    define contactgroup{
    contactgroup_name         devops ## This is the routing_key value of the alert to Splunk On-Call
    alias                     VictorOps DevOps contact group
    members                   VictorOps_devops
    }
    

    SREの連絡先グループ:

    define contactgroup{
    contactgroup_name         sre ## This is the routing_key value of the alert to Splunk On-Call
    alias                     VictorOps SRE contact group
    members                   VictorOps_sre
    }
    

    データベースの連絡先グループ:

    define contactgroup{
    contactgroup_name         database ## This is the routing_key value of the alert to Splunk On-Call
    alias                     VictorOps Database contact group
    members                   VictorOps_database
    }
    
  3. 連絡先グループを適切なチェックコマンドに追加して、正しいルーティングキー(contactgroup_name)で届くようにします。いくつでも好きなだけ多くのcontact_groupsにVictorOps連絡先を追加でき、特定のサービスにVictorOps連絡先を追加することもできます。

メールでNagiosアラートを送信する 🔗

Nagios環境がファイアウォールで制限されている場合、またはNagiosホストにプラグインをインストールしたくない場合でも、メールを通してSplunk On-CallにNagiosアラートを送ることができます。メールで送信されたアラートは、プラグインによって提供される拡張機能なしでタイムラインに表示されます。

NagiosアラートをメールでSplunk On-Callに送信するには、以下のサンプル設定を使用してNagiosコンタクトを作成し、そのコンタクトを通常システムからのアラートを受信するNagiosコンタクトグループの1つに追加します。

サンプル構成では、組織IDと組織キーによってSplunk On-Callがアラートを検証し、タイムラインにルーティングします。値はSplunk On-Call Webアプリのインテグレーションセクションで確認できます。設定内のmailコマンドは、アラートの詳細をアラートメールに適切にフォーマットします。

##——————————————————————————————
## These Nagios contact and service definitions are used to pass configurable values to the email command.
##
## Contact settings:
## _VO_ORGANIZATION_ID
## _VO_ORGANIZATION_KEY
## These identify your alerts to VictorOps. The values for these fields are assigned to you by VictorOps.
## _VO_MONITOR_NAME
## VictorOps supports multiple Nagios instances per organization. This configuration value identifies the instance to
## VictorOps. It can be set to something you choose (such as the name of this Nagios host).
##
##——————————————————————————————

define contact{
   contact_name VictorOps_Email
   ## Configure these values as described above
   _VO_ORGANIZATION_ID xxxxxxxxxxxxx
   _VO_ORGANIZATION_KEY xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
   _VO_MONITOR_NAME

   alias    VictorOps_Email
   service_notification_period    24x7
   host_notification_period    24x7
   service_notification_options    w,u,c,r
   host_notification_options    d,r
   service_notification_commands    notify-victorops-by-email
   host_notification_commands    notify-victorops-by-email
   register    1
   _VO_ALERT_DOMAIN    alert.victorops.com

}

define command{
   command_name notify-victorops-by-email
   command_line /usr/bin/printf "%b" "\nVO_ORGANIZATION_ID=$_CONTACTVO_ORGANIZATION_ID$\nVO_ ORGANIZATION_KEY=$_CONTACTVO_ORGANIZATION_KEY$\n_CONTACTVO_ORGANIZATION_KEY=$_CONTACTVO_ORGANIZATION_KEY$\nVO_MONITOR_NAME=$_CONTACTVO_MONITOR_NAME$\n_CONTACTVO_MONITOR_NAME=$_CONTACTVO_MONITOR_NAME$\nTIMET=$TIMET$\nDATE=$DATE$\nTIME=$TIME$\nHOSTNAME=$HOSTNAME$\nHOSTALIAS=$HOSTALIAS$\nHOSTDISPLAYNAME=$HOSTDISPLAYNAME$\nHOSTSTATE=$HOSTSTATE$\nLASTHOSTSTATECHANGE=$LASTHOSTSTATECHANGE$\nHOSTOUTPUT=$HOSTOUTPUT$\nHOSTPERFDATA=$HOSTPERFDATA$\nHOSTGROUPALIAS=$HOSTGROUPALIAS$\nHOSTGROUPNAME=$HOSTGROUPNAME$\nHOSTGROUPMEMBERS=$HOSTGROUPMEMBERS$\nHOSTGROUPNAMES=$HOSTGROUPNAMES$\nSERVICEDESC=$SERVICEDESC$\nSERVICEDISPLAYNAME=$SERVICEDISPLAYNAME$\nSERVICESTATE=$SERVICESTATE$\nLASTSERVICESTATECHANGE=$LASTSERVICESTATECHANGE$\nSERVICEOUTPUT=$SERVICEOUTPUT$\nSERVICECHECKCOMMAND=$SERVICECHECKCOMMAND$\nCONTACTGROUPNAME=$CONTACTGROUPNAME$\nNOTIFICATIONTYPE=$NOTIFICATIONTYPE$\nNOTIFICATIONAUTHOR=$NOTIFICATIONAUTHOR$\nNOTIFICATIONCOMMENT=$NOTIFICATIONCOMMENT$\n" | /usr/bin/mail -s "$_CONTACTVO_ORGANIZATION_ID$:$_CONTACTVO_ORGANIZATION_KEY$:$_CONTACTVO_MONITOR_NAME$" $_CONTACTVO_ORGANIZATION_KEY$@$_CONTACTVO_ALERT_DOMAIN$
}

Centos 5のタイムアウトを回避する 🔗

timeoutコマンドをパス内のディレクトリにリンクさせる必要があります。

  1. シンボリックリンクを作成します。

    ln -s /usr/share/doc/bash-3.2/scripts/timeout /usr/bin/timeout
    
  2. 実行可能にします:

    chmod 755 /usr/share/doc/bash-3.2/scripts/timeout
    

Nagios XIインテグレーションガイド 🔗

要件 🔗

  • サポートされているNagiosのバージョン:Nagios XI 5.x以下

  • 必須VictorOpsバージョン:Starter、Growth、またはエンタープライズ

Nagiosプラグインをインストールする 🔗

システムによっては、これらのコマンドでsudoを使う必要がある可能性があります。

  1. 以下のコマンドを実行します:

    wget https://github.com/victorops/monitoring_tool_releases/releases/download/victorops-nagios-1.4.20/victorops-nagios_1.4.20_all.deb
    
  2. 以下のコマンドを実行します:

    dpkg -i <path_to_file>
    

    dpkgを使いたくない場合は、以下を実行することもできます。

    sudo apt install <path_to_file>
    

DEBまたはRPMパッケージからインストールする場合、インストーラはプラグインファイルを/opt/victorops/nagios_pluginに置き、ロギングとアラートディレクトリを作成します。

環境マクロを有効にする 🔗

アラートは、Nagios環境マクロを必要とするシェルスクリプトを使用してSplunk On-Callに送信されます。このNagios機能を有効にするには、/etc/nagios/nagios.cfg** (実際のパスは異なる場合があります)で enable_environment_macros ディレクティブを見つけ、それが 1 に設定されていることを確認します。このディレクティブが存在しない場合は、設定ファイル enable_environment_macros=1 に追加します。

設定をインポートする 🔗

  1. Nagios XIダッシュボードで、トップメニューの Configure を選択します。

    Nagios XI - VictorOpsを設定する
  2. Core Config Manager を選択します。

    「Core Config Manager - Nagios XI」をクリックします。
  3. Tools を選択し、次に Import Config Files を選択します。

  4. ファイルリストから設定を選択します。

  5. Import を選択します。

    Config Nagios XI Import - Toolsをクリックし、次にImport Config Filesをクリックします。
  6. Nagios XIはSplunk On-Callサービスのチェックコマンドを 「misc command 「としてインポートします。Nagios XI UIでacknowlege backを有効にするには、サービスを 「check command 「に変更する必要があります。Core Config Manager に移動して、コマンドのリストを表示します。

  7. 「check_victorops_cmds」コマンドのconfigureアイコンを選択します。

    Nagio XI UIでack-backを有効にする
  8. ダイアログボックスで、コマンドタイプを「checkコマンド」に変更し、保存します。

    コマンドタイプを

Splunk On-Callにアラートを送信する 🔗

Nagios XIインターフェイスを通して、」VictorOps Command Poll 「サービスのアクティブチェックを有効にすることができるようになりました。

アラートが届かない場合は、/opt/victorops/nagios_plugin/nagios_conf/victorops.cfgファイルをコピーして、/usr/local/nagios/etc/cfgprep/victorops.cfgに配置してみてください。

「Duplicate definition found for contact 『VictorOps_Contact_Settings『「というエラーが表示された場合は、nagios.cfgから cfg_file=/usr/local/nagios/etc/victorops.cfg 行を削除してください。

このページは 2024年05月02日 に最終更新されました。