柚子快報激活碼778899分享:zabbix監(jiān)控中間件服務(wù)
柚子快報激活碼778899分享:zabbix監(jiān)控中間件服務(wù)
zabbix監(jiān)控Nginx
自定義nginx訪問量的監(jiān)控項(xiàng),首先要通過腳本將各種狀態(tài)的值取出來,然后通過zabbix監(jiān)控。找到自定義腳本上傳到指定目錄/etc/zabbix/script/
在zbx-client客戶端主機(jī)操作
#創(chuàng)建目錄,然后將腳本上傳到該目錄
mkdir /etc/zabbix/script/
cd /etc/zabbix/script
chmod +x ngx_status.sh
#腳本內(nèi)容主要是利用函數(shù)定義nginx狀態(tài)頁面的各個字段,然后結(jié)合awk進(jìn)行取值,最后在通過case語句控制腳本輸出
cat /etc/zabbix/script/ngx_status.sh
#定義Nginx status頁面
ngx_status="http://127.0.0.1/status"
#判斷status頁面是否存活
ngx_status_code() {
http_code=`curl -o /dev/null -s -w %{http_code}${ngx_status}`
if [ ${http_code} == "200" ];then
return 1
else
echo "Nginx status is not running."
fi
}
#獲取當(dāng)前活動用戶的連接數(shù)量
active() {
ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}
#獲取接受的客戶端連接數(shù)量
accepts() {
ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}
#獲取處理的連接總數(shù)量
handled() {
ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}
#獲取客戶端請求的總數(shù)量
requests() {
ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}
#獲取正在讀取請求標(biāo)頭的當(dāng)前連接數(shù)量
reading() {
ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}
#獲取正在將響應(yīng)寫回到客戶端的當(dāng)前連接數(shù)量
writing() {
ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}
#獲取當(dāng)前正在等待響應(yīng)的客戶端連接數(shù)量
waiting() {
ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}
#使用位置變量控制腳本輸出
case $1 in
active)
active;;
accepts)
accepts;;
handled)
handled;;
requests)
requests;;
reading)
reading;;
writing)
writing;;
waiting)
waiting;;
*)
echo "Unknown options"
esac
#修改zabbix agent配置文件,開啟自定義監(jiān)控功能
vim /etc/zabbix/zabbix_agentd.conf
...
311 Include=/etc/zabbix/zabbix_agentd.d/*.conf --自定監(jiān)控路徑
330 UnsafeUserParameters=1 --改為1為開啟自定義監(jiān)控功能,默認(rèn)該功能為關(guān)閉狀態(tài)
#進(jìn)入自定義監(jiān)控路徑
cd /etc/zabbix/zabbix_agentd.d/
#創(chuàng)建自定義監(jiān)控文件(文件名要求以 .conf結(jié)尾)
vim nginx_status.conf
UserParameter=nginx.active,bash
/etc/zabbix/script/ngx_status.sh active
UserParameter=nginx.accepts,bash
/etc/zabbix/script/ngx_status.sh accepts
UserParameter=nginx.handled,bash
/etc/zabbix/script/ngx_status.sh handled
UserParameter=nginx.requests,bash
/etc/zabbix/script/ngx_status.sh requests
UserParameter=nginx.reading,bash
/etc/zabbix/script/ngx_status.sh reading
UserParameter=nginx.writing,bash
/etc/zabbix/script/ngx_status.sh writing
UserParameter=nginx.waiting,bash
/etc/zabbix/script/ngx_status.sh waiting
#解釋
UserParameter= #自定義監(jiān)控固定格式
nginx.active #監(jiān)控項(xiàng)名稱
#重啟zabbix-agent服務(wù)
systemctl restart zabbix-agent
獲取監(jiān)控項(xiàng)數(shù)據(jù)
zabbix server端操作
#服務(wù)端下載zabbix-get軟件包,用于在命令行獲取客戶端監(jiān)控項(xiàng)的值
yum -y install zabbix-get
#獲取客戶端監(jiān)控項(xiàng)(按照自己的環(huán)境修改IP)
zabbix_get -s 192.168.0.15 -k nginx.active --當(dāng)前活動用戶的連接數(shù)量
zabbix_get -s 192.168.0.15 -k nginx.accepts --接收的客戶端連接總數(shù)量
zabbix_get -s 192.168.0.15 -k nginx.handled --處理的連接總數(shù)量
zabbix_get -s 192.168.0.15 -k nginx.requests --客戶端請求的總數(shù)量
zabbix_get -s 192.168.0.15 -k nginx.reading --正在讀取請求的連接數(shù)
zabbix_get -s 192.168.0.15 -k nginx.writing --將響應(yīng)反回客戶端的連接數(shù)
zabbix_get -s 192.168.0.15 -k nginx.waiting --客戶端正在等待服務(wù)器的響應(yīng)數(shù)量
接下來創(chuàng)建監(jiān)控模板、應(yīng)用集、監(jiān)控項(xiàng)
當(dāng)完成后,點(diǎn)擊 添加(Add),新的監(jiān)控項(xiàng)將出現(xiàn)在監(jiān)控項(xiàng)列表中。
按照上述方法在將其余的監(jiān)控項(xiàng)添加至模板中。最終的效果如下圖:
綁定模板,轉(zhuǎn)到 配置 → 主機(jī) 找到你的主機(jī),把模板綁定到主機(jī)。
隨后點(diǎn)擊配置欄中的監(jiān)測(Monitoring) → 最新數(shù)據(jù) (Latest data)以查看具體細(xì)節(jié)。
zabbix監(jiān)控Redis
自定義監(jiān)控項(xiàng)方法與nginx類似
#上傳腳本到/etc/zabbix/script路徑并添加執(zhí)行權(quán)限
chmod +x redis_status.sh
#創(chuàng)建自定義監(jiān)控項(xiàng)文件
vim /etc/zabbix/zabbix_agentd.d/custom_redis_status.conf
UserParameter=Redis.Info[*],/etc/zabbix/script/redis_statu
s.sh $1 $2
UserParameter=Redis.Status,(redis-cli -h 127.0.0.1 -p 6379 ping)2>/dev/null |grep -c PONG
#重啟zabbix agent服務(wù)
systemctl restart zabbix-agent
接下來創(chuàng)建模板、應(yīng)用集、監(jiān)控項(xiàng)、綁定模板與前邊的nginx一樣,此處不在重復(fù)演示,最終效果如下圖:
zabbix監(jiān)控PHP
php-fpm 作為 PHP進(jìn)程管理程序,我們也需要監(jiān)控它的狀態(tài)。
#查看php-fpm配置文件確保已經(jīng)開啟狀態(tài)頁面功能(搜索:status)
vim /etc/php-fpm.d/www.conf
...
121 pm.status_path = /php_status
#查看nginx配置文件確??梢栽L問php_status頁面
vim /etc/nginx/conf.d/default.conf
...
location /php_status { #php狀態(tài)頁面
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/scripts$fastcgi_script_name;
include fastcgi_params;
}
訪問php狀態(tài)頁面:http://server_ip/php_status pool:fpm池子名稱,大多數(shù)為www process manager:進(jìn)程管理方式,值:static,dynamic orondemand start time:啟動日期,如果reload了php-fpm,時間會更新 start since:運(yùn)行時長 accepted conn:當(dāng)前池子接受的請求數(shù) listen queue:請求等待隊(duì)列,如果這個值不為0,那么要增加FPM的進(jìn)程數(shù)量 max listen queue:請求等待隊(duì)列最高的數(shù)量 listen queue len:socket等待隊(duì)列長度 idle processes:空閑進(jìn)程數(shù)量 active processes:活躍進(jìn)程數(shù)量 total processes:總進(jìn)程數(shù)量 max active processes:最大的活躍進(jìn)程數(shù)量(FPM啟動開始算) max children reached:進(jìn)程最大數(shù)量限制的次數(shù),如果這個數(shù)量不為0,那說明你的最大進(jìn)程數(shù)量太小了,需要設(shè)置大點(diǎn) slow requests 當(dāng)啟用了php-fpm slow-log功能時,如果出現(xiàn)php-fpm慢請求這個計數(shù)器會增加,一般不當(dāng)?shù)腗ysql查詢會觸發(fā)這個值
自定義監(jiān)控項(xiàng)方法與nginx類似
#上傳腳本到/etc/zabbix/script路徑并添加執(zhí)行權(quán)限
chmod +x phpfpm_status.sh
#創(chuàng)建自定義監(jiān)控項(xiàng)文件
cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf
UserParameter=phpfpm_status[*],/bin/bash
/etc/zabbix/script/phpfpm_status.sh "$1"
#重啟zabbix agent服務(wù)
systemctl restart zabbix-agent
Zabbix Server獲取監(jiān)控項(xiàng)數(shù)據(jù)
#php-fpm運(yùn)行時長
zabbix_get -s 192.168.0.15 -k phpfpm_status[start_since]
#當(dāng)前接收的連接數(shù)
zabbix_get -s 192.168.0.15 -k phpfpm_status[accepted_conn]
#等待連接的請求數(shù)
zabbix_get -s 192.168.0.15 -k phpfpm_status[listen_queue]
#請求等待隊(duì)列最高的數(shù)量
zabbix_get -s 192.168.0.15 -k
phpfpm_status[max_listen_queue]
zabbix監(jiān)控MySQL
percona官網(wǎng): https://www.percona.com/軟件下載地址: wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
安裝percona
rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm
...
Scripts are installed to /var/lib/zabbix/percona/scripts --監(jiān)控腳本安裝路徑
Templates are installed to /var/lib/zabbix/percona/templates --監(jiān)控模板安裝路徑
#查看監(jiān)控模板路徑
ls /var/lib/zabbix/percona/templates
userparameter_percona_mysql.conf --監(jiān)控項(xiàng)配置文件
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml --監(jiān)控模板文件
#將自定義監(jiān)控文件移動至/etc/zabbix/zabbix_agentd.d/自定義監(jiān)控項(xiàng)
目錄
mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
導(dǎo)入監(jiān)控模板,驗(yàn)證模板是否可用,回到zabbix web界面通過 配置→模板→導(dǎo)入 將模板文件導(dǎo)入。
提示:默認(rèn)會出現(xiàn)如上圖問題,應(yīng)為percona提供的監(jiān)控模板由于版本2.0.9過低,而zabbix4.0以后版本就不支持2.0以下的模板,需要使高版本的模板。
通過配置→模板查看(搜索:mysql)具體信息
配置percona連接數(shù)據(jù)庫
percona監(jiān)控插件是php編寫,通過php連接mysql數(shù)據(jù)庫來獲取相關(guān)的數(shù)據(jù),需要為percona指定連接數(shù)據(jù)庫的用戶與密碼。
#修
改/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php文件指定用戶與密碼
ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh --獲取MySQL狀態(tài)腳本
ss_get_mysql_stats.php --php連接MySQL數(shù)據(jù)庫腳本
#修改php腳本指定連接數(shù)據(jù)庫用戶與密碼
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
...
30 $mysql_user = 'root';
31 $mysql_pass = ''; 如果root用戶沒有密碼,則留空即可
#重啟zabbix agent服務(wù)
systemctl restart zabbix-agent
zabbix server 端命令行取值(具體值可
從/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf監(jiān)控項(xiàng)文件中查看)
zabbix_get -s 192.168.0.15 -k MySQL.Sort-scan
0
如果需要監(jiān)控主從同步狀態(tài),需要修
改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh腳本文件
將用戶改為root即可(如果root用戶沒有設(shè)置密碼,則不需要指定-p)。
回到web界面查看監(jiān)控項(xiàng)狀態(tài)。
具體取值數(shù)據(jù)可從 監(jiān)測→最新數(shù)據(jù) 中查看
此時通過 監(jiān)測→儀表板 查看時會發(fā)現(xiàn)一個問題通知,大致含義為主從狀態(tài)為停止。
如果沒有配置主從同步,通過 配置→主機(jī)→監(jiān)控項(xiàng),找到對應(yīng)監(jiān)控項(xiàng)關(guān)閉即可。
到此為止MySQL監(jiān)控以完成。
有時間可以制作一個MySQL的監(jiān)控模板(中文)只保留核心監(jiān)控項(xiàng)目,沒有必要的,停用掉!
查看監(jiān)控項(xiàng)狀態(tài)。
[外鏈圖片轉(zhuǎn)存中…(img-FxnuItaS-1709728242025)]
具體取值數(shù)據(jù)可從 監(jiān)測→最新數(shù)據(jù) 中查看
此時通過 監(jiān)測→儀表板 查看時會發(fā)現(xiàn)一個問題通知,大致含義為主從狀態(tài)為停止。
[外鏈圖片轉(zhuǎn)存中…(img-fiOs3lNX-1709728242026)]
如果沒有配置主從同步,通過 配置→主機(jī)→監(jiān)控項(xiàng),找到對應(yīng)監(jiān)控項(xiàng)關(guān)閉即可。
[外鏈圖片轉(zhuǎn)存中…(img-9jHutmYm-1709728242026)]
到此為止MySQL監(jiān)控以完成。
有時間可以制作一個MySQL的監(jiān)控模板(中文)只保留核心監(jiān)控項(xiàng)目,沒有必要的,停用掉!
柚子快報激活碼778899分享:zabbix監(jiān)控中間件服務(wù)
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。