CloudWatchの新機能で、カスタムのメトリクスが使用可能になりました。
これは、CloudWatchに任意のデータを登録でき、そのデータに対して
CloudWatchのグラフ表示やアラート通知機能を利用できる、というものです。
ということで、Nagiosと、このCloudWatchを融合してみようと思い、
今回は、その準備であるNagiosのパフォーマンスデータを自由に処理する部分を
確認しておきました。
まずはパフォーマンスデータをファイルに出力する部分ですが、
"/etc/nagios/nagios.cfg"を下記のようにするだけでOKです。
... # パフォーマンスデータの処理機能を有効に process_performance_data=1 # 出力先ファイルを指定 host_perfdata_file=/tmp/host-perfdata service_perfdata_file=/tmp/service-perfdata # 出力データのフォーマット host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$ service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$ # データの出力は追記モードで host_perfdata_file_mode=a service_perfdata_file_mode=a ...
Nagiosを再起動すると、下記のようにデータがファイルに出力されるようになります。
/tmp/host-perfdata
... [HOSTPERFDATA] 1305562433 localhost 4.006 PING OK - Packet loss = 0%, RTA = 0.04 ms rta=0.040000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0 ...
/tmp/service-perfdata
... [SERVICEPERFDATA] 1305562383 localhost Swap Usage 0.005 0.018 SWAP OK - 100% free (2047 MB out of 2047 MB) swap=2047MB;0;0;0;2047 [SERVICEPERFDATA] 1305562453 localhost Current Load 0.005 0.195 OK - load average: 0.00, 0.00, 0.00 load1=0.000;5.000;10.000;0; load5=0.000;4.000;6.000;0; load15=0.000;3.000;4.000;0; [SERVICEPERFDATA] 1305562473 localhost Total Processes 0.008 0.008 PROCS OK: 6 processes with STATE = RSZDT [SERVICEPERFDATA] 1305562563 localhost Current Users 0.008 0.107 USERS OK - 1 users currently logged in users=1;20;50;0 [SERVICEPERFDATA] 1305562573 localhost PING 4.006 0.140 PING OK - Packet loss = 0%, RTA = 0.04 ms rta=0.037000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0 [SERVICEPERFDATA] 1305562603 localhost Root Partition 0.006 0.035 DISK OK - free space: / 6308 MB (65% inode=96%): /=3258MB;8063;9071;0;10079 ...
これらのデータを定期的に処理する仕組みも、Nagiosには用意されており、
下記のように"/etc/nagios/nagios.cfg"に追記すればOKです。
... # 定期的に処理するインターバル host_perfdata_file_processing_interval=300 service_perfdata_file_processing_interval=300 # 定期処理に使われるコマンド host_perfdata_file_processing_command=process-host-perfdata-file service_perfdata_file_processing_command=process-service-perfdata-file ...
コマンドはとりあえず"/etc/nagios/objects/commands.cfg"に下記のように記述しています。
... define command { command_name process-host-perfdata-file command_line /bin/mv -f /tmp/host-perfdata /tmp/host-perfdata.$TIMET$ } define command { command_name process-service-perfdata-file command_line /bin/mv -f /tmp/service-perfdata /tmp/service-perfdata.$TIMET$ }
上記の設定でNagiosを再起動すると、下記のように定期的にログが
分割されるようになります。
host-perfdata
host-perfdata.1305562643
host-perfdata.1305562943
host-perfdata.1305563243
host-perfdata.1305563543
service-perfdata
service-perfdata.1305562643
service-perfdata.1305562943
service-perfdata.1305563243
service-perfdata.1305563543
このパフォーマンスデータを処理する部分をCloudWatchにデータ登録するようにすれば、
CloudWatchといい感じに融合できるのでは、と思います。
次はCloudWatchにデータ登録する部分です!
--------
http://www.suz-lab.com
0 コメント:
コメントを投稿