harumaki.net

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

GNU/Linux infra nagios 運用

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

投稿日:2010年12月3日

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

 

snmpでのメモリ監視(物理メモリ、仮想メモリ)

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

1)物理メモリ監視/check_snmp_mem

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

スクリプト

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

ログ

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'
];

コンフィグ

  • コマンド定義
    • /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
      }

カスタマイズ

そのままではグラフ化できないので、スクリプトの終わり部分に
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";

カスタマイズ後の動作テスト

# 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

マップ

  • /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

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

スクリプト

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

ログ

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

'1291188718',
'adm',
'Memory Usage snmp[Swap]',
'OK : Swap Space: 1%used(9MB/1024MB) : 20 %',
'Swap Space=9MB;204;307;0;1023'

コンフィグ

  • コマンド定義
    • /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
      }

マップ

グラフと同化してしまうが、閾値として設定した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 ]];

 
 

 

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

執筆者:


comment

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

CAPTCHA


関連記事

no image

[メモ]sudo su -設定

たまにド忘れするのでメモ。 サーバー構築時にパス無しでsudo su -したいとき用に。 1)wheelグループへ追加 # vi /etc/group または # vigr wheelグループへsud …

no image

メモ:lsコマンドでタイムスタンプの表記を変える

lsコマンドにてタイムスタンプの表記を変える場合は、オプション”-l”との併用で”–time-style”をつけ 各種表記やdateコマンド …

nagiosgraph/1.install

  nagiosgraphインストールログ † nagiosgraphの導入ログ。 参考資料:nagiosgraph本家サイト http://nagiosgraph.svn.source …

no image

ZABBIXインストール(1.0)

  システム監視ツールzabbixのインストールドキュメント。 【本家サイト】 http://www.zabbix.com/ 日本語の情報はほとんどないので、サイトからダウンロードした マニュアルPD …

no image

postfixウィルス対策[ClamAV]

&lastmod; testuser postfixウィルス対策 タイトルはpostfixadmin/ウィルス対策となっているが 実際にはpostfixがフィルタリングルールに沿ってウィルスス …