CentOS 7でのSNMP・SNMPTRAPをインストールする際の手順とコンフィグの設定方法についての説明となります。
CentOS 7でのSNMPインストール方法
ファイアウォール無効化
簡易設定のため、ファイアウォールの無効化を行います。
[root@localhost umilcl]$ systemctl stop firewalld
[root@localhost umilcl]$ systemctl disable firewalld
net-snmp インストール
インターネットに接続可能な場合
# snmpインストール
[root@localhost umilcl]$ yum -y install net-snmp
[root@localhost umilcl]$ yum -y install net-snmp-utils
Code language: PHP (php)
インターネットに接続不可な場合
以下はインターネット接続不可な場合のオフラインインストール方法となります。2-1で設定可能な方は飛ばしてください。
インストールメディアをマウント
メディアを入れただけでは、ファイルを読み込めないのでドライブをマウントしてメディアの中のファイルを使用できるようにする。
# メディアをマウントするディレクトリの作成
[root@localhost tmp]$ mkdir /media/centos7
# メディアをマウント
[root@localhost tmp]$ mount -t iso9660 /dev/cdrom /media/centos7
# viでrepoファイル作成
[root@localhost tmp]$ cd /etc/yum.repos.d/
# ファイルの作成
[root@localhost tmp]$ vi media_default.repo
[media_default]
name=media_default
baseurl=file:///media/centos7
gpgcheck=0
enabled=0
Code language: PHP (php)
オフラインインストール
# snmpインストール
[root@localhost umilcl]$ yum -y install --disablerepo=* --enablerepo=media_default net-snmp
[root@localhost umilcl]$ yum -y install --disablerepo=* --enablerepo=media_default net-snmp-utils
Code language: PHP (php)
net-snmp 設定
「/etc/snmp/snmpd.conf」の設定ファイルを編集します。
[root@localhost umilcl]$ vi /etc/snmp/snmpd.conf
com2sec 設定
「セキュリティ名」を定義し接続可能な「送信元ネットワーク」及び、「コミュニティ名」を紐づけます。
com2sec MyNetwork default public
com2sec NAME SOURCE COMMUNITY
[NAME]:セキュリティ名。自由記述。
[SPURCE]:問い合わせ可能なホスト名/IP アドレス(ソース IP)を指定。 "default" を指定時はすべてのホストからの問い合わせ許可。
[COMMUNITY]:コミュニティ名。自由記述。
Code language: PHP (php)
group 設定
com2secで設定した「セキュリティ名」紐づけた「グループ名」を設定します。
group MyGroup v1 MyNetwork
group MyGroup v2c MyNetwork
group NAME MODEL SECURITY
[NAME]:グループ名。自由記述。
[MODEK]:セキュリティモデルの指定。 v1, v2c, usm のいずれかを選択。
[SECURITY]:セキュリティ名の指定。上記のセキュリティ名との紐づけ。
Code language: CSS (css)
view 設定
MIB ツリーの参照を許可する範囲を定義します。
本例では、全ての MIB ツリーへのアクセスを許可した「AllView」を追加しています。
rocommunity publicを追加しないとsnmpwalkで参照できない場合があるので、追加しています。
view SystemView included .1.3.6.1.2.1.1
view SystemView included .1.3.6.1.2.1.25.1.1
view AllView included .1
rocommunity public
view NAME TYPE SUBTREE (MASK)
[NAME]:group ディレクティブで指定したグループ名
[TYPE]:included またはたは
[SUBTREE]:set/get を許可する
[MASK]:MIB ツリーの指定方法を 16 進 4 桁表示したもの。 省略可。
all 全ての MIB 情報
system システム関連情報のみ
Code language: JavaScript (javascript)
access 設定
snmp へのアクセス制限を設定します。
access MyGroup "" any noauth exact AllView none none
access NAME CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY
[NAME]:group ディレクティブで指定したグループ名.
[CONTEXT]:SNMPv1, SNMPv2c を用いる場合は空欄 ("")
[MODEL]:セキュリティモデル名. any, v1, v2c, usm のいずれかを選択。
[LEVEL]:セキュリティレベル. noauth, auth, priv のいずれかを選択. SNMPv1, SNMPv2c を用いる場合は noauth を選択。
[PREFIX]: [context] で指定された文字列の扱い。 exact (厳密に一致することを要求) か prefix (最初の文字列が一致) を選択。
[READ] [WRITE] [NOTIFY]:それぞれ get (読みだし), set (書き込み), trap (通知) を許可するかしないか。
Code language: CSS (css)
大容量ファイルシステム使用率監視の設定
disk / 10000
disk /dev/shm 10000
disk /boot 10000
SNMP設定反映
net-snmp を再起動して、設定を反映します。また自動起動についても設定します。
# 起動確認コマンド
[root@localhost umilcl]$ systemctl status snmpd
# snmpdがActiveの場合
[root@localhost umilcl]$ systemctl restart snmpd
# snmpdがStopの場合
[root@localhost umilcl]$ systemctl start snmpd
# 自動起動設定
[root@localhost umilcl]$ systemctl enable snmpd
Code language: PHP (php)
SNMP動作確認
「snmpwalk」を使用して、対象装置から MIB の情報を取得可能か確認します。
[root@localhost umilcl]$ snmpwalk -v 2c -c public 192.168.1.100
Code language: PHP (php)
snmptrapd の設定
snmptrapd は、NW 装置からの Trap を受信します。設定ファイルは「/etc/snmp/snmptrapd.conf」です。
[root@localhost umilcl]$ vi /etc/snmp/snmptrapd.conf
「public」というコミュニティ名で送信された Trap を受信するには、以下のとおり設定します。
authCommunity log,execute,net public
Code language: PHP (php)
snmptrapd の設定反映
snmptrapd を再起動して、設定を反映します。また自動起動を設定します。
[root@localhost umilcl]$ systemctl restart snmptrapd
[root@localhost umilcl]$ systemctl enable snmptrapd
snmptrapd の動作確認
「tail -f」を使用して、対象装置から Trap を受信可能か確認します。
[root@localhost umilcl]$ tail -f /var/log/messages
Code language: JavaScript (javascript)
SYSLOG動作確認(Hinemos用)
Hinemosエージェントを導入しないマシンにおいてsyslogを監視するための設定です。
Hinemosでの監視を行わない方は流してください。
*.info;mail.none;authpriv.none;cron.none @MANAGER_IP_ADDRESS:514
最後に
上記まででCentOS7におけるSNMP・SNMPTRAPの導入は完了となる。
SNMPやSNMPTRAPを活用したサーバ・ネットワーク等のシステム監視としてHinemos等のオープンソースソフトウェア(OSS)があるので以下に紹介記事を記載しておきます。