LoginSignup
0
2

More than 3 years have passed since last update.

Zabbix SNMPTrap監視の流れ(Perl編)

Posted at

ZabbixではSNMPTrapを受信する為にSNMPTTをいれるか、Zabbixに付随するPerlスクリプトを使用するか選ぶ必要がある。今回はperlスクリプトを使用して監視を行う。

⓵ 監視機器が異常を検知
⓶ 監視機器がsnmptrapdにSNMPトラップを送信
⓷ snmp_trap_receiverがsnmptrapdのログを整形、整形したログをsnmptrapperfileに書き出す。
⓸ snmptrapperがsnmptrapperfileを読み込む
⓹ snmptrapperが読み込んだログを監視データとしてDBに登録

構築環境

  • CentOS7
  • Zabbix 4.0LTS

作業

【Zabbix側作業】

1.関連パッケージのインストール

SNMPTrap監視で必要なものや、作業で必要なコマンド、snmp_trap_receiver.plで必要なものをyumでインストールしていく。

1-1 yumコマンドの実施 ※SNMP関連のインストール

# yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl

1-2 yを押下しenter

Total download size: 12 M
Is this ok [y/d/N]: y

1-3 yumコマンドの実施 ※コマンド関連のインストール(インストール時に使用)

# yum install bzip2 gzip tar unzip make curl lynx wget ftp gpg patch gcc 

1-4 yを押下しenter

Total download size: 26 M
Is this ok [y/d/N]: y

1-5 yumコマンドの実施 ※perl関連のインストール

# yum install perl perl-CPAN perl-YAML perl-Module-Build perl-Time-HiRes 

1-6 yを押下しenter

Total download size: 9.5 M
Is this ok [y/d/N]: y

2.Perlライブラリの初期設定とパッケージの導入

2-1 cpanモジュールの起動 ※初回起動時は設定を行う

# cpan

2-2 yesを入力し、enter

Would you like to configure as much as possible automatically? [yes] yes

2-3 enterを押下

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')

2-4 下記コマンドを入力し、enter

cpan[1]> install Config::IniFiles 

2-5 cpanから抜ける

cpan[2]> bye 

3.zabbix_trap_receiver.plの導入

3-1 ソースコードを入手する

# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.2/zabbix-3.2.2.tar.gz

3-2 ダウンロードしたファイルを解凍する

# tar xfvz zabbix-3.2.2.tar.gz

3-3 解凍したファイルを/usr/local/binにコピー

# cp ./zabbix-3*/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/

3-4 コピーしたファイルの権限を変更

# chmod 755 /usr/local/bin/zabbix_trap_receiver.pl 

3-4.viでzabbix_trap_receiver.plの中身を下記に変更

# vi /usr/local/bin/zabbix_trap_receiver.pl
【変更前】$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
【変更後】$SNMPTrapperFile = '/var/log/zabbix/snmptrap.log';

4.snmptrapdの設定変更

snmptrapdの起動パラメータの設定を行う。
MIBの読み込みとログ出力先ファシリティをlocal 6に変更。

viで/etc/sysconfig/snmptrapdに下記を追加

# vi /etc/sysconfig/snmptrapd
【追加】
OPTIONS="-m +ALL -Ls6 -On -p /var/run/snmptrapd.pid"

5.snmptrapdの動作設定を行う。

viで/etc/snmp/snmptrapd.confに下記を追記

# vi /etc/snmp/snmptrapd.conf
【追加】
authCommunity log,execute,net private
authCommunity log,execute,net public
perl do "/usr/local/bin/zabbix_trap_receiver.pl"

6.rsyslog設定

local 6で受信したログの出力先ファイルを設定

viで/etc/rsyslog.confに下記を追記

# vi /etc/rsyslog.conf
【追加】
# SNMPTrap
local6.*     /var/log/snmpd/snmptrap.log

7.ログ出力先ディレクトリ作成

下記にsnmpdフォルダを作成
mkdir /var/log/snmpd

8.Zabbix設定

テンポラリファイルのパスとプロセスの起動数を指定する。

8-1 viで/etc/zabbix/zabbix_server.confを開く

# vi /etc/zabbix/zabbix_server.conf

8-2 下記を変更

【変更前】# SNMPTrapperFile=/tmp/zabbix_traps.tmp
【変更後】SNMPTrapperFile=/var/log/zabbix/snmptrap.log

8-3 下記を変更

【変更前】# StartSNMPTrapper=0
【変更後】StartSNMPTrapper=1

9.空ファイルの作成

先程追加したSNMPTrapperFileにファイルが存在しないとエラーログが出力されるため、
空ファイルを作成。

9-1 空ファイルの作成

# touch /var/log/zabbix/snmptrap.log

9-2 作成した空ファイルの権限を変更

# chown zabbix.zabbix /var/log/zabbix/snmptrap.log

10.各種再起動

10-1 rsyslog再起動

# systemctl restart rsyslog.service

10-2 snmptrapd起動

# systemctl start snmptrapd

設定確認(Zabbix作業)

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

SNMP Trapの送信

snmptrap -v 2c -c 【コミュニティ名】 127.0.0.1 8640000 .1.3.6.1.6.3.1.1.5.3

13.ログの受信していることを確認

# cat /var/log/zabbix/snmptrap.log
Jun  5 10:48:58 monitor snmptrapd[1109]: NET-SNMP version 5.7.2
10:49:21 2020/06/05 ZBXTRAP 127.0.0.1
PDU INFO:
  notificationtype               TRAP
  version                        1
  receivedfrom                   UDP: [127.0.0.1]:33256->[127.0.0.1]:162
  errorstatus                    0
  messageid                      0
  community                      public
  transactionid                  1
  errorindex                     0
  requestid                      798136353
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

監視設定

最後にZabbix側で受信したデータを検知できるようにテンプレートを作成していく。

14.テンプレートの作成
14-1 「設定」を押下
14-2 「テンプレート」を押下
14-3 「テンプレート作成」を押下

0
2
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
0
2