blackbird ntp plugin
この plugin では ntpq の出力結果から様々な情報を取得し、backend にデータを送信します
取得してくる項目
ntpq -c peer
の出力結果から ntp server と参照同期している server を検出します
参照同期されている server が 1 台も無かった場合、 Trigger が上がるようにしています
remote refid st t when poll reach delay offset jitter
==============================================================================
*10.0.0.1 133.243.238.243 2 u 52 64 377 0.489 0.066 0.388
+10.0.0.2 133.243.238.163 2 u 54 64 377 0.505 -0.007 6.133
この場合は 10.0.0.1
が参照同期されていますので、10.0.0.1
の行の各種値を取得します
- remote
- refid
- stratum
- peer type (local / unicast / multicast / broadcast)
- poll
- reach
- delay
- offset
- jitter
when は取得しません
Install
blackbird 本体
こちらを参考に install してください
Install ntp plugin
setup.py で入れる方法と rpm で入れる方法があります
setup.py で install
git clone https://github.com/Vagrants/blackbird-ntp.git
cd blackbird-ntp
python setup.py install
rpm で install
yum install blackbird-ntp --enablerepo=blackbird
ntpq が必要
この blackbird-ntp
は内部で /usr/sbin/ntpq
を実行します
ntpq
のバイナリが無い場合は入れてください
(ntp のプロトコルを python から喋るようにすれば ntpq
は必要ないんですが・・そのうちやるかもしれません)
plugin の設定をする
config は /etc/blackbird/conf.d/ntp.cfg
にあります
[ntp]
module = 'ntp'
# ntpq path
# Default is '/usr/sbin/ntpq'
#
# path = /usr/sbin/ntpq
# ntpq target server
#
# host = 127.0.0.1
# ntpq timeout (ms)
#
# timeout = 1000
ntpq
の path が違う場合は変更してください
host を設定すれば、remote のサーバーも監視することができます
監視の間隔は 60 秒(discoveryは 600 秒)がデフォルトですが、変更したい場合は
interval = 30
lld_interval = 300
のように指定してください
設定が終わったら blackbird
を再起動させます
sudo /etc/init.d/blackbird restart
Zabbix 上でデータが入ってきているか確認する
Zabbix の Template は github の repositoryにあります
Zabbix に import して対象のサーバーに適用させて下さい
Zabbix 上の host 名と blackbird が起動しているサーバーの host 名が違う場合は /etc/blackbird/conf.d/ntp.cfg
上で hostname を設定してあげる必要があります
Zabbix 上と合わせてください
hostname = your_static_hostname
その他
Zabbix って時刻の同期の監視するうまい方法が今のところ用意されていないんですよね
Zabbix Server と時刻がずれているか、は agent で監視できるんですけれども