監視サーバから直接接続できないローカルサーバの状況をMRTGで監視したい場合、ありますよね。
その場合の対処方法についてメモです。
イメージ的には
【監視サーバ】→→インターネット→→【システムWEBサーバ(192.168.0.1)】→→ローカル→→【システムDBサーバ(192.168.0.2)】
のような感じの場合です。
今回は例としてローカル内のDBサーバのロードアベレージを取得するとします。
まずDBサーバから定期的にLoadavg情報をWEBサーバへ転送するようにします。
【DBサーバ】192.168.0.2これをcronにて5分毎に実行させます。
# vim catch_loadavg.sh
-----------------------
awk '{ print $1"\n"$2 }' /proc/loadavg > db_loadavg # loadavg情報取得
rsync /path/to/db_loadavg 192.168.0.1::module_name/path/to/savedir # rsyncでWEBサーバへ転送
# crontab -eこれでDB側は準備完了です。
*/5 * * * * /path/to/catch_loadavg.sh
おそらくdb_loadavgというファイルには
0.24のように、1行目は1分平均、2行目が5分平均のロードアベレージデータがあるはずです。
0.18
次はWEBサーバ側です。
まずrsyncの設定を
# vim /etc/xinetd.d/rsyncこんな感じでしょう。xinetdを再起動します。
-------------------------------
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
# vim /etc/rsyncd.conf
--------------------------
hosts allow = 192.168.0.0/24
use chroot = false
read only = false
[module_name]
uid = root
gid = root
path = /
comment = some comment
# service xinetd restartこれで、DBサーバからロードアベレージデータファイルをrsyncにて受け取れるようになりました。
次にsnmpdの設定です。
まずはDBサーバのロードアベレージを表示するプログラムを作成します。1分平均のものと5分平均のもの2つ用意します。
# vim /etc/snmp/db_loadavg_1avg.sh // pathは適当です
-------------------------------
#!/bin/sh
cd /etc/snmp
cat /path/to/db_loadavg | awk 'NR==1 { print $1*100 }'
# vim /etc/snmp/db_loadavg_5avg.shこれで2つ出来ました。
-------------------------------
#!/bin/sh
cd /etc/snmp
cat /path/to/db_loadavg | awk 'NR==2 { print $1*100 }'
次はsnmpd.confの設定です。
# vim snmpd.confでsnmpdを再起動します。
---------------------------
# 以下を追加
exec db_loadavg_1avg /etc/snmp/db_loadavg_1avg.sh
exec db_loadavg_5avg /etc/snmp/db_loadavg_5avg.sh
# service snmpd restartこれでとりあえずWEB側の設定も完了です。
では監視サーバからデータが取得できるかどうか確認です。
監視サーバ側から
# snmpwalk -v 1 -c community_name webserver_host .1.3.6.1.4.1.2021.8.1.100.1これでデータが取得できればOKです。
# snmpwalk -v 1 -c community_name webserver_host .1.3.6.1.4.1.2021.8.1.100.2
監視サーバのMRTGの設定ファイルに
# vim /usr/local/mrtg-2/conf/foo.cfgと、まぁこんな感じで、、
-----------------------------------------------
Target[webserver_host_db_load]: .1.3.6.1.4.1.2021.8.1.101.1&.1.3.6.1.4.1.2021.8.1.101.2:community_name@webserver_host:
MaxBytes[webserver_host_db_load]: 10000
Options[webserver_host_db_load]: gauge, absolute
YLegend[webserver_host_db_load]: DB/LoadAvg
ShortLegend[webserver_host_db_load]: %
Legend1[webserver_host_db_load]: 1min CPU load avg
Legend2[webserver_host_db_load]: 5min CPU load avg
LegendI[webserver_host_db_load]: 1min CPU load avg
LegendO[webserver_host_db_load]: 5min CPU load avg
KMG[webserver_host_db_load]: %
Title[webserver_host_db_load]: DB/Load Average
あとはグラフが出てくれるのを気長に待つべし。
以上でぇぇぇす。