harumaki.net

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

GNU/Linux infra nagios 運用

nagios​/plugin​/Recurring schedule

投稿日:2010年11月27日

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

 
[pukiwiki]
*nagios ダウンタイムの定期スケジューリング

nagios標準のダウンタイム機能は一回限りのスケジュール設定のみが可能で、
“毎晩03時~05時は非通知”といった、定期的なスケジューリング機能を持っていない。
この機能を追加するプラグイン”Recurring schedule”。

-参考サイト
お世話になっています!
— 公式サイト
https://exchange.icinga.org/exchange/downtime_sched%3A+recurring+downtime+scheduler
–ダウンロード元
%% http://www.monitoringexchange.org/attachment/download/Utilities/AddOn-Projects/Downtimes/downtime_sched/downtime-3.1.tar-gz %%
2014.08.20現在、リンクが変わってました。新しいリンク先はこちら↓
https://exchange.icinga.org/exchange/downtime_sched%3A+recurring+downtime+scheduler/files/2/downtime-3.2.tar.gz

**1)インストール [#jfe36c9f]

アーカイブを展開するとcgiや実行スクリプト、設定ファイルが
一通りそろっている親切設計。

$ wget http://www.monitoringexchange.org/attachment/download/Utilities/AddOn-Projects/Downtimes/downtime_sched/downtime-3.1.tar-gz
$ tar zxvf downtime-3.1.tar-gz
# chown -R nagios.nagios downtime-3.1

**2)各ファイルの配置と編集 [#i074b385]

※変更内容は環境ごとに異なるので、自分の環境をチェックして
都度読み替えること。

***1.downtime_job.pl [#cf6587e0]

# cp downtime_job.pl /usr/local/nagios/bin/
# vi /usr/local/nagios/bin/downtime_job.pl
-[編集内容]
31c31
< my($NAGDIR) = “/u02/nagios” ; # Nagios root directory — > my($NAGDIR) = “/usr/local/nagios” ; # Nagios root directory
40c40
< my($CMDFILE) = “$NAGDIR/log/rw/nagios.cmd”; # Nagios CMD file — > my($CMDFILE) = “$NAGDIR/var/rw/nagios.cmd”; # Nagios CMD file
42c42
< $OBJECTS = “$NAGDIR/log/objects.cache” # Nagios 2/3 objects file — > $OBJECTS = “$NAGDIR/var/objects.cache” # Nagios 2/3 objects file
45c45
< $STATUSDAT = “$NAGDIR/log/status.dat” # Nagios status file — > $STATUSDAT = “$NAGDIR/var/status.dat” # Nagios status file
47c47
< $RETENTIONDAT = “$NAGDIR/log/retention.dat” # Nagios retained status file — > $RETENTIONDAT = “$NAGDIR/var/retention.dat” # Nagios retained status file
50c50
< $DOWNDAT = “$NAGDIR/log/downtime.dat” # Nagios 2 existing downtime — > $DOWNDAT = “$NAGDIR/var/downtime.dat” # Nagios 2 existing downtime
54,56c54,56
< $STATUSLOG = “$NAGDIR/log/status.log”; # Nagios status log file
< $HGCFG = “$NAGDIR/etc/hostgroups.cfg”;# hostgroup definitions
< $DOWNLOG = “$NAGDIR/log/downtime.log”; # existing sched downtime — > $STATUSLOG = “$NAGDIR/var/log/status.log”; # Nagios status log file
> $HGCFG = “$NAGDIR/etc/objects/hostgroup.cfg”;# hostgroup definitions
> $DOWNLOG = “$NAGDIR/var/log/downtime.log”; # existing sched downtime

***2.downtime_sched.cgi [#sd8729ed]

# cp -p downtime_sched.cgi /usr/local/nagios/sbin/
# vi /usr/local/nagios/sbin/downtime_sched.cgi
-[編集内容]
20c20
< my($NAGIOS) = “/u02/nagios”; — > my($NAGIOS) = “/usr/local/nagios”;
25c25
< my($STATUSLOG) = “$NAGIOS/log/status.log”;# if defined, check validity — > my($STATUSLOG) = “$NAGIOS/var/status.log”;# if defined, check validity
27c27
< my($OBJECTS) = “$NAGIOS/log/objects.cache”;# if defined, use nagios2 cache — > my($OBJECTS) = “$NAGIOS/var/objects.cache”;# if defined, use nagios2 cache

***3.schedule.cfg 作成 [#nf1914af]

etc/以下にスケジューリング設定用の空ファイルを用意する。
設定内容はcgiから生成されるので、作成当初は空でよい。
httpd実行ユーザーが書き込むので、オーナー権限を合わせる。
この環境ではapacheユーザーがhttpdを実行しているので、オーナーにapacheユーザーを指定。
# touch /usr/local/nagios/etc/schedule.cfg
# chown apache.nagios /usr/local/nagios/etc/schedule.cfg
# chmod 664 /usr/local/nagios/etc/schedule.cfg

***4.side.phpへリンクを追加 [#h4007dc6]

アーカイブ内にリンク用タグのファイルが用意されているので、nagiosのside.phpの適切な場所へ
追加する。

# cd /usr/local/nagios/share/
# cp -p side.php side.php.20101201
# vi side.php
-[追記内容]
122a123
>

 

***5.crontab登録 [#l87c7d92]

こちらもアーカイブ内にある”crontab”ファイルを参照に、
nagios実行ユーザーのcrontabに登録しておき、作業完了。
以下は毎時0分にチェックする設定例。
nagiosユーザーでcrontab -eしても、/etc/crontabに書き出しても、どちらでもOK。

-nagiosユーザーでcrontabを設定する場合
# su – nagios
$ crontab -e
–[設定内容]
0 * * * * /usr/local/nagios/bin/downtime_job.pl >/usr/local/nagios/var/log/downtime.log 2>&1
-/etc/crontabに設定する場合
$ su –
# vi /etc/crontab
–[設定内容]
0 * * * * nagios /usr/local/nagios/bin/downtime_job.pl >/usr/local/nagios/var/log/downtime.log 2>&1
設定後、問題なければ運用にのせる。

**3)動作テスト [#ae4181c1]

スクリプト単体でのテスト。
キックするとチェックが実施される。
“Error”が出力されなければOK。

# /usr/local/nagios/bin/downtime_job.pl
Reading in configuration
Reading in status log to get list of services
Reading in list of already scheduled downtime
Checking for downtime due in next 10080 minutes
#

**4)管理画面からの設定。 [#c5e066ed]

***1.設定(抜粋) [#t50c6a87]

nagios管理画面から”Recurring Downtime”をクリックし、設定。
3段階の範囲でダウンタイムを設定できる。
該当するものを選択し、ホスト、サービス、コメント、開始時間、有効時間、曜日、
一か月内の実行日を指定し、保存する。
– Recurring Hostgroup Downtime
ホストグループ指定でdowntimeを指定。
– Recurring Host Downtime
ホスト指定でdowntimeを指定。
– Recurring Service Downtime
ホスト別にサービス指定でdowntimeを指定。※これが一番多く使いそう。

***2.設定内容の確認 [#eb8a7b93]

登録内容は/usr/local/nagios/etc/schedule.cfgに出力されるので確認しておく。

-また、本機能で設定した内容はnagiosのデフォルト機能の”downtime”に反映される。
設定後、次のcron実行時にデフォルトの”downtime”にスケジュールが追加されるので
確認しておく。
※ただし、こちらは直近の設定のみが出力される。

[/pukiwiki]

 

 

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

執筆者:


comment

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

CAPTCHA


関連記事

[ただのメモ] Amazon_Linux_yumでのupdate不具合を解消

09/01にAmazon LinuxにてGitのアップデートがリリースされたのでyum updateしようとしたら、”No packages marked for update&#8221 …

no image

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

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

no image

[メモ]WindowsサーバのフォルダをLinuxサーバーへマウント

[pukiwiki] しばらくsmbを使っていなかったので、いつの間にかsmbmountを使わずとも mountコマンドのオプションでマウントを出来ることを知らなかったw WindowsフォルダのLi …

no image

CentOSにwmiクライアントを入れてみる

[pukiwiki] 何気に[[LINUX PACKAGE SEARCH>http://pkgs.org/]]でwmi(Windows Management Instrumentation)の RPM …

no image

JDK+Tocmat+Tomcat-connectorのインストール

[pukiwiki] 【今回の環境】 OS CentOS4.* FrontEnd Httpd-2.0.52(RPM) JDK jdk-1.5.0_07-fcs Tomcat apache-tomcat …

宅麺