search
LoginSignup
3

More than 5 years have passed since last update.

posted at

updated at

[blackbird-mysql] blackbird で mysql をモニタリングする

blackbird mysql plugin

この plugin では mysql から様々な情報を取得し、backend にデータを送信します
現在のところ、下記の情報をモニタリングすることができます。
(mysql 5.5 系を対象にしていますが 5.6 でも特に問題はないと思います)

  • mysql に接続できるかできないかの死活監視
  • SELECT VERSION()
  • SHOW GLOBAL VARIABLES
  • SHOW GLOBAL STATUS
  • SHOW ENGINE INNODB STATUS
  • SHOW SLAVE STATUS
  • DATABASE 内の TABLE の数 (Low Level Discovery)

各取得項目は component という単位になっています。
component 毎に Zabbix の Template を用意していますので、監視したい component と Zabbix Template をセットで使ってください
component と Zabbix Template の対応表は下記になります

blackbird mysql plugin の各 component

component content zabbix template
(defaultt) get mysql version and check mysql health MySQL_5.5_general.xml
global_variables get information by SHOW GLOBAL VARIABLES MySQL_5.5_variables.xml
global_status get information by SHOW GLOBAL STATUS MySQL_5.5_status.xml
innodb_status get information by SHOW ENGINE INNODB STATUS MySQL_5.5_innodb.xml
slave_status get information by SHOW SLAVE STATUS MySQL_5.5_slave.xml
table_count discovery number of tables in database (lld) MySQL_5.5_general.xml

各 Zabbix Template ですが、Zabbix 2.4 で作成されたものです
Trigger の定義が変わってますので 2.2 系では使えません

Install

blackbird 本体

こちらを参考に install してください

Install mysql plugin

setup.py で入れる方法と rpm で入れる方法があります
手動で入れる方法もありますが、その場合は別途 python の MySQLdb の module を使えるようにしてください

setup.py で install

git clone https://github.com/Vagrants/blackbird-mysql.git
cd blackbird-mysql
python setup.py install

rpm で install

yum install blackbird-mysql --enablerepo=blackbird

依存関係で MySQL-python が必要となります

MySQL 側に monitoring user を作成する

blackbird が接続する user を作成します

mysql> GRANT SELECT, REPLICATION CLIENT, SHOW DATABASES, PROCESS ON *.* TO  'bbd'@'127.0.0.1' IDENTIFIED BY 'bbd';

ip address や username、password は適宜変えてください
接続ユーザー情報は config で自由に設定することができます
すでにモニタリング用のユーザーがいる場合はわざわざ作る必要はありません

plugin の設定をする

config は /etc/blackbird/conf.d/mysql.cfg にあります
component や監視間隔を設定することができます

/etc/blackbird/conf.d/mysql.cfg
[mysql]
module = 'mysql'

# mysql setting
#
# - Please create monitor user like this.
#
#   mysql> GRANT SELECT, REPLICATION CLIENT, SHOW DATABASES, PROCESS ON *.* TO  'bbd'@'127.0.0.1' IDENTIFIED BY 'bbd';
#
# mysqlhost = '127.0.0.1'
# mysqluser = 'bbd'
# mysqlpass = 'bbd'

# components
# - global_variables : SHOW GLOBAL VARIABLES;
# - global_status    : SHOW GLOBAL STATUS;
# - innodb_status    : SHOW ENGINE INNODB STATUS;
# - slave_status     : SHOW SLAVE STATUS;
# - table_count (LLD): SELECT table_schema, COUNT(table_name) FROM information_schema.TABLES GROUP BY table_schema;
#
components = 'global_variables,global_status,innodb_status,slave_status,table_count'

# interval for this module
#
# interval = 60
# lld_interval = 600

#
# You can set the different interval time for each component.
#
# [mysql]
# module = 'mysql'
# components = 'version,global_variables,global_status,innodb_status'
# interval = 60
#
# [mysql_slave_monitor_frequent_intervals]
# module = 'mysql'
# components = 'slave_status'
# interval = 10

config の後ろの方には TIPS として特定の component だけ監視間隔を変えたい場合の設定方法が書いてあったりします

設定が終わったら blackbird を再起動させます

sudo /etc/init.d/blackbird restart

Zabbix 上でデータが入ってきているか確認する

Zabbix の Template は github の repositoryにあります
Zabbix に import して対象のサーバーに適用させて下さい

Zabbix 上の host 名と blackbird が起動しているサーバーの host 名が違う場合は /etc/blackbird/conf.d/mysql.cfg 上で hostname を設定してあげる必要があります
Zabbix 上と合わせてください

/etc/blackbird/conf.d/mysql.cfg
hostname = your_static_hostname

注意点等

Zabbix の Template の Trigger 等は各自の環境毎にいろいろカスタマイズしてください
とりあえず取れるものは取る というポリシーで Zabbix Template は作られています
  • 当然 こんなの取ってどうするの? みたいな item もあります
  • item が多いということは、それなりに Zabbix DB に負荷がかかります。適宜無効にしてください
絶賛募集中です
  • あらかじめこういう Trigger を入れておいて欲しい
  • あらかじめこういう Graph を入れておいて欲しい
  • あらかじめこういう Screen を入れておいて欲しい
  • このアイテムも取れるようにしてほしい (SHOW PROCESSLIST は検討中です)
Zabbix 2.2 系で使いたいんだが
  • 要望が多ければ 2.2 系の Template も準備します
MySQL だけじゃなくて PostgreSQL は?
  • がんばります・・・

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3