2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

blackbirdAdvent Calendar 2014

Day 2

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

Last updated at Posted at 2014-12-02

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 は?
  • がんばります・・・
2
3
0

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
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?