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

USB接続HDDのマウント(Linux)

[pukiwiki] 久しぶりにパーティション切ってフォーマットしようとしたら やり方を忘れてしまっていた… たまにしかやらないので手順を忘れやすい為、メモしとく(自分用にw)。 :OS|CentOS …

no image

iperf

[pukiwiki] #contents *iperf [#e7263e68] 帯域を測定する、ネットワーク性能測定ツール。 こまかい使い方についてはこれから要検証。 [本家サイト] NLANR ht …

[AWS]s3fsの最新版を試してみた(s3fs-1.70)

[pukiwiki] 以前バックアップテストにCentOS6.3のAMIを使用したが、s3fsをインストールする際、RPM版fuseのバージョンが2.8.3と古く、これに合わせてs3fsのバージョンも …

no image

RPMパッケージのJcodeインストール

[pukiwiki] &topicpath;   [参照サイト] お世話になっています。 http://fedorasrv.com/cpan2rpm.shtml **【インストール手順】 イ …

no image

[juniper] SRX(JunOS) ルーティング不具合修正(非対称ルートへの対応)

  SSGシリーズからSRX220にリプレイスを行った際に、VPNを経由したリモートオフィスとのLAN通信がうまくいかない事象が起きたので、トラブルシュート。 ・社内LANにおいてゲートウェイが複数あ …

宅麺