CentOS7上で、SNMPTrapを試しました。
コンテナ上で試しましたが、ホスト上でも変わりません。
ここでは、docker pull centos:centos7 でCentOS7の
Docekerイメージは取得済みとします。
また、簡易にするために--privilegedを付与してコンテナ起動していますので、
Production環境などセキュリティが重要な環境では行わないでください。
Host1: 送信先(172.17.0.2)
Host2: 送信元(172.17.0.3)
Host1をつくります。
- CentOS7コンテナを起動します。
$ docker run --privileged -d --name host1 centos:centos7 /sbin/init $ docker exec -it host1 /bin/bash
- コンテナ内で、snmpdの設定をします。
host1> yum install net-snmp host1> vi /etc/snmp/snmpd.conf 下記を追記します。 ----- com2sec LocalNetwork 172.17.0.0/16 public group LocalGroup v2c LocalNetwork view AllView included .1 access LocalGroup "" any noauth exact AllView none none ----- host1> systemctl enable snmpd host1> systemctl start snmpd
- コンテナ内で、snmptrapを受信できるように設定します。
host1> vi /etc/sysconfig/snmptrapd 下記を追記します。 ----- OPTIONS="-Ls6 -p /var/run/snmptrapd.pid" ----- host1> systemctl enable snmptrapd host1> systemctl start snmptrapd host1> vi /etc/snmp/snmptrapd.conf 下記を追記します。 ----- authCommunity log,execute,net public ----- host1> systemctl restart snmpd
- rsyslogをインストールし、記録先を /var/log/snmptrapd.log に変更します。
host1> yum install rsyslog host1> vi /etc/rsyslog.d/snmptrapd.conf 下記を追記します。 ----- local6.* /var/log/snmptrapd.log ----- host1> systemctl enable rsyslog host1> systemctl start rsyslog
Host2をつくります。
- CentOS7コンテナを起動します。
$ docker run -it -d --name host2 centos:centos7 $ docker exec -it host2 /bin/bash
- コンテナ内で、snmptrapコマンドの設定をします。
host2> yum install net-snmp-utils
- SNMP Managerにつながるか確認します。
host2> snmpwalk -c public -v 2c 172.17.0.2 1.1.1.1.1.1
- SNMPTrapを送信します。
host2> snmptrap -v 2c -c public 172.17.0.2 '' 1.1.1.1.1.1 1.1.1.1.1.1.1.1 s "hogehoge"
-
Host1の/var/log/snmptrapd に出力されればOKです。
参考URL
- https://qiita.com/mishikawan/items/4cd9192e38501b6dfc1c
- http://sig9.hatenablog.com/entry/2017/10/10/000000
- https://weblabo.oscasierra.net/docker-centos7/
- https://www.infra.jp/squeeze/snmp.html
- https://qiita.com/yunano/items/9637ee21a71eba197345