LoginSignup
3
4

More than 5 years have passed since last update.

SNMPトラップの確認-Pacemaker1.1.13(簡易ですが。。。)

Last updated at Posted at 2015-11-20

corosyncとPacemakerのSNMPトラップをSNMPマネージャー(snmptrapd)で確認する環境を簡易に作成してみます。

SNMPマネージャー(トラップの監視側)のインストール

  • SNMPマネージャーノードとして、CentOS7を最小インストールします。
    • 念の為、firewalldは停止しておきます。
    • この例では、SNMPマネージャーのIPアドレスは192.168.40.2だということとします。
  • DVD(もしくはiso)をマウントして参照できるようにリポジトリに登録します。
  • net-snmpをインストールします。
[root@snmp-manager2 Packages]# yum install net-snmp

(snip)
依存性関連をインストールしました:
(snip)
  perl-libs.x86_64 4:5.16.3-285.el7       perl-macros.x86_64 4:5.16.3-285.el7       perl-parent.noarch 1:0.225-244.el7    perl-podlators.noarch 0:2.5.1-3.el7          perl-threads.x86_64 0:1.87-4.el7      
  perl-threads-shared.x86_64 0:1.43-6.el7

完了しました!
  • corosync+PacemakerのMIBファイルを転送しておきます
    • COROSYNC-MIB.txt、PCMK-MIB.txtをcorosync+Pacemakerをインストールしたノードから、SNMPマネージャーノードの /usr/share/snmp/mibs/ディレクトリに転送しておきます。
  • /etc/sysconfig/snmptrapdを編集します。(OPTIONSを変更します)
# snmptrapd command line options
# '-f' is implicitly added by snmptrapd systemd unit file
OPTIONS="-Ls6 -p /var/run/snmptrapd.pid"
  • /etc/snmp/snmp.confを新規に作成します。(mibdirs/mibsを追加します)
mibdirs /usr/share/snmp/mibs
mibs ALL

  • /etc/snmp/snmptrapd.confを編集します。(disableAuthorizationを追加します)
# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
# authCommunity   log,execute,net public
# traphandle SNMPv2-MIB::coldStart    /usr/bin/bin/my_great_script cold
disableAuthorization yes
  • /etc/rsyslog.confを編集します。
    • snmpのトラップを別ログ(local6でsnmptrapd.log)に出力するように編集して、rsyslogを再起動します。
(snip)
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local6.none                /var/log/messages

(snip)
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
local6.* /var/log/snmptrapd.log

  • 最後にsnmptrapdサービスを再起動しておきます。
[root@snmp-manager2 ~]# systemctl restart snmptrapd
[root@snmp-manager2 ~]# systemctl status snmptrapd
snmptrapd.service - Simple Network Management Protocol (SNMP) Trap Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmptrapd.service; disabled)
   Active: active (running) since 金 2015-11-20 14:28:55 JST; 3s ago
 Main PID: 10283 (snmptrapd)
   CGroup: /system.slice/snmptrapd.service
           └─10283 /usr/sbin/snmptrapd -Ls6 -p /var/run/snmptrapd.pid -f

11月 20 14:28:55 snmp-manager2 snmptrapd[10283]: NET-SNMP version 5.7.2
11月 20 14:28:55 snmp-manager2 systemd[1]: Started Simple Network Management Protocol (SNMP) Trap Daemon..
  • トラップが見れるように、SNMPマネージャーノードでログを監視します。
[root@snmp-manager2 ~]# tail -f /var/log/snmptrapd.log 
Nov 20 14:30:19 snmp-manager2 snmptrapd[10283]: 2015-11-20 14:30:19 NET-SNMP version 5.7.2 Stopped.
Nov 20 14:30:19 snmp-manager2 snmptrapd[10283]: Stopping snmptrapd
Nov 20 14:30:19 snmp-manager2 snmptrapd[10291]: NET-SNMP version 5.7.2

corosync+Pacemaker(トラップの送信元)での設定

  • corosyncのトラップ送信用に/etc/sysconfig/corosync-notifydを作成します。
    • -mパラメータで送信先のSNMPマネージャーを指定します。
OPTIONS="-s -m 192.168.40.2"
  • Pacemakerのトラップ送信用に/etc/sysconfig/crm_monを編集します。
    • -Sパラメータで送信先のSNMPマネージャーを指定します。
#
# Example for SNMP : OPTIONS="-d -S <snmp manager address> -W -p <pid file>"
#    OPTIONS="-d -S 192.168.40.2 -W -p /tmp/ClusterMon-upstart.pid"
#
# Please refer to a help and a manual for the detailed option.
#
OPTIONS="-d -S 192.168.40.2 -W -p /var/run/ClusterMon-upstart.pid"
  • corsoync,corosync-notifyd,crm_mon,pacemakerを起動(startやsystemctl)します。
    • なお、SNMPが利用出来るように構築されているモジュールを利用する必要があります。

SNMPトラップの確認

  • crmコマンドなどでPacemakerのクラスタでリソースを起動するとSNMPマネージャーノードのログにトラップが出力されます。
  • クラスタを構成するノードの停止や起動でもトラップは確認出来ます。
[root@snmp-manager2 ~]# tail -f /var/log/snmptrapd.log 
Nov 20 14:30:19 snmp-manager2 snmptrapd[10283]: 2015-11-20 14:30:19 NET-SNMP version 5.7.2 Stopped.
Nov 20 14:30:19 snmp-manager2 snmptrapd[10283]: Stopping snmptrapd
Nov 20 14:30:19 snmp-manager2 snmptrapd[10291]: NET-SNMP version 5.7.2
Nov 20 14:31:46 snmp-manager2 snmptrapd[10291]: 2015-11-20 14:31:46 <UNKNOWN> [UDP: [192.168.40.100]:41163->[192.168.40.2]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1447997505) 167 days, 14:12:55.05     SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.32723.1        SNMPv2-SMI::enterprises.32723.1.2 = STRING: "prmStonith2-1"     SNMPv2-SMI::enterprises.32723.1.1 = STRING: "snmp1"     SNMPv2-SMI::enterprises.32723.1.3 = STRING: "start"     SNMPv2-SMI::enterprises.32723.1.4 = STRING: "OK"        SNMPv2-SMI::enterprises.32723.1.6 = INTEGER: 0  SNMPv2-SMI::enterprises.32723.1.7 = INTEGER: 0  SNMPv2-SMI::enterprises.32723.1.5 = INTEGER: 0

現状、crm_monを経由したSNMPトラップはクラスタの再構成時に、通知済みのトラップが再トラップされる事象があります。
これらは、Pacemaker1.1.14以降のSNMPトラップ機能で、改善される予定です。

  • 2015/12/22追記 - 残念ながら、PM1.1.14での新SNMP機能の公式リリースはなくなりました。再度、仕様が検討されてPM1.1.15で登場する模様です。
  • 2016/04/24追記 - PM1.1.15rc1で新SNMP機能が盛り込まれした。もう少しするとリリースですが、その前にまた別途、新SNMP機能について投稿したい思います。

以上です。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4