CentOS7(Zabbix4.4)でSNMPv3を使ってみました

仕事でSNMPv3を使うことになったので、自宅で事前に使ってみました。

1.まずは、↓の手順を参考に、Zabbixサーバを構築します。

Zabbix 4.4 インストール手順(CentOS7 / Apache2.4 / PHP5.4 / MariaDB5.5)
https://densan-hoshigumi.com/server/zabbix-4-4-centos7-apache-mariadb-install

2.監視対象側(SNMPv3エージェント側)の設定

net-snmpのインストール
yum -y install net-snmp
yum -y install net-snmp-utils

snmpdの開始
systemctl start snmpd

snmpdを開始すると、/var/lib/net-snmp/snmpd.conf
が自動で作成されます。

初期の状態
view /var/lib/net-snmp/snmpd.conf

setserialno 774288876

engineBoots 1
oldEngineID 0x80001f8880b83baa2a4313805e00000000

/etc/snmp/snmpd.confの設定
vi /etc/snmp/snmpd.conf
下記を追記

rwuser testsnmp priv

ユーザ種別:rwuser(読み書き可)
ユーザ名:testsnmp
認証タイプ:priv(ユーザ認証、暗号化とも有り)
で設定します。

SNMP認証用のユーザ作成
/var/lib/net-snmp/snmpd.conf
に設定をします。
このファイルは、snmpdが停止していないと再起動したときに中身が初期化されてしまうので、
中身を変更するときは、snmpdを停止します。

snmpdの停止
systemctl stop snmpd

vi /var/lib/net-snmp/snmpd.conf
下記を追記

createUser testsnmp SHA Mark456# AES Mark456#

ユーザ名:testsnmp
認証プロトコル:SHA
認証パスワード:Mark456#
暗号化プロトコル:AES
暗号化パスワード:Mark456#

snmpdの開始
systemctl start snmpd

ファイルの中央辺り (コメントアウトされていない場所の何処か)に書き込みます。
ここでsnmpdを再度起動すると、上記のcreateUser文が暗号化されます。

view /var/lib/net-snmp/snmpd.conf

usmUser 1 3 0x80001f8880b83baa2a4313805e00000000 “testsnmp” “testsnmp” NULL .1.3
.6.1.6.3.10.1.1.3 0xf0eb53f59c25a245cc21f5bb1dec552dcf07391a .1.3.6.1.6.3.10.1.2
.4 0xf0eb53f59c25a245cc21f5bb1dec552d “”

Viewとアクセス設定(snmpd.confで設定することもできます)
snmpvacm -v 3 -u testsnmp -l authPriv -a SHA -A Mark456# -x AES -X Mark456# localhost createView all .1 80
View successfully created.

snmpvacm -v 3 -u testsnmp -l authPriv -a SHA -A Mark456# -x AES -X Mark456# localhost createAccess local_group 3 3 1 all none none

書き込み権限の無い、rouserで設定しようとすると下記のようにエラーになります。

snmpvacm -v 3 -u testsnmp -l authPriv -a SHA -A Mark456# -x AES -X Mark456# localhost createView all .1 80
Error in packet.
Reason: noAccess
Failed object: SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyStatus.”all”.1.1

snmpwalkでMIBが取得できることを確認
snmpwalk -v 3 -u testsnmp -l authPriv -a SHA -A Mark456# -x AES -X Mark456# localhost

snmpgetでsysName.0が取得できることを確認
snmpget -v3 -l authPriv -u testsnmp -a SHA -A Mark456# -x AES -X Mark456# localhost 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: centos7

3.Zabbixサーバ側での設定

SNMPv3のアイテム設定は下記のようになります。

セキュリティ名のところにユーザ名を指定します。

設定が成功すると、ホスト名が取得できます。

Comments are closed.