snmpエージェントによって構築されたMIB(Management Information Base)にアクセスしてみる。
MIBにはマシン情報(cpu負荷、ネットワーク負荷、HDD空き容量ら)が含まれていてsnmpマネージャでアクセス、読み取れる。
この機構を使ってcactiのようなマシン情報(cpu負荷、ネットワーク負荷、HDD空き容量ら)の一元監視が可能となる

まずはMIBにアクセスできるようにsnmpエージェント(snmpdデーモン)を起動させます。

net-snmpのインストールと設定

[root@c ~]# yum install net-snmp

そして設定ファイル /etc/snmp/snmpd.confを調整する

[root@c ~]# diff -u /etc/snmp/snmpd.conf.orig /etc/snmp/snmpd.conf
--- /etc/snmp/snmpd.conf.orig   2016-05-12 22:14:18.000000000 +0900
+++ /etc/snmp/snmpd.conf        2017-04-04 18:06:25.643600430 +0900
@@ -52,14 +52,13 @@
 
 # Make at least  snmpwalk -v 1 localhost -c public system fast again.
 #       name           incl/excl     subtree         mask(optional)
-view    systemview    included   .1.3.6.1.2.1.1
-view    systemview    included   .1.3.6.1.2.1.25.1.1
+view    all    included   .1
 
 ####
 # Finally, grant the group read-only access to the systemview view.
 
 #       group          context sec.model sec.level prefix read   write  notif
-access  notConfigGroup ""      any       noauth    exact  systemview none none
+access  notConfigGroup ""      any       noauth    exact  all none none
 
 # -----------------------------------------------------------------------------
 
[root@c ~]#

既定では提供するMIBの範囲を制限しているが、ここでは全部公開してます 「view all included .1」の部分
そして、このsnmpにアクセスする際のパスワード(コミュニティ名)は既定の「public」のままです。
これでsnmpのデーモン「snmpd」を起動させます

[root@c ~]# systemctl enable snmpd
[root@c ~]# systemctl start snmpd

確認

ローカルマシンでも、リモートマシンからでもsnmpマネージャアプリ(snmpクライアント)をインストールして

[root@c ~]# yum install net-snmp-utils

たとえば

[root@c ~]# snmpwalk -v2c -c public localhost 1.3.6.1.2.1 | less

とすれば情報が見られます。
*リモート接続の場合は、相手側のsnmpエージェントのfwで161(tcp/udp)を空けて置く

snmpdのログ管理

snmpを起動すると

[root@c ~]# ps x|grep snmpd | grep -v grep
 5234 ?        Ss     0:03 /usr/sbin/snmpd -LS0-6d -f
[root@c ~]#

として起動する

-LS0-6dとは、snmpで発生したログの採取対象を定義している。
数字の0-6は、
0:LOG_EMERG システムが落ちるような状況
1:LOG_ALERT 緊急に対処すべきエラー
2:LOG_CRIT 致命的なエラー
3:LOG_ERR 一般的なエラー
4:LOG_WARNING 警告
5:LOG_NOTICE 通知
6:LOG_INFO 情報
7:LOG_DEBUG デバック情報
とあらわす。dは、7のLOG_DEBUG(デバック情報)でもある。

っで、通常このままなら、デフォでsyslogに情報が回る。syslogで特定の入口、ファシリティ(facility)を
定義すれば、そのsyslogにだけログを回すこともできる。
local5をsnmpのファシリティに使うなら

*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
local5.* /var/log/snmp.log
(local5の内容はmessagesには記載せず、snmp.logのみ記載する)

と定義して、

/usr/sbin/snmpd -LS0-6d -Ls 5 -Lf /dev/null -p /var/run/snmpd.pid

-Ls 5を追加します


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-04-04 (火) 18:38:41 (53d)