harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

GNU/Linux infra nagios 運用

nagios​/plugin​/SNMP​/mem監視

投稿日:2010年12月3日

Last Updated on 2021年7月4日 by かんりにん

 
[pukiwiki]

*snmpでのメモリ監視(物理メモリ、仮想メモリ) [#h1ad6570]

メモリの監視用プラグインは軒並みRAMとSwapのステータスを同時に取得するタイプばかりで
RAMとSwapの分離監視が出来ないため、監視は問題ないがグラフ出力には個人的に好ましくない印象。
そこで提供されているプラグインをカスタマイズし、RAMとSwapそれぞれの監視プラグインを用意。
※なので、単にプラグインを分離してそれぞれ別の値を取得しているだけだったりします…

**1)物理メモリ監視/check_snmp_mem [#a7ddb081]

check_winmem.plをカスタマイズし、check_snmp_mem_ram.plとしてリネーム。
RAM(物理メモリ)の出力およびperfdata行を出力し、nagiosgraphへ読ませる。

***スクリプト [#u2caa296]

check_winmem.pl

[リネーム後]
check_snmp_mem_ram.pl

-使用例:
$ perl /home/user/src/plugin/check_winmem.pl 192.168.0.30 public 85 95
OK MEM: usage 11.86 perc – 124340 KBytes of 1048752 KBytes -w 85 -c 95

***ログ [#t479e101]

nagiosgraph.logの出力情報を参照に。

Wed Dec 1 11:14:01 2010 insert.pl debug processdata data = [
‘1291169626’,
‘adm’,
‘Memory Usage’,
‘OK MEM: usage 25.19 perc – 264192 KBytes of 1048752 KBytes -w 99 -c 100’,
‘perfdata=25.19;264192;1048752’
];

***コンフィグ [#tfb82100]

-コマンド定義
–/usr/local/nagios/etc/objects/commands_snmp.cfg
# check_snmp_mem.pl
define command{
command_name check_snmp_mem
command_line $USER1$/check_snmp_mem_ram.pl $HOSTADDRESS$ $USER7$ $ARG1$ $ARG2$
}

-サービス定義
–/usr/local/nagios/etc/nodes/adm.cfg(例)
# Define a service to check memory on the remote machine.
define service{
use local-service,graphed-service ; Name of service template to use
host_name adm
service_description Memory Usage snmp[RAM]
#check_command check_snmp_mem!99,20!100,30
check_command check_snmp_mem!99!100
#notifications_enabled 0
}

***カスタマイズ [#r03e0e98]

そのままではグラフ化できないので、スクリプトの終わり部分に
nagiosgraph用にperfdataを出力する設定を追加する。

66c66
< print “CRITICAL MEM: usage $percuse perc – $usedsize1 $ unitused of $fullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | perfdata=$percuse;$usedsi ze1;$fullsize1\n”; — > print “CRITICAL
MEM: usage $percuse perc – $usedsize1
$ unitused of $fullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | RAM-perf=$percuse;$usedsize1;$fullsize1\n”;
70c70
< print “WARN MEM: usage $percuse perc – $usedsize1 $ u nitused of $fullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | perfdata=$percuse;$usedsize 1;$fullsize1\n”; — > print “WARN MEM:
usage $percuse perc – $usedsize1 $ u
nitused of $fullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | RAM-perf=$percuse;$usedsize1
;$fullsize1\n”;
75c75
< print “OK MEM: usage $percuse perc – $usedsize1 $ unitused of $fullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | perfdata=$percuse;$usedsize1;$fullsize1\n”; — > print “OK MEM: usage
$percuse perc – $usedsize1 $ unitused of $f
ullsize1 $unitfull -w $ARGV[2] -c $ARGV[3] | RAM-perf=$percuse;$usedsize1;$fullsize1\n”;

***カスタマイズ後の動作テスト [#sb29e0ed]
# perl /home/user/src/plugin/check_winmem.pl 192.168.0.30 public 85 95
OK MEM: usage 11.86 perc – 124340 KBytes of 1048752 KBytes -w 85 -c 95 | perfdata=11.86;124340;1048752

***マップ [#wfb84ae3]

-/usr/local/nagios/etc/nagiosgraph/map
# Service type: check_snmp_mem [RAM]
# output: OK MEM: usage 25.19 perc – 264192 KBytes of 1048752 KBytes -w 99 -c 100
# perfdata: RAM-perf=25.19;264192;1048752
/perfdata:RAM-perf=([.\d]+);(\d+);(\d+)/
and push @s, [ ‘memory usage RAM’,
[ ‘Used’, GAUGE, $2*1024 ],
[ ‘max’, GAUGE, $3*1024 ]];

————————————————————————————————————–

**2)Swap監視/check_snmp_swap [#wd30c3ca]

Swapに関してはメモリ監視のプラグインで実装しようとすると手間がかかる様子のため
ストレージ監視用のcheck_snmp_storageプラグインを転用。
もともとSwapのステータス取得が出来るので、ソースの書き換えは不要。

***スクリプト [#ace8e9f6]

check_snmp_storage.plを使用。

-使用例:
# ./check_snmp_storage.pl -H 192.168.0.30 -C public -f -m ^Swap -T bu -w 20 -c 30 -f
Swap Space: 9MBused/1024MB (1%) (<20MB) : OK | ‘Swap_Space’=9MB;20;30;0;1024

***ログ [#o22d52b6]

nagiosgraph.logの出力情報を参照に。
‘1291188718’,
‘adm’,
‘Memory Usage snmp[Swap]’,
‘OK : Swap Space: 1%used(9MB/1024MB) : 20 %’,
‘Swap Space=9MB;204;307;0;1023’

***コンフィグ [#v2ccddc6]

-コマンド定義
–/usr/local/nagios/etc/objects/commands_snmp.cfg
# check_snmp_storage Swap
define command{
command_name check_snmp_swap
command_line $USER1$/check_snmp_storage -H $HOSTADDRESS$ -C $USER7$ -f -m $ARG1$ -T $ARG2$ -w $ARG3$ -c $ARG4$
}

-サービス定義
–/usr/local/nagios/etc/nodes/adm.cfg(例)
# Define a service to check memory on the remote machine.
define service{
use local-service,graphed-service ; Name of service template to use
host_name adm
service_description Memory Usage snmp[Swap]
check_command check_snmp_swap!^Swap!pu!20!30
#notifications_enabled 0
}

***マップ [#e8ae47ec]

グラフと同化してしまうが、閾値として設定したwarning、criticalのラインを
表示しておく。

-/usr/local/nagios/etc/nagiosgraph/map
# service_description: Memory Usage snmp[Swap]
# output: OK : Swap Space: 1%used(9MB/1024MB) : 20 %
# perfdata: Swap Space=9MB;204;307;0;1023
/perfdata:Swap Space=(\d+)MB;(\d+);(\d+);(\d+);(\d+)/
and push @s, [ ‘memory usage SWAP’,
[ ‘Used’, GAUGE, $1*1048576 ],
[ ‘warning_line’, GAUGE, $2*1048576 ],
[ ‘critical_line’, GAUGE, $3*1048576 ],
[ ‘max’, GAUGE, $5*1048576 ]];

[/pukiwiki]
 
 

 

-GNU/Linux, infra, nagios, 運用
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

shfsをインストール

[pukiwiki] SSH版NFSともいえるshfsのインストールのドキュメント。これは便利。 【本家サイト】 お世話になっています。 http://shfs.sourceforge.net/ ただ …

no image

script​/標準入力の判定(case文)

[pukiwiki] ホスト名を標準入力にて引数として追加し、ホストグループを判定する勉強用スクリプト。 ホスト名の先頭にweb、db、app、mailがあった場合はホストグループとサーバールートを出 …

[AWS] EC2からS3へのファイル転送時間をコマンド別に軽くレポート

  本日までに試した、EC2→S3へのファイル転送時間をコマンド別にそれぞれ簡単に比較・テストしてみたので、以下にまとめ。 それぞれ5回試してみたうちの、速度がもっとも速かったものを以下に記載。今後の …

no image

opensshにてfingerprint確認を省略する設定

[pukiwiki] // tag // ssh openssh // fingerprint // Are you sure you want to continue connecting // k …

no image

[MySQL] Percona xtrabackupを試す(Ver2.0.8)リストア編

percona xtrabackupを使って作成したバックアップファイルをリストアする方法。 バックアップを取ったらリストアを検証しなくちゃね、ということで早速インスタンスをコピーして試してみることに …