下文主要給大家?guī)?lái)Zabbix如何實(shí)現(xiàn)對(duì)Mysql、Apache、Nginx的監(jiān)控,希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯Zabbix如何實(shí)現(xiàn)對(duì)Mysql、Apache、Nginx的監(jiān)控這篇文章的主要目的。好了,廢話不多說(shuō),大家直接看下文吧。
創(chuàng)新互聯(lián)公司專注于永登企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站制作。永登網(wǎng)站建設(shè)公司,為永登等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)由于mysql安裝太浪費(fèi)時(shí)間,本人提供一鍵安裝mysql腳本,如下:
[root@agent ~]# ls mysql* mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz mysql.sh [root@agent ~]# sh mysql.sh Starting MySQL. SUCCESS! mysql: [Warning] Using a password on the command line interface can be insecure. //出現(xiàn)此信息表示安裝成功! [root@agent ~]# mysql -u root -p123 //腳本對(duì)應(yīng)的root密碼為123 mysql> grant all on *.* to zabbix@'192.168.1.%' identified by 'zabbix'; //創(chuàng)建測(cè)試用戶
[root@agent ~]# mkdir /etc/zabbix/shell [root@agent ~]# vim /etc/zabbix/shell/check_mysql.sh #!/bin/bash MYSQL_HOST='192.168.1.8' #指定mysql主機(jī)的IP地址 MYSQL_PORT='3306' #指定mysql主機(jī)的監(jiān)聽(tīng)地址 MYSQL_CONN="/usr/local/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}" #指定連接使用的工具 if [ $# -ne "1" ];then echo "arg error!" fi # 獲取數(shù)據(jù) case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` echo $result ;; Slow_queries) result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` echo $result ;; Questions) result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" ;; esac 由于將用戶名、密碼信息寫(xiě)到腳本中不安全,所以將用戶名、密碼信息寫(xiě)到/etc/my.cnf文件中 [root@agent ~]# vim /etc/my.cnf [mysqladmin] user=zabbix password=zabbix [root@agent ~]# chmod +x /etc/zabbix/shell/check_mysql.sh [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/check_mysql.sh [root@agent ~]# sh /etc/zabbix/shell/check_mysql.sh Uptime 5260 //agent端測(cè)試腳本能否使用
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf //將原本的UserParameter全部注釋,添加以下內(nèi)容 UserParameter=mysql.status[*],/etc/zabbix/shell/check_mysql.sh $1 UserParameter=mysql.ping,HOME=/etc /usr/local/bin/mysqladmin ping | grep -c alive UserParameter=mysql.version,/usr/local/bin/mysql -V [root@agent ~]# systemctl restart zabbix-agent [root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "mysql.status[Uptime]" 5372 //zabbix server端測(cè)試能否獲取到數(shù)據(jù)
zabbix自帶了mysql監(jiān)控的模板,因此只需將模板鏈接到對(duì)應(yīng)的主機(jī)即可!如下:
這里重點(diǎn)需要關(guān)注的是每個(gè)監(jiān)控項(xiàng)名稱對(duì)應(yīng)的”鍵值“一列的配置,這里的鍵值,必須和agent端自定義的監(jiān)控鍵值保持一致。另外,可以看到”mysql status“這個(gè)監(jiān)控項(xiàng)有一個(gè)觸發(fā)器,用于檢查mysql的運(yùn)行狀態(tài)。最后,還需關(guān)注這些監(jiān)控項(xiàng)的監(jiān)控類型是”zabbix客戶端“,所有監(jiān)控項(xiàng)都存放在”MYSQL“應(yīng)用集中。
以上設(shè)置完成,監(jiān)控mysql的主機(jī)已經(jīng)添加完成!
如圖:
從圖中可以看出已經(jīng)獲取到數(shù)據(jù)!
配置mysql監(jiān)控完成!
zabbix對(duì)apache的監(jiān)控,稍微復(fù)雜一些,但基本流程還是兩個(gè)步驟:第一個(gè)是編寫(xiě)監(jiān)控apache的監(jiān)控腳本;第二個(gè)是創(chuàng)建apache監(jiān)控模板。以下操作均在zabbix agent端實(shí)現(xiàn),具體步驟如下:
要想監(jiān)控apache的運(yùn)行狀態(tài),需要在apache的配置中開(kāi)啟一個(gè)apache狀態(tài)頁(yè)面,然后再通過(guò)編寫(xiě)腳本獲取這個(gè)狀態(tài)頁(yè)面的數(shù)據(jù)即可達(dá)到監(jiān)控apache的目的!
[root@agent ~]# yum -y install httpd [root@agent ~]# vim /etc/httpd/conf/httpd.conf //末尾添加以下內(nèi)容 EnableSendfile onSetHandler server-status Require ip 127.0.0.1 192.168.1.10 [root@agent ~]# systemctl start httpd
配置項(xiàng)中解釋如下:
1)EnableSendfile on:表示開(kāi)啟擴(kuò)展的status信息,但是開(kāi)啟后會(huì)降低云服務(wù)器運(yùn)行效率;
2) /server-status:則表示通過(guò)”http://ip/server-status“ 來(lái)訪問(wèn),同時(shí)也可以通過(guò)”http://ip/server-status?refresh=N“ 的方式進(jìn)行動(dòng)態(tài)訪問(wèn),N則表示N秒自動(dòng)刷新一次;
3)Require ip 127.0.0.1 192.168.1.10:這是apache 2.4版本增加的一個(gè)新特效。即表示需要訪問(wèn)的IP地址;
Require常用的用法如下:
1)Require all granted:允許所有主機(jī)訪問(wèn);
2)Require all denied:拒絕所有主機(jī)訪問(wèn);
3)Require ip IP地址:允許某個(gè)IP訪問(wèn);
4)Require not ip IP地址:禁止某個(gè)IP訪問(wèn);
5)Require host 主機(jī)名:允許某個(gè)主機(jī)訪問(wèn);
6)Require not host 主機(jī)名:禁止某個(gè)主機(jī)訪問(wèn);
修改完成后重啟apache服務(wù)生效!
apache狀態(tài)頁(yè)面配置完成后,接下來(lái)就需要編寫(xiě)獲取狀態(tài)數(shù)據(jù)的腳本了,腳本代碼較多,大家可通過(guò)以下方式下載!
[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-apache.zip [root@agent ~]# unzip zabbix-apache.zip [root@agent ~]# ll zapache* -rw-r--r-- 1 root root 5792 1月 31 23:00 zapache -rw-r--r-- 1 root root 52024 4月 22 2016 zapache-template.xml //zapache:是監(jiān)控apache所需的腳本; //zapache-template.xml:是監(jiān)控apache所需的模板; [root@agent ~]# mv zapache /etc/zabbix/shell/ [root@agent ~]# chmod 755 /etc/zabbix/shell/zapache [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/zapache [root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_zapache.conf //編寫(xiě)apache的模板文件,用于調(diào)取apache的監(jiān)控腳本 UserParameter=zapache[*],/etc/zabbix/shell/zapache $1 [root@agent ~]# systemctl restart zabbix-agent [root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "zapache[BusyWorkers]" 1 //zabbix server測(cè)試是否可以獲取數(shù)據(jù)
如圖:
如圖:
從圖中可以看出已經(jīng)獲取到數(shù)據(jù)!
配置apache監(jiān)控完成!
zabbix對(duì)Nginx的監(jiān)控,與監(jiān)控apache的方式完全一樣,基本流程還是兩個(gè)步驟:第一個(gè)是編寫(xiě)Nginx的腳本;第二個(gè)是創(chuàng)建Nginx監(jiān)控模板。以下操作均在zabbix agent端實(shí)現(xiàn),具體步驟如下:
[root@agent ~]# yum -y install pcre-devel zlib-devel openssl-devel [root@agent ~]# wget http://nginx.org/download/nginx-1.14.2.tar.gz [root@agent ~]# tar zxf nginx-1.14.2.tar.gz -C /usr/src [root@agent ~]# cd /usr/src/nginx-1.14.2/ [root@agent nginx-1.14.2]# ./configure --with-http_stub_status_module && make && make install [root@agent ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@agent ~]# vim /usr/local/nginx/conf/nginx.conf //添加loaction規(guī)則 location /nginx-status { stub_status on; //開(kāi)啟狀態(tài)監(jiān)控模塊 access_log off; //關(guān)閉訪問(wèn)日志 allow 127.0.0.1; allow 192.168.1.10; //允許訪問(wèn)的IP地址 deny all; //拒絕所有的IP地址 } [root@agent ~]# nginx -t [root@agent ~]# nginx [root@agent ~]# curl 127.0.0.1/nginx-status Active connections: 1 server accepts handled requests 1 1 1 Reading: 0 Writing: 1 Waiting: 0
輸出的信息說(shuō)明:
1)Active connections:對(duì)后端發(fā)起的活動(dòng)鏈接數(shù);
2)accepts:nginx總共處理了多少個(gè)連接;
3)handled:nginx成功創(chuàng)建了幾次握手;
4)requests:nginx總共處理了多少請(qǐng)求;
5)Reading:nginx讀取客戶端的header數(shù);
6)Writing:nginx返回給客戶端的header數(shù);
7)Waiting:nginx請(qǐng)求處理完成,正在等待下一請(qǐng)求指令的連接;
[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-nginx.zip [root@agent ~]# unzip zabbix-nginx.zip [root@agent ~]# ll nginx_status.sh zbx* -rw-r--r-- 1 root root 1106 11月 1 2018 nginx_status.sh -rw-r--r-- 1 root root 20703 11月 1 2018 zbx_nginx_templates.xml //nginx_status.sh:所需的腳本 // zbx_nginx_templates.xml:所需的模板 [root@agent ~]# mv nginx_status.sh /etc/zabbix/shell/ [root@agent ~]# chmod o+x /etc/zabbix/shell/nginx_status.sh [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/nginx_status.sh [root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf //編寫(xiě)nginx的模板文件,用于調(diào)取nginx的監(jiān)控腳本 UserParameter=nginx.status[*],/etc/zabbix/shell/nginx_status.sh $1 [root@agent ~]# systemctl restart zabbix-agent [root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "nginx.status[active]" 1 //zabbix server測(cè)試是否可以獲取數(shù)據(jù)
如圖:
如圖:
從圖中可以看出已經(jīng)獲取到數(shù)據(jù)!
配置nginx監(jiān)控完成!
對(duì)于以上關(guān)于Zabbix如何實(shí)現(xiàn)對(duì)Mysql、Apache、Nginx的監(jiān)控,大家是不是覺(jué)得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。