LoginSignup
0
0

More than 1 year has passed since last update.

Zabbix v5.0 でSNMP Trapとポーリング監視設定

Posted at

今回は以前にEC2(Amazon Linux2)で構築したZabbixでSNMP Trap受信とクライアントをポーリングで監視する設定をしたいと思います。Zabbixの構築の記事はこちら

SNMP Trapとポーリングについて

やりたいことはクライアントの監視なのですがやり方が大きく2つあります。
1つはSNMP Trapで監視する方法、もう一つはポーリングして監視する方法です。
イメージとしては以下のような感じです。
スライド1.PNG

正確ではないかもですが
・何かあった時にクライアントから通知を出してもらい、障害検知 →SNMP Trap
・常時疎通確認しておき、接続断があった時に障害として検知 →ポーリング
というイメージです。

今回のゴール

zabbixでWindows Server2019とESXiの監視ができるような環境を作成する

zabbix_Goal.png

※Windows Server2019についてはSNMPポーリングの受信のみで、ESXiはSNMP Trapとポーリング両方設定していきます。

前提環境

・ESXiのバージョンは6.7
・Zabbixのバージョンは5.0
・Zabbixサーバ、windows Server2019、ESXiは全て同一セグメント上に構築
・ZabbixはAmazon Linux2(CentOS7)で構築

設定の流れ

① ZabbixサーバにSNMP Trapの受信設定(CLIで設定)
② Zabbix上でホスト(監視対象)の設定(GUIで設定)

実際にやってみた

まず①からです。最初にEPELリポジトリを有効にします。だたし通常のCentOS7とは違い"yum install -y epel-release"としてもコマンドは通らないので、以下コマンドを実行します。

EPELリポジトリの有効化

#EPELリポジトリの有効化
amazon-linux-extras install epel -y

#EPELリポジトリの修正
vim /etc/yum.repos.d/epel.repo

以下のように修正
[epel]
enabled=0

SNMPトラップハンドラーのSNMPTTをインストールおよびファイル修正

#SNMPTTのインストール
yum --enablerepo=epel install -y snmptt

snmptt.iniの修正
#vim /etc/snmp/snmptt.ini

:set nu で行数を表示させます

   
以下修正していきます。

[16行目付近] 
変更前:mode = standalone
変更後:mode = daemon

[71行目付近]
変更前:net_snmp_perl_enable = 0
変更後:net_snmp_perl_enable = 1

[88行目付近]
変更前:net_snmp_perl_best_guess = 0
変更後:net_snmp_perl_best_guess = 2

[227行目付近]
変更前:#date_time_format
変更後:date_time_format = %Y/%m/%d %H:%M:%S

[254行目付近]
変更前:sleep = 5
変更後:sleep = 1

[607行目付近]
変更前:DEBUGGING  = 0
変更後:DEBUGGING  = 1

[613行目付近]
変更前:#DEBUGGING_FILE DEBUGGING 
変更後:DEBUGGING_FILE DEBUGGING = var/log/snmptt/snmptt.debug


[613行目付近]
変更前:#DEBUGGING_FILE DEBUGGING 
変更後:DEBUGGING_FILE DEBUGGING = var/log/snmptt/snmptt.debug

[618行目付近]
変更前:# DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmptthandler.debug
変更後:DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmptthandler.debug

[624行目付近]
変更前:/etc/snmp/snmptt.conf
変更後:/etc/snmp/snmptt_base.conf]

snmptt.confの修正

#snmptt.confの修正
vim /etc/snmp/snmptt_base.conf

以下のようにファイルの中身を修正します。

EVENT general .1.3.6.1.6.3.1.1.5.1 "coldStart" Normal
FORMAT ZBXTRAP $aA $ar $*

EVENT general .1.3.6.1.6.3.1.1.5.2 "warmStart" Normal
FORMAT ZBXTRAP $aA $ar $*

EVENT general .1.3.6.1.6.3.1.1.5.3 "linkDown" Critical
FORMAT ZBXTRAP $aA $ar $*

EVENT general .1.3.6.1.6.3.1.1.5.4 "linkUp" Normal
FORMAT ZBXTRAP $aA $ar $*

snmptrap関連の設定ファイルを修正

#snmptrapdの修正
vim /etc/sysconfig/snmptrapd
既存設定をコメントアウトさせて以下を追記

OPTIONS="-m +ALL -Lsd -On"

もう1つ別のファイルも修正します。

#snmptrapd.confの修正
vim /etc/snmp/snmptrapd.conf

既存設定をコメントアウトさせて以下を追記

authCommunity   log,execute,net public
perl do "/usr/share/snmptt/snmptthandler-embedded"

Zabbix設定ファイル の設定

#zabbix_server.confの修正
vim /etc/zabbix/zabbix_server.conf

以下を変更
変更前:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
変更後:SNMPTrapperFile=/var/log/snmptt/snmptt.log

変更前:StartSNMPTrapper=0
変更後:StartSNMPTrapper=1

各種サービスの起動

systemctl start snmptt
systemctl enable snmptt
systemctl start snmptrapd
systemctl enable snmptrapd
systemctl restart zabbix-server

これでSNMP Trapの設定は完了しました。SNMP Trapがちゃんと受信できて、ログに出力されるか見てみましょう。

#テストで自分自身からSNMP TRap送信
snmptrap -v 2c -c public 127.0.0.1  '' .1.3.6.1.6.3.1.1.5.3

#ログの確認
tail /var/log/snmptt/snmptt.log

こんな感じでログが出力されていればOKです。

2022/MM/DD xx:xx:xx .1.3.6.1.6.3.1.1.5.3 Critical "linkDown" 127.0.0.1 - ZBXTRAP 127.0.0.1 127.0.0.1 

設定完了するとZabbixのGUI画面ではこんな感じでアラート表示が出ます。
trap送信.png

コマンドの中の数字列 ”1.3.6.1.6.3.1.1.5.3”はOIDと呼ばれるIDです。
このIDがどういう状態・情報なのかと紐づいていて、相手先でIDを読み取ることで状態を把握するという感じです。

まとめられている記事がありましたので、ご参考までに
【snmp trap】generic trapのOIDについて

ここまででCLIでの設定は完了です。ここからはZabbizにログインして、監視対象やアラート設定などを行っていきます。

http://"サーバのIPアドレス"/zabbi でWebGUIにアクセスしてみましょう。
初期ログインIDとパスワードはID=[Admin]とPW=[zabbix]です。

Zabbix上でホスト(監視対象)の設定

ログイン後に[設定]-[ホスト]で[ホストの作成]をクリックし、ホストを作成していきます。

スライド4.PNG

ホスト名やグループ名は任意のものを、タイプはSNMP Trapを送信するだけならSNMPのみでよいですが、今回はポーリングもするのでエージェントにも自分自身のIPを入力します。

スライド6.PNG

マクロ設定

マクロを以下のように設定します。
スライド7.PNG

テンプレートの設定

テンプレートを以下のように設定します。
スライド8.PNG

アイテムの設定

SNMT Trap受信用アイテムを以下のように設定します。
スライド9.PNG

ポーリング用アイテムを以下のように設定します。

image.png

画像は今回は192.168.10.1のホストをポーリング監視する場合の設定です。

トリガーの設定

SNMP Trap受信用のトリガーを以下のように設定します。
条件式は下記を入力します。

{"hostname":snmptrap[linkDown].regexp(linkDown)}=1

スライド10.PNG

ポーリング用のトリガーを以下のように設定します。
条件式は下記を入力します。

{"hostname":icmpping.count(#5,0,eq)}>=4

今回は192.168.10.1のホストが5回中4回以上ping応答なし(=値が0)の時アラートを発生させます。

スライド11.PNG

これで対象サーバがダウンしたり、NW上疎通できなくなるとZabbix上でアラートが発生するようになります。

おわりに

Zabbiz のトリガーやアイテム設定のところがあまり理解できてないので間違っていたらすみません。
zabbizが有名どころなだけあって色々ネットで情報は出てくるのですが、どの設定がどういう意味なのかが分からない(笑)

参考にしたサイト

【Zabbix】Zabbix でSNMPトラップ監視できる環境を構築
zabbixバージョン5.0を用いた死活監視(ping監視)
Zabbixの監視設定

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