検索

6.4. アラートを SNMP トラップとして送信する

download PDF

SNMP トラップを有効にするには、ServiceTelemetry オブジェクトを変更し、snmpTraps パラメーターを設定します。SNMP トラップはバージョン 2c を使用して送信されます。

6.4.1. snmpTraps の設定パラメーター

snmpTraps パラメーターには、アラート受信者を設定するための次のサブパラメーターが含まれています。

enabled
SNMP トラップアラートレシーバーを有効にするには、このサブパラメーターの値を true に設定します。デフォルト値は false です。
target
SNMP トラップを送信するターゲットアドレス。値は文字列です。デフォルトは 192.168.24.254 です。
port
SNMP トラップを送信するターゲットポート。値は整数です。デフォルトは 162 です。
community
SNMP トラップの送信先のターゲットコミュニティー。値は文字列です。デフォルトは public です。
retries
SNMP トラップの再試行配信制限。値は整数です。デフォルトは 5 です。
timeout
秒単位で定義されている SNMP トラップ配信タイムアウト。値は整数です。デフォルトは 1 です。
alertOidLabel
SNMP トラップの送信に使用する OID 値を定義するアラート内のラベル名。値は文字列です。デフォルトは oid です。
trapOidPrefix
変数バインディングの SNMP トラップ OID 接頭辞。値は文字列です。デフォルトは 1.3.6.1.4.1.50495.15 です。
trapDefaultOid
アラートにアラート OID ラベルが指定されていない場合の SNMP トラップ OID。値は文字列です。デフォルトは 1.3.6.1.4.1.50495.15.1.2.1 です。
trapDefaultSeverity
アラート重大度が設定されていない場合の SNMP トラップ重大度。値は文字列です。デフォルトは空の文字列です。

ServiceTelemetry オブジェクトの alerting.alertmanager.receivers 定義の一部として snmpTraps パラメーターを設定します。

apiVersion: infra.watch/v1beta1
kind: ServiceTelemetry
metadata:
  name: default
  namespace: service-telemetry
spec:
  alerting:
    alertmanager:
      receivers:
        snmpTraps:
          alertOidLabel: oid
          community: public
          enabled: true
          port: 162
          retries: 5
          target: 192.168.25.254
          timeout: 1
          trapDefaultOid: 1.3.6.1.4.1.50495.15.1.2.1
          trapDefaultSeverity: ""
          trapOidPrefix: 1.3.6.1.4.1.50495.15
...

6.4.2. MIB 定義の概要

SNMP トラップの配信では、デフォルトでオブジェクト識別子 (OID) 値 1.3.6.1.4.1.50495.15.1.2.1 が使用されます。管理情報ベース (MIB) スキーマは、https://github.com/infrawatch/prometheus-webhook-snmp/blob/master/PROMETHEUS-ALERT-CEPH-MIB.txt で入手できます。

OID 番号は、次のコンポーネント値で構成されます。* 値 1.3.6.1.4.1 は、民間企業向けに定義されたグローバル OID です。* 次の識別子 50495 は IANA によって Ceph 組織に割り当てられた民間企業番号です。※その他の値は親の子 OID です。

15
prometheus オブジェクト
15.1
prometheus アラート
15.1.2
prometheus アラートトラップ
15.1.2.1
prometheus アラートトラップのデフォルト

prometheus アラートトラップのデフォルトは、alerting.alertmanager.receivers.snmpTraps.trapOidPrefix パラメーターによって定義される OID 1.3.6.1.4.1.50495.15 に対する他のいくつかのサブオブジェクトで構成されるオブジェクトです。

<trapOidPrefix>.1.1.1
アラート名
<trapOidPrefix>.1.1.2
status
<trapOidPrefix>.1.1.3
severity
<trapOidPrefix>.1.1.4
インスタンス
<trapOidPrefix>.1.1.5
job
<trapOidPrefix>.1.1.6
description
<trapOidPrefix>.1.1.7
labels
<trapOidPrefix>.1.1.8
timestamp
<trapOidPrefix>.1.1.9
rawdata

以下は、受信したトラップをコンソールに出力する単純な SNMP トラップ受信者からの出力例です。

  SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.50495.15.1.2.1
  SNMPv2-SMI::enterprises.50495.15.1.1.1 = STRING: "TEST ALERT FROM PROMETHEUS PLEASE ACKNOWLEDGE"
  SNMPv2-SMI::enterprises.50495.15.1.1.2 = STRING: "firing"
  SNMPv2-SMI::enterprises.50495.15.1.1.3 = STRING: "warning"
  SNMPv2-SMI::enterprises.50495.15.1.1.4 = ""
  SNMPv2-SMI::enterprises.50495.15.1.1.5 = ""
  SNMPv2-SMI::enterprises.50495.15.1.1.6 = STRING: "TEST ALERT FROM "
  SNMPv2-SMI::enterprises.50495.15.1.1.7 = STRING: "{\"cluster\": \"TEST\", \"container\": \"sg-core\", \"endpoint\": \"prom-https\", \"prometheus\": \"service-telemetry/default\", \"service\": \"default-cloud1-coll-meter\", \"source\": \"SG\"}"
  SNMPv2-SMI::enterprises.50495.15.1.1.8 = Timeticks: (1676476389) 194 days, 0:52:43.89
  SNMPv2-SMI::enterprises.50495.15.1.1.9 = STRING: "{\"status\": \"firing\", \"labels\": {\"cluster\": \"TEST\", \"container\": \"sg-core\", \"endpoint\": \"prom-https\", \"prometheus\": \"service-telemetry/default\", \"service\": \"default-cloud1-coll-meter\", \"source\": \"SG\"}, \"annotations\": {\"action\": \"TESTING PLEASE ACKNOWLEDGE, NO FURTHER ACTION REQUIRED ONLY A TEST\"}, \"startsAt\": \"2023-02-15T15:53:09.109Z\", \"endsAt\": \"0001-01-01T00:00:00Z\", \"generatorURL\": \"http://prometheus-default-0:9090/graph?g0.expr=sg_total_collectd_msg_received_count+%3E+1&g0.tab=1\", \"fingerprint\": \"feefeb77c577a02f\"}"

6.4.3. SNMP トラップの設定

前提条件

  • アラートの送信先となる SNMP トラップ受信者の IP アドレスまたはホスト名を知っていることを確認してください。

手順

  1. Red Hat OpenShift Container Platform にログインします。
  2. service-telemetry namespace に切り替えます。

    $ oc project service-telemetry
  3. SNMP トラップを有効にするには、ServiceTelemetry オブジェクトを変更します。

    $ oc edit stf default
  4. alerting.alertmanager.receivers.snmpTraps パラメーターを設定します。

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    ...
    spec:
      ...
      alerting:
        alertmanager:
          receivers:
            snmpTraps:
              enabled: true
              target: 10.10.10.10
  5. target の値は、SNMP トラップレシーバーの IP アドレスまたはホスト名に設定するようにしてください。

追加情報

snmpTraps で使用可能なパラメーターの詳細は、「snmpTraps の設定パラメーター」 を参照してください。

6.4.4. SNMP トラップのアラートの作成

prometheus-webhook-snmp ミドルウェアによって解析されるラベルを追加して、トラップ情報と配信されるオブジェクト識別子 (OID) を定義することで、SNMP トラップによって配信されるように設定されたアラートを作成できます。oid ラベルまたは severity ラベルの追加は、特定のアラート定義のデフォルト値を変更する必要がある場合にのみ必要です。

注記

oid ラベルを設定すると、トップレベルの SNMP トラップ OID は変更されますが、サブ OID は、グローバルの trapOidPrefix 値と子 OID 値 .1.1.1 ~ .1.1.9 によって定義されたままになります。MIB 定義の詳細は、「MIB 定義の概要」を参照してください。

手順

  1. Red Hat OpenShift Container Platform にログインします。
  2. service-telemetry namespace に切り替えます。

    $ oc project service-telemetry
  3. アラートルールと SNMP トラップ OID オーバーライド値を含む oid ラベルを含む PrometheusRule オブジェクトを作成します。

    $ oc apply -f - <<EOF
    apiVersion: monitoring.rhobs/v1
    kind: PrometheusRule
    metadata:
      creationTimestamp: null
      labels:
        prometheus: default
        role: alert-rules
      name: prometheus-alarm-rules-snmp
      namespace: service-telemetry
    spec:
      groups:
        - name: ./openstack.rules
          rules:
            - alert: Collectd metrics receive rate is zero
              expr: rate(sg_total_collectd_msg_received_count[1m]) == 0
              labels:
                oid: 1.3.6.1.4.1.50495.15.1.2.1
                severity: critical
    EOF

関連情報

アラートの設定については、「Service Telemetry Framework でのアラート」を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.