從Zabbix 2.2開始,Zabbix官方已經支持了MySQL監控,可是MySQL監控默認是不可用的,須要通過額外的設置纔可使用。Kaijia將Zabbix換到了新的服務器時候性能綽綽有餘,因而決定充分發揮剩餘的內存和SSD性能,把MySQL、Apache、PHP-FPM等的監控也開起來 html
首先要肯定Zabbix服務有MySQL的監控模板。MySQL模板默認包含在了Zabbix 2.2中,但若是是從較舊版本的Zabbix升級而來的話可能這個模板並無導入。這種狀況的話須要訪問Zabbix官方的Wiki頁面下載此模板Template_App_MySQL-2.2.0.xml而後在Zabbix服務器的前端Web界面的組態 前端
接下來就是被監控端(須要安裝Zabbix Agent)的設置了 mysql
怎麼安裝Zabbix Agent我就簡單說明下好了將zabbix源碼文件下載到/tmp/install目錄下 sql
./configure --enable-agent vim
make install 服務器
vi /usr/local/etc/zabbix_agentd.conf文件 socket
Server=192.168.153.181#Zabbix Server輪詢Agent ListenPort=10050 ListenIP=0.0.0.0 ServerActive=192.168.153.181#Agent主動請求Zabbix Server
首先要創建一個MySQL賬戶用於Zabbix Agent登陸獲取MySQL狀態,這個賬戶不須要任何權限固然能夠登陸被監控端的MySQL新建一個賬戶。 tcp
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '密碼'; FLUSH PRIVILEGES;
修改mysql配置文件 vim /etc/my.cnf (yum默認安裝的mysql,配置文件就在/etc/my.cnf) 性能
[client] port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set=utf8 [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock skip-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 default-character-set=utf8 log-bin=mysql-bin binlog_format=mixed server-id = 1 [mysqldump] quick max_allowed_packet = 16M #將一下配置內容放到/var/lib/zabbix更好一些 [mysql] host=localhost user=zabbix password=zabbix socket=/var/lib/mysql/mysql.sock no-auto-rehash [myisamchk] key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout #將一下配置內容放到/var/lib/zabbix更好一些 [mysqladmin] host=localhost user=zabbix password=zabbix socket=/var/lib/mysql/mysql.sock
這裏推薦將如下配置,建立一個文件.my.cnf放到/var/lib/zabbix目錄下【推薦這種方法】 ui
由於在/usr/local/etc/zabbix_agentd.conf.d/userparameter_mysql.conf文件中指定了目錄
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | HOME=/var/lib/zabbix mysql -N UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V
[mysql] host=localhost user=zabbix password=zabbix socket=/var/lib/mysql/mysql.sock [mysqladmin] host=localhost user=zabbix password=zabbix socket=/var/lib/mysql/mysql.sock
修改zabbix agent配置
vim /usr/local/etc/zabbix_agentd.conf (源碼安裝的,沒有設置--prefix,配置文件目錄就在這個)
拷貝userparameter_mysql.conf 文件到/usr/local/etc/zabbix_agentd.conf.d/目錄下(具體安裝路徑請根據實際狀況修改)
# cp /tmp/install/zabbix-2.2.9/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
拷貝服務腳本,放到/etc/rc.d/init.d 使得可讓chkconfig管理服務
cp /tmp/install/zabbix-2.2.9/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/
啓動zabbix_agent服務(要先建立zabbix用戶 Linux用戶)
若是已經開啓過了,就重啓服務
service zabbix_agentd restart
最後別忘了開啓防火牆10050端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
上圖
參考文章
http://www.kaijia.me/2014/01/use-zabbix-monitor-mysql-server/