10月 22

net-snmp インストール

By ststyle Watch, net-snmp コメントは受け付けていません。

SNMPのインストール

「SNMP」とは「Simple Network Management Protocol」の略でルータやコンピュータなどの
様々な機器を監視、制御するためのプロトコルです。

SourceForgetから
net-snmp-5.1.2.tar.gzをDLします

http://sourceforge.net/project/showfiles.php?group_id=12694


$ tar xvzf net-snmp-5.4.1.2.tar.gz
$ cd net-snmp-5.4.1.2
$ ./configure
$ make
$ su
# make install

./configureの途中でSNMPのバージョンを

一番最初に問われるので ” v2 “ と入力し、(Enterでも良いです)
あとは全てEnterですっ飛ばします。

SNMP設定

デーモンの設定を行います

デフォルトの設定をコピーして、編集します。
編集すべき部分を矢印で示しますので、変更してください。


# cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
# vi /usr/local/share/snmp/snmpd.conf

####
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):

# sec.name source community
→  com2sec local localhost private
→  #com2sec mynetwork XXX.XXX.XXX.0/24 public

####
# Second, map the security names into group names:

# sec.model sec.name
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local

####
# Third, create a view for us to let the groups have rights to:

# incl/excl subtree mask
view all included .1 80

####
# Finally, grant the 2 groups access to the 1 view with different
# write permissions:

# context sec.model sec.level match read write notif
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none

###################################
# System contact information
#

# It is also possible to set the sysContact and sysLocation system
# variables through the snmpd.conf file. **PLEASE NOTE** that setting
# the value of these objects here makes these objects READ-ONLY
# (regardless of any access control settings). Any attempt to set the
# value of an object whose value is given here will fail with an error
# status of notWritable.

syslocation Right here, right now.
→  syscontact admin <admin@server.jp>

一番下に書いたsyscontactは各自、管理用のユーザ・アドレスに置き換えてください。

起動スクリプトの作成

「/etc/init.d/snmpd」として保存してください。


vi /etc/init.d/snmpd

#!/bin/bash
# ucd-snmp init file for snmpd
#
# chkconfig: - 50 50
# description: Simple Network Management Protocol (SNMP) Daemon
#
# processname: /usr/local/sbin/snmpd
# config: /usr/local/share/snmp/snmpd.conf
# pidfile: /var/run/snmpd

# source function library
. /etc/init.d/functions

OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd -a"
RETVAL=0
prog="snmpd"

start() {
echo -n $"Starting $prog: "
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
daemon /usr/local/sbin/snmpd $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/snmpd
fi;
echo
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
killproc /usr/local/sbin/snmpd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/snmpd
fi;
echo
return $RETVAL
}

reload(){
echo -n $"Reloading $prog: "
killproc /usr/local/sbin/snmpd -HUP
RETVAL=$?
echo
return $RETVAL
}

restart(){
stop
start
}

condrestart(){
[ -e /var/lock/subsys/snmpd ] && restart
return 0
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
condrestart
;;
status)
status snmpd
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
RETVAL=1
esac

exit $RETVAL

(アンパサンド書き換えて三箇所)

権限付与と自動起動の設定

# cd /etc/init.d
# chmod 755 snmpd
# chkconfig --add snmpd
# chkconfig --level 2345 snmpd on

SNMPの実行


/etc/init.d/snmpd start
Tagged with:
10月 21

Nagios-nrpe インストール

By ststyle Nagios, net-snmp コメントは受け付けていません。

NRPE(Nagios Remote Plugin Executor)とは、

Nagiosにてリモート監視を行うためのプラグインで、

リモートサーバのリソース監視を行いたい場合などに用います。

(ローカルのみ監視をする場合は必要ありません)

仕組み的には

NagiosサーバからリモートサーバへNRPEを経由し監視したいコマンドを送信し、

コマンドを受け取ったリモートサーバ側のNRPEエージェントが監視コマンドを発行し、

その結果をNagiosサーバへNRPEを経由し送信する模様。

(このときの使用するポート番号は5666である。リモートサーバ側は開放する必要がある)

→まずはnetstat -lnにて確認.

■Nagiosサーバ側■

Nrpeの取得&展開


$cd /usr/local/src/

$ wget http://downloads.sourceforge.net/nagios/nrpe-2.12.tar.gz
$ tar zxvf nrpe-2.12.tar.gz
$ cd nrpe-2.12

コンパイル&インストール


$ ./configure

*** Configuration summary for nrpe 2.12 03-10-2008 ***:

General Options:
-------------------------
NRPE port:    5666
NRPE user:    nagios
NRPE group:   nagios
Nagios user:  nagios
Nagios group: nagios

Review the options above for accuracy.  If they look okay,
type 'make all' to compile the NRPE daemon and client.

$ make check_nrpe
$ make install-plugin

# NagiosにNRPEプラグインを登録(無い場合は)





$ cp ./src/check_nrpe /usr/local/nagios/libexec

○nagiosQLにてコマンドとサービスを作成する

# Nagios再起動


$ service nagios restart

リモートホスト側(あらかじめNagiosサーバ側からのポートを開放しておく)

準備


$ /usr/sbin/useradd nagios
$ mkdir /usr/local/nagios /usr/local/nagios/bin /usr/local/nagios/libexec /usr/local/nagios/etc

最新版をダウンロード


$ cd /usr/local/src/
$ wget http://downloads.sourceforge.net/nagios/nrpe-2.12.tar.gz
$ tar zxvf nrpe-2.12.tar.gz
$ cd nrpe-2.12

コンパイル


$ ./configure --prefix=/usr/local/nagios
$ make

プログラム・設定ファイルのコピー


$ cp ./src/nrpe /usr/local/nagios/bin
$ cp ./sample-config/nrpe.cfg /usr/local/nagios/etc

インストールファイルの削除


$ cd ../
$ rm -rf nrpe-2.12.tar.gz nrpe-2.12

NagiosPluginのインストール

最新版をダウンロード


$ wget http://downloads.sourceforge.net/nagiosplug/nagios-plugins-1.4.13.tar.gz?modtime=1222335829&big_mirror=0
$ tar zxvf nagios-plugins-1.4.13.tar.gz
$ cd nagios-plugins-1.4.13

コンパイル


$ ./configure --prefix=/usr/local/nagios
$ make
$ make install

# スタンドアロンのプラグインをコピー
$ cp contrib/* /usr/local/nagios/libexec/

$ chmod 705 /usr/local/nagios/libexec/*

インストールファイルの削除


$ cd ../
$ rm -rf nagios-plugins-1.4.13 nagios-plugins-1.4.13.tar.gz

メモリ監視プラグインの改変


$ vi /usr/local/nagios/libexec/check_mem.pl
// この一行をコメントアウトして、
$command_line = `vmstat | tail -1 | awk '{print \$4,\$5}'`;
// この一行を追加
$command_line = `free |head -3|tail -1|awk '{print \$3,\$4}'`;

NRPEの設定

# コマンドの登録


$ vi /usr/local/nagios/etc/nrpe.cfg
// 任意のサービスを登録(しきい値やHDDのパーティションは環境に合わせて変える)
command[check_load]=/usr/local/nagios/libexec/check_load -w 9.0,7.0,6.0 -c 10.0,8.0,7.0
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -f -w 20 -c 10
$ chmod 644 /usr/local/nagios/etc/nrpe.cfg

起動設定(xinetに登録)


$ vi /etc/services
// 以下を追記
nrpe  5666/tcp  # NRPE

xinetdへ登録する


$ vi /etc/xinetd.d/nrpe
// 以下を記述

service nrpe
{
flags           = REUSE
socket_type     = stream
port            = 5666
wait            = no
user            = nagios
group           = nagios
server          = /usr/local/nagios/bin/nrpe
server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure  += USERID
disable         = no
only_from       = 127.0.0.1
only_from       = (NAGIOSサーバのIPアドレス)
}

# xinetの再起動(NRPEの起動)


$ /etc/rc.d/init.d/xinetd restart

それでは早速、Nagiosの画面で確認です

無事うまくいきました。

画像が小さいですが

サービス名”NRPE”の箇所で

リモートサーバをNRPE経由で監視できています。

またサーバ設定事態はnagiosQLにて行っており、

以前作成した定義ファイルのインポート機能もあるので楽チンです。

nrpe

補足:

ここでの環境では

NRPE経由にて実行できるコマンド群は以下となります。

(もちろん追加可能)


command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

以下のメッセージが表示された場合

CHECK_NRPE: Error – Could not complete SSL handshake.

リモートサーバ側のnrpe.cfgのオーナー・権限を確認

ちょっとコレではまってしまいました…


chown nagios:nagios /usr/local/nagios/etc/nrpe.cfg
Tagged with:
preload preload preload