cacti監(jiān)控mysql數(shù)據(jù)庫的方法
公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出同安免費(fèi)做網(wǎng)站回饋大家。
環(huán)境:
Cactiez或者cacti主機(jī):192.168.12.5
被監(jiān)控mysql數(shù)據(jù)庫主機(jī):192.168.5.231
1. 安裝監(jiān)控插件
cd /opt
tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
cp /opt/mysql-cacti-templates-1.1.2/ss_get_mysql_stats.php /var/www/html/scripts/
其實(shí)里面我們要監(jiān)控mysql用到的是:acti_host_template_x_db_server_ht_0.8.6i.xml和mysql_definitions.pl
其他則是監(jiān)控Apache和Nginx的,接下來我們會介紹到,這里不再詳細(xì)的講了。
chown -R apache.apache /var/www/html/scripts
chmod -R 755 /var/www/html/scripts
使用 http 訪問 cacti主機(jī) 導(dǎo)入
/opt/mysql-cacti-templates-1.1.2/cacti_host_template_x_db_server_ht_0.8.6i.xml
默認(rèn)CactiEZ 和Cacti別是 admin admin
控制臺 - 導(dǎo)入導(dǎo)出 - 模板導(dǎo)入 - 瀏覽
選中 cacti_host_template_x_db_server_ht_0.8.6i.xml
保存
2. 配置cacti的mysql插件
修改 ss_get_mysql_stats.php
vi /var/www/html/scripts/ss_get_mysql_stats.php
$mysql_user = 'cacti';
$mysql_pass = 'cacti';
$cache_dir = "/tmp/cacti/cache/";
這個(gè)賬戶和密碼是 被監(jiān)控端主機(jī) 給 Cacti主機(jī) 授權(quán)的 賬戶和密碼
Cacti需要這個(gè)賬戶和密碼去連接 被監(jiān)控機(jī) 查詢狀態(tài)
mkdir -p /tmp/cacti/cache
chown -R apache.apache /tmp/cacti
chmod -R 755 /tmp/cacti
設(shè)置 cacti 緩存目錄在 /tmp/cacti/cache/ 并給予權(quán)限
3. 配置被監(jiān)控端(192.168.5.231)的mysql 給 cacti 主機(jī)授權(quán)
mysql -uroot -p
grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';
exit
grant process,super on *.* to '賬戶'@'Cacti主機(jī)IP地址' identified by '密碼';此命令意義
只允許IP為 192.168.12.5 的主機(jī) 以賬戶 cacti 密碼 cacti 去訪問 本機(jī)數(shù)據(jù)
4. 在Cacti主機(jī)上(192.168.12.5) 監(jiān)控Mysql
4.1 為主機(jī)添加mysql模塊
控制臺 - 管理 - 設(shè)備 - 選中之前創(chuàng)建好的主機(jī)
然后移到最下面的 添加圖形模版 選中 Mysql相關(guān)模塊 然后保存
4.2 為mysql模塊創(chuàng)建圖形
控制臺 - 創(chuàng)建 - 創(chuàng)建圖形 - 選中該主機(jī) - 選中mysql模塊 - 創(chuàng)建
4.3 插件mysql性能數(shù)據(jù)
監(jiān)視器 - 選中該主機(jī) - 查閱對應(yīng)的mysql
完畢
-----一些數(shù)據(jù)庫操作語句
mysqld_safe --user=mysql
mysql -uroot -p
mysql -uroot -proot
grant ALL PRIVILEGES ON *.* to ‘root’@"%" identified by "root" WITH GRANT OPTION;
exit
grant select,insert,update,delete on cacti.* to ‘cacti’@”*”identified by "cacti";
exit
grant process,super on *.* to 'cacti'@'%' identified by 'cacti';
grant all privileges on cacti.* to ‘cacti’@"%" identified by "cacti";
客戶端開啟Cacti訪問本機(jī)mysql的權(quán)限
grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';
grant process,super on *.* to 'cacti'@'192.168.5.231' identified by 'cacti';
= = = = =
mysql -ucacti -pcacti -h 192.168.5.231
一、從網(wǎng)上下載相應(yīng)腳本與XML定義文件。
extensive_mysql_monitoring_including_replication
1. Template_MySQL_Server.xml
2. Template_MySQL_Replication_Master.xml
3. Template_MySQL_Replication_Slave.xml
和執(zhí)行腳本:mysql.php
二、把mysql.php上傳至配置文件目錄/etc/zabbix/
1. chmod 755 mysql.php
三、修改mysql.php文件
根據(jù)本機(jī)環(huán)境。
第一行加入:#!/usr/bin/php
在最后一行加入:?
關(guān)閉調(diào)試:define('DEBUG',true); 為 define('DEBUG',F(xiàn)alse);
修改日志、數(shù)據(jù)文件路徑:
1. define('LOG',"/tmp/zabbix_".SYSTEM.".log");
2. define('DAT',"/tmp/zabbix_".SYSTEM.".dat");
3. define('UTIME',"/tmp/.zabbix_".SYSTEM.".utime");
4. define('DTIME',"/tmp/.zabbix_".SYSTEM.".dtime");
修改:define('SYSTEM','mysql'.(DEBUG ? "-debug" : ""));為:define('SYSTEM','mysql');
打開系統(tǒng)日志功能
".LOG); 為
".LOG);
在$cmd = "zabbix_sender -z $server -p 10051 -s $host -k ".SYSTEM.".$var -o $val";
下面增加一行:exec($cmd);
四、在zabbix_agentd.conf配置文件中加入
UserParameter=mysql.daily,php /etc/zabbix/mysql.php daily 用戶名密碼
UserParameter=mysql.live,php /etc/zabbix/mysql.php live 用戶名 密碼
daily:每天執(zhí)行一次。
live:按指定時(shí)間執(zhí)行一次。
php :執(zhí)行php文件
/etc/zabbix/mysql.php:mysql.php文件所在的文件路徑
用戶名 密碼:登錄mysql數(shù)據(jù)庫的賬戶與密碼
重啟zabbix_agentd
五、在zabbix web管理界面導(dǎo)入xml文件
配置-導(dǎo)入/導(dǎo)出-瀏覽
六、在主機(jī)內(nèi)增加指定模板
配置-主機(jī)-具體主機(jī)名-Link with Template-新增-剛導(dǎo)入的模板。
模板分為三種:
template MYSQL_server:監(jiān)控項(xiàng)最全
template MYSQL_Replication_Master:只監(jiān)控主要參數(shù),監(jiān)控功能相對最少
template MYSQL_Replication_Slave:主要針對性能方面的監(jiān)控。
七、測試監(jiān)控是否成功
刪除 定時(shí)文件
1. rm /tmp/.zabbix_mysql-debug.dtime;
取的每天的監(jiān)控?cái)?shù)據(jù)
1. php /etc/zabbix/mysql.php daily root *****
取即時(shí)數(shù)據(jù)
1. php /etc/zabbix/mysql.php live root *****
查看日志
1. cat /tmp/zabbix_mysql.log
2. Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.006261"
3. sent: 1; skipped: 0; total: 1
4. Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.004047"
5. sent: 1; skipped: 0; total: 1
6. Info from server: "Processed 0 Failed 106 Total 106 Seconds spent 0.045790"
7. sent: 106; skipped: 0; total: 106
看到上述為成功
查看DAT的文件。上傳的數(shù)據(jù)
1. cat /tmp/zabbix_mysql.dat
1、打開數(shù)據(jù)庫配置文件my.ini
(一般在數(shù)據(jù)庫安裝目錄)(D:\MYSQL)
2、在數(shù)據(jù)庫的最后一行添加
log=log.txt
代碼
3、重啟mysql數(shù)據(jù)庫
4、去數(shù)據(jù)庫數(shù)據(jù)目錄
我的是(D:\MYSQL\data)
你會發(fā)現(xiàn)多了一個(gè)log.txt文件
我的是在C:\Documents
and
Settings\All
Users\Application
Data\MySQL\MySQL
Server
5.5\data
測試:
1、對數(shù)據(jù)庫操作
2、查看log.txt文件內(nèi)容
如果發(fā)現(xiàn)有變化說明你就可以監(jiān)控到mysql數(shù)據(jù)庫的變化
數(shù)據(jù)庫的查詢
刪除
更新
插入都可以查到
希望本篇文章可以幫助大家更快的二次開發(fā)
^_^
日志文件類型概述:
1.
錯(cuò)誤日志
記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的問題。
My.ini配置信息:
#Enter
a
name
for
the
error
log
file.
Otherwise
a
default
name
will
be
used.
#log-error=d:/mysql_log_err.txt
做過Zabbix的同學(xué)都知道,Zabbix通過專用的Agent或者SNMP收集相關(guān)的監(jiān)控?cái)?shù)據(jù),然后存儲到數(shù)據(jù)庫里面實(shí)時(shí)在前臺展示。Zabbix監(jiān)控?cái)?shù)據(jù)主要分為以下兩類: 歷史數(shù)據(jù):history相關(guān)表,從history_uint表里面可以查詢到設(shè)備監(jiān)控項(xiàng)目的最大
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測恢復(fù)工具。前者使用起來比較簡便。推薦使用。 1. check table 和 repair table 登陸mysql 終端
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個(gè)工具,說起 PT 工具包大家都不陌生,平時(shí)常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于這個(gè)工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現(xiàn)問題時(shí)收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內(nèi)存、磁盤、網(wǎng)絡(luò)等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復(fù)制,狀態(tài)參數(shù)等信息。
而且 pt-stalk 是一個(gè) Shell腳本,對于我這種看不懂 perl 的人來說比較友好,腳本里面的監(jiān)控邏輯與監(jiān)控命令也可以拿來參考,用于構(gòu)建自己的監(jiān)控體系。
三、使用
接著我們來看下如何使用這個(gè)工具。
pt-stalk 通常以后臺服務(wù)形式監(jiān)控 MySQL 并等待觸發(fā)條件,當(dāng)觸發(fā)條件時(shí)收集相關(guān)診斷數(shù)據(jù)。
觸發(fā)條件相關(guān)的參數(shù)有以下幾個(gè):
function:
°?默認(rèn)為 status,代表監(jiān)控 SHOW GLOBAL STATUS 的輸出;
°?也可以設(shè)置為 processlist,代表監(jiān)控 show processlist 的輸出;
variable:
°?默認(rèn)為 Threads_running,代表 監(jiān)控參數(shù),根據(jù)上述監(jiān)控輸出指定具體的監(jiān)控項(xiàng);
threshold:
°?默認(rèn)為 25,代表 監(jiān)控閾值,監(jiān)控參數(shù)超過閾值,則滿足觸發(fā)條件;
°?監(jiān)控參數(shù)的值非數(shù)字時(shí),需要配合 match 參數(shù)一起使用,如 processlist 的 state 列;
cycles:
°?默認(rèn)為 5,表示連續(xù)觀察到五次滿足觸發(fā)條件時(shí),才觸發(fā)收集;
連接參數(shù):host、password、port、socket。
其他一些重要參數(shù):
iterations:該參數(shù)指定 pt-stalk 在觸發(fā)收集幾次后退出,默認(rèn)會一直運(yùn)行。
run-time:觸發(fā)收集后,該參數(shù)指定收集多長時(shí)間的數(shù)據(jù),默認(rèn) 30 秒。
sleep:該參數(shù)指定在觸發(fā)收集后,sleep 多久后繼續(xù)監(jiān)控,默認(rèn) 300 秒。
interval:指定狀態(tài)參數(shù)的檢查頻率,判斷是否需要觸發(fā)收集,默認(rèn) 1 秒。
dest:監(jiān)控?cái)?shù)據(jù)存放路徑,默認(rèn)為 /var/lib/pt-stalk。
retention-time :監(jiān)控?cái)?shù)據(jù)保留時(shí)長,默認(rèn) 30 天。
daemonize:以后臺服務(wù)運(yùn)行,默認(rèn)不開啟。
log:后臺運(yùn)行日志,默認(rèn)為 /var/log/pt-stalk.log。
collect:觸發(fā)發(fā)生時(shí)收集診斷數(shù)據(jù),默認(rèn)開啟。
°?collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
°?collect-strace:收集跟蹤數(shù)據(jù),需要 strace 工具。
°?collect-tcpdump:收集 tcpdump 數(shù)據(jù),需要 tcpdump 工具。
單一的工具性價(jià)比較低,可以考慮統(tǒng)一的運(yùn)維監(jiān)控工具。比如選擇蟻巡運(yùn)維平臺實(shí)現(xiàn)對MySQL的詳細(xì)監(jiān)控,蟻巡能夠輕松將MySQL數(shù)據(jù)庫納入監(jiān)控范圍,并主動(dòng)巡檢其連接數(shù)、線程數(shù)、命令數(shù)、吞吐量、鎖等關(guān)鍵指標(biāo)數(shù)據(jù),同時(shí)可自定義設(shè)置閾值,確保及時(shí)隱患的及時(shí)發(fā)現(xiàn),并提供多種告警方式智進(jìn)行預(yù)警。