Prometheus は、Alert Manager の機能を持つオープンソースのモニタリングシステムです。 Alert Manager は、アラートを処理するサービスです。 Log Service のアラート取り込みシステムを Alert Manager の受信者として設定すると、Alert Manager が生成したアラートを Log Service に送信できます。
始める前に
Alert Manager の設定
route:
receiver: '{RECIEVER_NAME}'
...
...
receivers:
- name: '{RECIEVER_NAME}'
webhook_configs:
- url: 'http://{ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}'
- name: ...
パラメーター | 説明 |
---|---|
receiver | カスタム receiver 名。 |
name | カスタム receiver 名。 receiver 名は、receiver パラメーターに設定された receiver 名と同一である必要があります。 |
url | アラートの受信側。 アラート取り込みサービスとアラート取り込みアプリケーションを作成した後に生成されるエンドポイントに設定します。 エンドポイントの完全な URL
を指定します。 詳細については、「Webhook URL の取得」をご参照ください。
注 Alert Manager サーバーが Elastic Compute Service (ECS) インスタンスにデプロイされている場合、ECS インスタンスが存在するリージョンを選択することを推奨します。
次に、関連する LAN または VPC のエンドポイントを使用します。 リージョンの Internet webhook URL を使用することもできます。
|
Alert Manager アラートの解析
{
"version": "4",
"groupKey": "alertname,job",
"truncatedAlerts": 0,
"status": "firing",
"receiver": "webhook",
"groupLabels": {
"alertname": "Alert",
"job": "promethueus"
},
"commonLabels": {
"instance": "localhost:9090"
},
"commonAnnotations": {},
"externalURL": "http://example.com/#/alerts",
"alerts": [
{
"annotations": {
"description": "description info",
"summary": "High request latency"
},
"endsAt": "2020-10-28T12:28:52.710Z",
"startsAt": "2020-10-28T12:23:37.710Z",
"generatorURL": "",
"labels": {
"alertname": "Alert",
"instance": "localhost:9090",
"job": "prometheus",
"severity": "page"
}
},
...
]
}
フィールドマッピング
Alert Manager アラートが Log Service に取り込まれると、アラートはフィールドマッピングを使用して Log Service がサポートするアラートに変換されます。 以下に、Alert Manager アラートの例を示します。
{
"aliuid": "{The ID of the Alibaba Cloud account to which the alert ingestion application belongs}",
"alert_instance_id": "{The alert instance ID that is automatically generated}",
"project": "{The project to which Alert Center belongs}",
"region": "{The region of the endpoint to which the alert is sent}",
"alert_id": "Alert",
"alert_type": "sls_pub",
"alert_name": "Alert",
"next_eval_interval": 0,
"alert_time": 1603859020,
"fire_time": 1603859017,
"resolve_time": 0,
"status": "firing",
"labels": {
"instance": "localhost:9090",
"job": "prometheus"
},
"annotations": {
"__pub_alert_region__": "{The region of the endpoint to which the alert is sent}",
"__config_app__": "sls_pub_alert",
"__pub_alert_service__": "{The ID of the alert ingestion service}",
"__pub_alert_app__": "{The ID of the alert ingestion application}",
"__pub_alert_protocol__": "alert_manager",
"desc": "description info",
"summary": "High request latency"
},
"severity": 2,
"policy": {
{"alert_policy_id": "{The alert policy that is specified for the alert ingestion application}",
"action_policy_id": "{The action policy that is specified for the alert ingestion application}",
"repeat_interval": "{The cycle that is specified for the alert ingestion application}"
},
"drill_down_query": "http://example.com:9090/#/alerts?filter=%7B\"alertname\"%3D\"Alert\"%2C%20\"job\"%3D\"Promethues\"%7D"
},
...
Log Service | Alert Manager | 説明 |
---|---|---|
aliuid | N/A | アラート取り込みアプリケーションが属する Alibaba Cloud アカウントの ID。 |
alert_id | alertname | アラートルールの ID。
Alert Manager アラートで、labels フィールドに alertname フィールドが含まれている場合、alert_id の値は alertname フィールドの値に設定されます。 その他の場合、alert_id フィールドの値は空です。 |
alert_type | N/A | アラートタイプ。 有効な値は、sls_pub です。 |
alert_name | alertname | アラートルール名。
Alert Manager アラートで、labels Alert フィールドに alertname フィールドが含まれている場合、alert_name フィールドの値は alertname フィールドの値に設定されます。 その他の場合、alert_name フィールドの値は空です。 |
status | status | アラートのステータス。 |
next_eval_interval | N/A | アラートが評価される間隔。 有効値は 0です。 |
alert_time | N/A | 初回のアラートルールがトリガーされた時刻。 時刻は、Log Service が Alert Manager アラートを受信した時刻を示します。 |
fire_time | startsAt | アラートのトリガー時刻。 |
resolve_time | endsAt | アラートの解除時刻。
Alert Manager アラートで、status パラメーターが firing に設定されている場合、 resolve_time パラメーターは 0 に設定されます。 その他の場合、resolve_time パラメーターは extendsAtパラメーターのタイムスタンプに設定されます。 |
labels | labels | アラート名。
アラート取り込みアプリケーションの作成時に [エンリッチメント] タブでラベルを追加した場合、指定したラベルは labels フィールドに追加されます。 |
annotations | annotations | アラートのステータス。 Log Service のアラートの anotations フィールドに以下のフィールドが追加されます。
アラート取り込みアプリケーションの作成時に [エンリッチメント] タブにアノテーションを追加した場合、指定したアノテーションは annotations フィールドに追加されます。 |
severity | severity | アラートの重大度。
注 Grafana のアラートにseverity フィールドが存在する場合、Log Serviceは、アラートの取り込み後、アラートに対応する重大度をマッピングします。 severity フィールドが存在しない場合、Grafana
のアラートにデフォルトの重大度 (中) が設定されます。 詳細については、「重大度レベル」をご参照ください。
|
policy | N/A | アラート取り込みアプリケーションに指定されているアラートポリシー。 詳細については、「ポリシー変数のデータ構造」をご参照ください。 |
project | N/A | アラートセンターが属するプロジェクト。 詳細については、「プロジェクト」をご参照ください。 |
drill_down_query |
|
Alert Manager アラートの URL。
URL をクリックすると、Alert Manager の [アラート管理] ページにリダイレクトされます。 このページに、 groupLabels フィールドのコンテンツに一致するアラートが自動的に表示されます。 |