zabbix和mysql performance monitor模板實現mysql資料庫的監控
from:
style="color:#666666;font-family:宋體, Arial;line-height:26px;white-space:normal;background-color:#FFFFFF;" /> http://634871.blog.51cto.com/624871/1382835
###################常見故障
### 許可權問題
# zabbix 可以訪問mysql的pid
style="color:#666666;font-family:宋體, Arial;line-height:26px;white-space:normal;background-color:#FFFFFF;" /> http://634871.blog.51cto.com/624871/1382835
1.安裝mpm需要的相關依賴包:[保險起見,agent端也安裝下面的依賴包]
- [root@client141 ~]# yum -y install perl-File-Which perl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
-
# 上面perl-File-Which沒有自帶,需要自行下載安裝(如果還提示perl包,根據需要安裝相應perl版本,推薦使用yum安裝,另一篇部落格:http://blog.itpub.net/29096438/viewspace-1785734/)
- [root@client141 ~]# rpm -ivh perl-File-Which-1.09-5.1.noarch.rpm
-
- 還要安裝這幾個個包,不安裝後面一定會報錯
-
[root@client141 ~]# rpm -ivh MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm MySQL-shared-5.1.7-0.i386.rpm perl-DBD-mysql
2.下載mpm並解壓:[解壓後會產生兩個壓縮包]
-
[root@client141 ~]# tar -zxvf mysql_performance_monitor-latest.tar.gz
-
mysql_performance_monitor_agent-0.9.1.tar.gz
- mysql_performance_monitor_templates-0.9.1.tar.gz
3.在zabbixe服務端或者是web端解壓模板檔案:
-
[root@client141 ~]# tar -zxvf mysql_performance_monitor_templates-0.9.1.tar.gz
-
mysql_performance_monitor_templates-0.9.1/
-
mysql_performance_monitor_templates-0.9.1/CHANGELOG
-
mysql_performance_monitor_templates-0.9.1/xml/
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.ndb.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.security.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.innodb.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mpm.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.myisam.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mysql.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.aria.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.galera.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.slave.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.server.xml
-
mysql_performance_monitor_templates-0.9.1/xml/clone_screen.txt
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.master.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.drbd.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.pbxt.xml
-
mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.process.xml
4.在zabbix server端或web匯入相應模板檔案:[加粗部分為需要匯入的模板]
-
[root@client141 ~]# cd mysql_performance_monitor_templates-0.9.1/xml/
-
在Zabbix Web UI匯入監控所需的模板(“Configuration”->”Templates”->”Import”):
-
具體模板檔案用途如下:
-
Template_FromDual.MySQL.ndb.xml # 監控mysql cluster
-
Template_FromDual.MySQL.security.xml
-
Template_FromDual.MySQL.innodb.xml # 監控innodb儲存引擎狀態變數
-
Template_FromDual.MySQL.mpm.xml # 監控mpm agent本身,這個必須匯入
-
Template_FromDual.MySQL.myisam.xml # 監控myisam儲存引擎狀態變數
-
Template_FromDual.MySQL.mysql.xml # 監控mysql 常用狀態變數
-
Template_FromDual.MySQL.aria.xml # 監控aria儲存引擎的狀態變數
-
Template_FromDual.MySQL.galera.xml # 監控 mysql galera cluster
-
Template_FromDual.MySQL.slave.xml # 監控mysql主從複製中的slave的狀態
-
Template_FromDual.MySQL.server.xml # 監控linux系統跟資料庫使用相關的附加項
-
Template_FromDual.MySQL.master.xml # 監控mysql主從複製的master的狀態
-
Template_FromDual.MySQL.drbd.xml # 監控drbd 裝置的狀態資訊
-
Template_FromDual.MySQL.pbxt.xml # 監控pbxt儲存引擎狀態變數
-
Template_FromDual.MySQL.process.xml # 監控各種linux程式(比如:mysqld,ndbd)
5.在客戶端[mysql 資料庫伺服器端] 安裝mysql_performance_monitor_agent
-
[root@client100 ~]# tar -zxvf mysql_performance_monitor_agent-0.9.1.tar.gz
-
[root@client100 ~]# mv mysql_performance_monitor_agent-0.9.1 /usr/local/mysql_performance_monitor_agent
-
[root@client100 ~]# cd /usr/local/mysql_performance_monitor_agent/
-
# 修改 FromDualMySQLagent.pl 檔案,指定zabbix_sender的位置
- [root@client100 mysql_performance_monitor_agent]# sed -i 's|/usr/local/bin|/usr/bin|g' FromDualMySQLagent.pl ---填寫自己的sender位置,注意
# 編輯配置檔案
-
[root@client100 mysql_performance_monitor_agent]# cd etc/
-
[root@client100 etc]# cp FromDualMySQLagent.conf.template /etc/FromDualMySQLagent.conf
-
[root@client100 etc]# vim /etc/FromDualMySQLagent.conf
-
[default]
-
Type = mysqld
-
Debug = 2
-
-
#執行日誌檔案路徑,需要zabbix使用者可寫許可權
-
LogFile = /var/log/zabbix/FromDualMySQLagent.log
-
CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache
-
-
#需要在本機的Mysql中進行授權(需要什麼許可權?process,replication client)
-
Username = mpm
-
Password = kongzhong
-
MysqlHost = 127.0.0.1
-
MysqlPort = 3306
-
ZabbixServer = 192.168.1.141
-
Disabled = false
-
Modules = process mysql myisam innodb
-
#ClusterLog = /var/lib/mysql-cluster/ndb_1_cluster.log
-
# Mysql的PID檔案,需要zabbix使用者可讀許可權
- PidFile = /var/run/mysqld/mysqld.pid ---mysql的pid檔案,rpm安裝的mysql就是/var/lib/mysql/**.pid檔案
-
-
# 下面這個不能注掉也不能改section名稱,探測本機的mpm是否可用
-
[db_server]
-
Type = mysqld
-
Modules = mpm server
-
-
#下面的主機名需要跟Zabbix Server裡面定義的主機名一致,名稱隨意起(就是zabbix_agented裡面的那個hostname)
-
[hostname1]
-
Type = mysqld
-
#這些模組必須在mysql資料庫上已經實現了功能,如主從,如果沒有配置主從,而新增了master模板,在執行過程中就會報錯
-
Modules = mpm server process mysql myisam innodb master
- PidFile = /var/run/mysqld/mysqld.pid
6.修改zabbix agent 配置檔案:
# 這個引數配置檔案,是自己新建的
[root@client100 ~]# vim /etc/zabbix/ zabbix_agentd.conf
# 新增如下引數:
- UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/FromDualMySQLagent.conf --路徑注意
7.登陸資料庫,授權相應的mpm使用者,許可權
-
mysql> grant process,replication client on *.* to 'mpm'@'127.0.0.1' identified by 'kongzhong';
- mysql> flush privileges
8.修改 FromDualMySQLagent.conf 配置檔案相關目錄的許可權:
-
# 建立相關日誌存放目錄:
-
[root@client100 ~]# mkdir -p /var/log/zabbix/cache
-
# 手動建立日誌檔案:
-
[root@client100 ~]#touch /var/log/zabbix/FromDualMySQLagent.log
-
# 修改目錄許可權:
-
[root@client100 ~]#chown zabbix:zabbix /var/log/zabbix/ -R
-
# 修改許可權
-
[root@client100 log]# chmod o+r /var/run/mysqld/mysqld.pid
-
# zabbix-agent 重啟
-
[root@client100 etc]# /etc/init.d/zabbix-agent restart
9.上面配置完成後,就需要在zabbix web建立組和主機,關聯相關模板,這裡不演示了
10.簡單測試:
-
(1).檢查MPM外掛的工作情況:
-
[root@client100 ~]# /usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/FromDualMySQLagent.conf
-
1
-
# 返回值為1:表示MPM外掛正常,重啟zabbix_agent,載入mpm外掛
-
(2).在實際中,如果懷疑是zabbix_agentd問題,使用如下測試方式:
-
[root@client100 ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t FromDual.MySQL.check
-
FromDual.MySQL.check [t|1]
-
[root@client100 ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t system.uptime
-
system.uptime [u|6518]
-
# 以上能正常返回值,說明zabbix_agent是正常的
-
(3). 如果有錯誤的話,請檢視/var/log/zabbix下的相關日誌,
-
-
################### 實現流程
-
(crontab)FromDualMySQLagent.pl
-
先收集監控資料,儲存到FromDualAgentCache.hostname.cache
- 在呼叫zabbix_sender,將FromDualAgentCache.hostname.cache中的內容傳送到zabbix server
###################常見故障
### 許可權問題
# zabbix 可以訪問mysql的pid
usermod -G mysql zabbix
# zabbix 使用者啟動 FromDualMySQLagent.pl,使得zabbix_sender可以訪問FromDualAgentCache.hostname.cache
su - zabbix -c "/usr/local/mysql_performance_monitor/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor/etc/FromDualMySQLagent.conf"
# zabbix 使用者啟動 FromDualMySQLagent.pl,使得zabbix_sender可以訪問FromDualAgentCache.hostname.cache
su - zabbix -c "/usr/local/mysql_performance_monitor/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor/etc/FromDualMySQLagent.conf"
### 無法連線zabbix server
|
可採取措施如下步驟:
第一步:修改 FromDualMySQLagent.conf 配置檔案,註釋掉如下部分:[這些註釋的部分,因為在zabbix web沒有配置此主機]
[hostname1] Type = mysqld Mysqlport=3306 Modules = mpm server process mysql myisam innodb master PidFile = /var/run/mysqld/mysqld.pid |
第二步: 註釋掉模組裡檢查zabbix server 的語句:(推薦)
[root@client100 ~]# vim /usr/local/mysql_performance_monitor_agent/lib/sendData.pm
# 註釋掉的語句如下:
# $rc = &FromDualMySQLagent::checkConnectionToZabbixServer($main::gParameter{'ZabbixServer'}, $main::gParameter{'ZabbixServerPort'}, $main::gParameter{'Hostname'});
原始碼:FromDualMySQLagent.pm的checkConnectionToZabbixServer
原始碼:FromDualMySQLagent.pm的checkConnectionToZabbixServer
# This tag does NOT exist in templates!!!
my $lKey = 'FromDual.server.check';
my $lValue = 1;
my $lKey = 'FromDual.server.check';
my $lValue = 1;
### Load of cache file failed. rc=1301
12933:2014-03-22 06:52:06.005 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
12933:2014-03-22 06:52:06.019 - ERR : Load of cache file failed. rc=1301
12933:2014-03-22 06:52:06.019 - ERR : Load of cache file failed. rc=1301
# 報此錯了,上面的檔案,也在不斷變大,一般是上面檔案有錯,建議刪掉檔案,重新啟動程式,讓程式自己再重新建立個新檔案(而不是清空檔案)
(7).在zabbix web 端配置主機組時,主機組為 mysql database (可以設定為其他組,已經測試成功)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1787568/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用zabbix自帶模板監控MySQL資料庫MySql資料庫
- zabbix使用percona監控mysql資料庫MySql資料庫
- zabbix6.2新增mysql資料庫監控MySql資料庫
- 【Zabbix】使用zabbix 3.4自帶Mysql模板,監控Redhat 7.0上的MysqlMySqlRedhat
- 配置CACTI監控MySQL資料庫狀態(5)增加MySQL監控模板MySql資料庫
- MySQL監控--zabbixMySql
- Zabbix3.4用自帶模板監控mysqlMySql
- zabbix監控oracle資料庫Oracle資料庫
- zabbix使用perconaplugin監控mysqlPluginMySql
- shell監控mysql 8.0資料庫MySql資料庫
- shell監控mysql 5.7資料庫MySql資料庫
- Zabbix監控神通資料庫教程資料庫
- MySQL監控-Datadog資料庫監控調研MySql資料庫
- 使用Zabbix + Python對Mysql監控PythonMySql
- mysql監控:zabbix上自定義keyMySql
- MySQL資料庫監控項說明MySql資料庫
- MySQL調優效能監控之performance schemaMySqlORM
- 用zabbix監控mysql的主從複製MySql
- 使用 Performance API 實現前端資源監控ORMAPI前端
- Zabbix+Python監控Oracle資料庫PythonOracle資料庫
- zabbix監控linux磁碟io的模板Linux
- 專案實戰:zabbix監控MySQL狀態、服務資訊MySql
- MySQL資料庫與Nacos搭建監控服務MySql資料庫
- 02 zabbix-centos7 監控mysql5.7CentOSMySql
- 巧用Zabbix自定義監控Mysql效能狀態MySql
- ZABBIX安裝以及監控磁碟、mysql、oracle配置MySqlOracle
- Zabbix5.0 配置 ODBC 監控 Oracle 資料庫Oracle資料庫
- MySQL預設資料庫之performance_schema庫MySql資料庫ORM
- 效能監視器- Performance MonitorORM
- 【Mysql】為MySQL增加執行緒記憶體監控 (MySQL Thread Memory Usage Monitor)MySql執行緒記憶體thread
- zabbix應用-監控mysql slave 主從狀態MySql
- zabbix 監控資料庫表記錄數(Discovery方式)資料庫
- zabbix的主動模式監控和zabbix-proxy分散式監控模式分散式
- zabbix清除歷史監控資料
- 用canal監控binlog並實現mysql定製同步資料的功能MySql
- 配置CACTI監控MySQL資料庫狀態(4)配置cactiMySql資料庫
- Zabbix實戰--監控NginxNginx
- 【Zabbix】使用dbforbbix 2.2-beta監控Redhat 7.0上的Oracle、MysqlORBRedhatOracleMySql