目次

概要

ZABBIXのソースコードに付属するzabbix_trap_receiver.plの使用方法。
ZABBIX 2.0以降はSNMPTTの使用が推奨されていたが、設定の難易度と運用時の使い勝手の悪さが目立っていた。
ZABBIX 3.xのソースコードにはsnmptrapdから呼び出すzabbix_trap_receiver.plが含まれており、こちらを使用する方法を記載する。

導入

パッケージ導入

  • 関連パッケージ
    yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl
    yum install bzip2 gzip tar unzip make curl lynx wget ftp gpg patch gcc 
    yum install perl perl-CPAN perl-YAML perl-Module-Build perl-Time-HiRes 
  • Perlライブラリの導入
    cpan
    
    <初期設定>
    
    install Config::IniFiles
    bye

zabbix_trap_receiver.pl

  • 展開と導入
    tar xfvz zabbix-3*.tar.gz
    cp ./zabbix-3*/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/
    chmod 755 /usr/local/bin/zabbix_trap_receiver.pl 
  • 設定
    # vi /usr/local/bin/zabbix_trap_receiver.pl
    
    【変更前】$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
    【変更後】$SNMPTrapperFile = '/var/log/zabbix/snmptrap.log';

設定

SNMPTrap

  • /etc/sysconfig/snmptrapd
    snmptrapdの起動パラメータの設定を行う。
    MIBの読み込みとログ出力先ファシリティをlocal 6に変更する。
    # vi /etc/sysconfig/snmptrapd
    
    OPTIONS="-m +ALL -Ls6 -On -p /var/run/snmptrapd.pid"
  • /etc/snmp/snmptrapd.conf
    snmptrapdの動作設定を行う。
    # vi /etc/snmp/snmptrapd.conf
    
    authCommunity log,execute,net private
    authCommunity log,execute,net public
    
    perl do "/usr/local/bin/zabbix_trap_receiver.pl"
     
    disableAuthorization yes
    pidfile /var/run/snmptrapd.pid
    donotlogtraps no
    logoption f /var/log/snmpd/snmptrap.log

rsyslog

  • /etc/rsyslog.conf
    local 6で受信したログの出力先ファイルを設定する。
    # vi /etc/rsyslog.conf
    
    # SNMPTrap
    local6.*     /var/log/snmpd/snmptrap.log
  • ログ出力先ディレクトリ作成
    mkdir /var/log/snmpd

ZABBIX

  • /etc/zabbix/zabbix_server.conf
  • /etc/zabbix/zabbix_proxy.conf
    テンポラリファイルのパスとプロセスの起動数を指定する。
    SNMPTrapperFile=/var/log/zabbix/snmptrap.log
    StartSNMPTrapper=1

    SNMPTrapperFileに設定したファイルが存在しないと大量なエラーログが出力されるため、空ファイルを作成する。
    touch /var/log/zabbix/snmptrap.log
    chown zabbix.zabbix /var/log/zabbix/snmptrap.log

監視設定

サービス制御

  • rsyslog再起動
    systemctl restart rsyslog.service
  • snmptrapd起動
    systemctl start snmptrapd
  • 自動起動設定
    systemctl enable snmptrapd

試験

SNMPTrapを送信して動作試験を行う。

  • SNMP Trapの送信
    snmptrap -v 2c -c public 127.0.0.1 8640000 .1.3.6.1.6.3.1.1.5.3
  • /var/log/snmpd/snmptrap.log
    Dec 10 23:59:39 zp00 snmptrapd[6685]: 2016-12-10 23:59:39 localhost [UDP: [127.0.0.1]:50558->[127.0.0.1]:162]:#012.1.3.6.1.2.1.1.3.0 = Timeticks: (8640000) 1 day, 0:00:00.00#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.3
    Dec 10 23:59:39 zp00 snmptrapd[6685]: perl callback function 0x7f60c4ccd0d8 returns 1
  • /var/log/zabbix/snmptrap.log
    01:02:12 2016/12/19 ZBXTRAP 127.0.0.1
    PDU INFO:
      notificationtype               TRAP
      version                        1
      receivedfrom                   UDP: [127.0.0.1]:51964->[127.0.0.1]:162
      errorstatus                    0
      messageid                      0
      community                      public
      transactionid                  1
      errorindex                     0
      requestid                      1426809208
    VARBINDS:
      .1.3.6.1.2.1.1.3.0             type=67 value=Timeticks: (8640000) 1 day, 0:00:00.00
      .1.3.6.1.6.3.1.1.4.1.0         type=6  value=OID: .1.3.6.1.6.3.1.1.5.3

参考

https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/snmptrap

http://nsb.homeip.net/wp/?p=421


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS