Splunk On-CallのSolarWindsインテグレーション 🔗
SolarWinds API URLエンドポイントを使用して、SolarWinds OrionアラートをSplunk On-Callに統合します。
要件 🔗
インテグレーションにはSolarWinds Orion NPMが必要です。
「応答を確認」コンポーネントにはSAMが必要です
Splunk On-Callで設定する 🔗
アカウントで、Integrations、SolarWinds の順に移動します。
インテグレーションをアクティブにします。
後のステップで使用するため、Service API Endpoint をコピーします。
SolarWindsで設定する 🔗
Alerts & Activity、Alerts の順に移動し、次に Manage Alerts を選択してアラートマネージャーに移動します。
Add New Alert を選択します。
アラートに」Send Alert to Splunk On-call」という名前を付けます。
トリガー、リセット、時間帯の条件を設定します。
Trigger Actions タブで、Add Action を選択します。
Send a Get or Post a URL to a Web Server を選択し、Configure Action を選択します。
アクションに」Critical to Splunk On-Call」という名前を付けます。
Use HTTP/S POST を選択し、Splunk On-Call SolarWinds Service API Endpoint を入力します。末尾の
$routing_key
は、アラートに使用する実際のルーティングキーに置き換えてください。ルーティングキーの詳細については、Splunk On-Callでルーティングキーを作成する を参照してください。Body to POST で、ペイロード例から該当する Trigger Action ペイロードをコピー&ペーストします。本文ペイロードの例 を参照してください。
Content Type を
application/json
に設定します。Authentication を
None
に設定します。必要に応じて残りの設定を行い、変更を保存します。
Next を選択し、Reset Action タブを開きます。
Add Action を選択します。
Body to POST に、ペイロード例から対応する Reset Action ペイロードをコピー&ペーストします。本文ペイロードの例 を参照してください。
Add Action を選択します。
概要タブ、レビュー、Submit を介して Next を選択します。
Splunk On-Callに複数のアクションをアラートする 🔗
Alerts & Activity、Alerts の順に移動し、次に Manage Alerts を選択してアラートマネージャーに移動します。
新しく作成した「Splunk On-Callにアラートを送信」アラートの横にあるボックスを選択し、Assign Action を選択します。
トリガーアクションとリセットアクションを割り当て、Assign を選択します。
Splunk On-Call「応答を確認」を有効にする 🔗
この「応答を確認」は、SolarWindsでアプリケーションマネージャーとして設定されたSplunk On-CallパブリックAPIに対するコマンドポーリングです。SolarWindsで新しいユーザーとノードを作成する必要があります。
SolarWindsの Main Settings & Administration に移動します。
Product Specific Settings、SAM Settings の順に移動します。
Application Monitors、 Manage Application Monitors、Application Monitor Templates の順に移動します。
- VictorOps Ack-Back.apm-templateをインポートし、スクリプトをSolarWinds-ack-back-v2.1.txtに置き換えます。
SolarWindsの Main Settings & Administration セクションから、Product Specific Settings、SAM Settings の順に進みます。
Application Monitors、Manage Application Monitors の順に移動します。
VictorOps Ack-Back を選択し、Edit Properties を選択します。Polling Frequency は60secondsに設定されています。これは、SolarWindsがSplunk On-Callに対して60秒ごとに新しい承認をポーリングすることを意味します。
コンポーネント Ack-Back Get Requests を展開します。
Credential for Monitoring を SolarWinds API User に変更します。
Script Body を確認し、v2バージョンのack-backスクリプトが含まれていることを確認します。
- PowerShellスクリプトをSplunk On-Call API値とSolarWindsプライマリサーバー名で更新します。Splunk On-CallのAPI値は、Splunk On-Callの Settings -> API で確認できます。PowerShellスクリプトの先頭付近で、引用符で囲まれた部分をすべて以下の変数の正しい情報に置き換えます:
#Victor Ops Company ID
$API_ID="<Your API ID>"
#Victor Ops API Key
$ApiKey="<Your API Key>"
#Set to your SolarWinds Primary Application Server
$SolarWindsServer="<Your Primary SolarWinds Server Name>"
Submit を選択します。
SolarWindsアラート管理用の限定権限ユーザーを作成する 🔗
Settings、All Settings の順に移動し、SolarWindsセクションで Main Settings & Administration に到達します。
User Accounts、Manage Accounts の順に移動します。
Add New Account を選択します。
Orion individual account を選択します。
Next を選択します。
User Name フィールドに」solarwindsapi」と入力します。
パスワードを入力します。
Next を選択します。
Define Settings セクションで、Alerts までスクロールします。
Allow Alert Management Rights で Yes を選択します。
Submit を選択します。
限定権限ユーザーをSAM認証情報ライブラリに追加します。 🔗
SolarWindsの Main Settings & Administration セクションから、Product Specific Settings、SAM Settings の順に移動します。
Global SAM Settings、Credentials Library の順に移動します。
限定ユーザーアカウントを追加します。認証情報名には SolarWinds API User を使用します。
VictorOps.comの外部ノードを作成する 🔗
Settings、Manage Nodes の順に移動します。
ノードを追加します。
ノード名には」victorops.com」と入力します。
Splunk On-Callの「応答を確認」アプリケーションテンプレートを割り当てる 🔗
SolarWindsの Main Settings & Administration セクションから、Product Specific Settings、SAM Settings の順に移動します。
Application Monitors、Manage Application Monitors の順に移動します。
Application Monitor Templates を選択します。
VictorOps Ack-Back を選択し、次に Assign to Node を選択します。
「victorops.com」ノードを選択し、緑の矢印を選択して Selected Nodes に追加します。
Next を選択します。
SolarWinds APIユーザーの資格情報を割り当てます。
Assign Application Monitors を選択します。
本文ペイロードの例 🔗
以下のテンプレートペイロードには必須フィールドが含まれていますが、必要に応じてフィールドを追加することができます。
バックスラッシュ \
文字はHTTPポストでは使用できません。代わりに、SolarWindsアラートのSQL置換関数を使用してください:
SQL: SELECT REPLACE (''‘${Caption}''‘,'\‘,' ')}
ノードがダウンしています 🔗
トリガーアクション 🔗
{
"message_type":"CRITICAL",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"alert_rule":"${N=Alerting;M=AlertName}",
"state_message":"${NodeName} is ${Status}",
"entity_display_name":"${NodeName} is ${Status}",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}"
}
リセットアクション 🔗
{
"message_type":"RECOVERY",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"alert_rule":"${N=Alerting;M=AlertName}",
"state_message":"${NodeName} is ${Status}",
"entity_display_name":"${NodeName} is ${Status}",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}"
}
ボリュームスペースアラート 🔗
トリガーアクション 🔗
{
"alert_rule":"${N=Alerting;M=AlertName}",
"entity_display_name":"${NodeName} ${SQL: SELECT REPLACE ('''${Caption}''','\',' ')} has ${VolumeSpaceAvailable} free",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}",
"message_type":"CRITICAL",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"state_message":"${NodeName} ${SQL: SELECT REPLACE ('''${Caption}''','\',' ')} has ${VolumeSpaceAvailable} free"
}
リセットアクション 🔗
{
"alert_rule":"${N=Alerting;M=AlertName}",
"entity_display_name":"${NodeName} ${SQL: SELECT REPLACE ('''${Caption}''','\',' ')} has ${VolumeSpaceAvailable} free",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}",
"message_type":"RECOVERY",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"state_message":"${NodeName} ${SQL: SELECT REPLACE ('''${Caption}''','\',' ')} has ${VolumeSpaceAvailable} free"
}
コンポーネントベースアラート 🔗
トリガーアクション 🔗
{
"message_type":"CRITICAL",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"alert_rule":"${N=Alerting;M=AlertName}",
"state_message":"${NodeName} ${N=SwisEntity;M=ComponentAlert.ComponentName} is ${N=SwisEntity;M=Status;F=Status}",
"entity_display_name":"${NodeName} ${N=SwisEntity;M=ComponentAlert.ComponentName} is ${N=SwisEntity;M=Status;F=Status}",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}"
}
リセットアクション 🔗
{
"message_type":"RECOVERY",
"monitor_name":"SolarWinds",
"monitoring_tool":"SolarWinds",
"alert_rule":"${N=Alerting;M=AlertName}",
"state_message":"${NodeName} ${N=SwisEntity;M=ComponentAlert.ComponentName} is ${N=SwisEntity;M=Status;F=Status}",
"entity_display_name":"${NodeName} ${N=SwisEntity;M=ComponentAlert.ComponentName} is ${N=SwisEntity;M=Status;F=Status}",
"entity_id":"${N=Alerting;M=AlertObjectID}",
"host_name":"${NodeName}",
"ip_address":"${Node.IP_Address}"
}