blackbird とは
様々なデータを取得し、backend のサーバーにデータを投げる python 製のプログラム
現在は backend の投げ先には Zabbix Server のみ対応しているが、今後は様々なミドルウェアに対応していく予定です
blackbird を install する
pip で入れる方法と rpm で入れる方法があります
推奨は rpm になります
pip で install
特に何も考えずに
pip install blackbird
で入ります
または setup.py を使用して install してください
git clone https://github.com/Vagrants/blackbird.git
cd blackbird
python setup.py install
rpm で install
下記の通り yum の repository を設定します
cat <<'_EOF_'> /etc/yum.repos.d/blackbird.repo
[blackbird]
name=Blackbird
baseurl=https://vagrants.github.io/blackbird/repo/yum/6/x86_64/
enabled=0
gpgcheck=0
_EOF_
その後 yum で install します
依存関係で epel の package を使いますので epel を使えるようにしておいてください
yum install blackbird --enablerepo=blackbird,epel
blackbird を設定する
config は /etc/blackbird/defaults.cfg
になります
[global]
user = bbd
group = bbd
include = conf.d/*.cfg
log_file = /var/log/blackbird/blackbird.log
log_level = error
rpm で install した場合は上記のようになっていると思います
実行ユーザーやグループの変更が必要な場合は適宜変更してください
また、/etc/blackbird/conf.d/zabbix_sender.cfg
で zabbix server の設定をしておきます
[zabbix]
server = 127.0.0.1
module = zabbix_sender
127.0.0.1
を適切に変更してください
blackbird の plugin を入れる
ここでは blackbird-httpd
を例に進めます
plugin の install にはいくつか方法があります
手動で入れる
適当なところに clone して、ファイルを配置します
git clone https://github.com/Vagrants/blackbird-httpd.git
cd blackbird-httpd
cp httpd.py /opt/blackbitd/plugins/.
cp httpd.cfg /etc/blackbird/conf.d/.
setup.py で入れる
git clone https://github.com/Vagrants/blackbird-httpd.git
cd blackbird-httpd
python setup.py install
rpm で入れる
yum install blackbird-httpd --enablerepo=blackbird
※ plugin によっては epel が必要になります
plugin の設定をする
基本的には ini ファイルの中に説明があると思いますが、追加でいくつか設定することができます
特に重要なのは interval
と lld_interval
です
[httpd]
module = 'httpd'
# stub_status URI
# - support only http status code '200'
# - you must set uri value start with '/'
#
status_uri = '/server-status'
info_uri = '/server-info'
# host = '127.0.0.1'
# port = '80'
# timeout = '3'
# use ssl connection?
#
# ssl = False
# for BASIC authentication. default: Nothing
#
# user = 'nobody'
# for BASIC authentication. default: Nothing
#
# password = 'nobody'
# for response time check
# if you do not want to check, please comment out
# - support only http status code '200'
# - you must set uri value start with '/'
#
response_check_uri = '/'
# response_check_host = '127.0.0.1'
# response_check_port = '80'
# response_check_timeout = '3'
# response_check_vhost = 'localhost'
# response_check_uagent = 'blackbird response check'
# response_check_ssl = False
# httpd path
path = '/usr/sbin/httpd'
interval
は Zabbix へデータを送る間隔になります(デフォルト 60 秒)
lld_interval
は Low Level Discovery の間隔になります(デフォルト 600 秒)
(今回の httpd の plugin では LLD は使ってません)
各 plugin 毎にこれらの間隔を設定することができます
例えば 30 秒毎に取得、600 秒毎に Discovery をする場合は下記のようになります
interval = 30
lld_interval = 600
また、Zabbix Sender で送る際に host 名を自動で取得するのですが、Zabbix Server 側と host 名が違う場合は cfg に書くことができます
hostname = other_host_name
blackbird を起動する
/etc/init.d/blackbird start
起動 script が無い場合は https://github.com/Vagrants/blackbird/blob/master/scripts/blackbird.init を使ってください
Zabbix Server 側で Template を適用する
各 plugin 用に作られた Zabbix Template を公開しています
各 plugin の git repository の templates
以下にある xml を Zabbix Server に import してください
(今回の例の blackbird-httpd の場合 https://github.com/Vagrants/blackbird-httpd/tree/master/templates に置いてあります)
データが送られてこない場合は
まず /etc/blackbird/conf.d/zabbix_sender.cfg
内で server の設定が正しいか確認してください
また対象サーバーから Zabbix Server の port 10051 が開いていることを確認して下さい
Zabbix Server の port を 10051 から変更している場合は zabbix_sender.cfg
内で port = <your port num>
を追記してください
blackbird が動いているサーバーの hostname と Zabbix Server 側の host 名が違っている場合、データが入りません
Zabbix Server 側を修正するか、plugin の設定で hostname を定義して合わせてください