運(yùn)用zabbix監(jiān)控nginx和php-fpm功能
1.1 軟件及其版本
1.2 軟件安裝路徑
zabbix安裝在/usr/local/zabbix途徑下,其有關(guān)配置文件及二進(jìn)制履行程序都放置其間。
nginx安裝在/usr/local/nginx下,其有關(guān)配置文件及二進(jìn)制履行程序都放置其間。
php安裝在/usr/local/php下,其有關(guān)配置文件及二進(jìn)制履行程序都放置其間。
持續(xù)后面的操作前,請(qǐng)確認(rèn)nginx和php-fpm的效勞端口都處于監(jiān)聽(tīng)狀況。
2.1 確認(rèn)nginx的status已編譯到程序包中
使用nginx -V
可以查看nginx是否將模塊·http_stub_status_module`編譯進(jìn)包中:

2.2 啟用nginx的status模塊
- 修改nginx.conf文件
一般在默認(rèn)主機(jī)中增加如下location即可:

- 查看nginx status
nginx配置文件修改完成以后,使用nginx -t
測(cè)試配置文件是否有明顯邏輯及語(yǔ)法錯(cuò)誤,沒(méi)有問(wèn)題則重載配置文件。

- 然后使用瀏覽器或者
curl
指令查看nginx status:

2.3 nginx status數(shù)值的含義說(shuō)明

php-fpm自帶的有用于查詢其工作狀態(tài)的頁(yè)面,需要進(jìn)行如下 兩步,以啟用這一功能。
3.1 啟用php-fpm status頁(yè)面
修改php-fpm.conf
文件,去掉status頁(yè)面的注釋,并可以根據(jù)需要將其改名。操作如下:

3.2 查看php-fpm的status
修改完php-fpm.conf
后,使用service php-fpm reload
重新加載配置文件,然后在瀏覽器或者使用curl
指令查看php-fpm的status。操作如下:

php-fpm的status可以查看匯總信息和詳細(xì)信息,詳細(xì)信息比匯總信息要多出每一個(gè)php-fpm進(jìn)程的相關(guān)信息,同時(shí)支持多種格式輸出,如xml、html和json,默認(rèn)情況下分別使用如果指令即可:
Examples for summary status page:
http://example.com/status
http://example.com/status?json
http://example.com/status?html
http://example.com/status?xml
Example for detailed status page:
http://example.com/status?full
http://example.com/status?json&full
http://example.com/status?html&full
http://example.com/status?xml&full
使用何種格式查看status決定了后續(xù)使用zabbix進(jìn)行監(jiān)控獲取status數(shù)值的方式。本文以上述curl localhost/php_fpm-status
的輸出為例。
3.3 php-fpm status的含義

在適當(dāng)?shù)奈恢茫话闶?code>/usr/local/zabbix/bin里準(zhǔn)備腳本用于提取status里每個(gè)字段的數(shù)值。
4.1 nginx的status數(shù)值提取腳本
此腳本為/usr/local/zabbix/bin/nginx_status.sh
,其內(nèi)容如下:

4.2 php-fpm status數(shù)值提取腳本
php-fpm status數(shù)值提取腳本為/usr/local/zabbix/bin/php_fpm_status.sh
,內(nèi)容如下:

在/usr/local/zabbix/etc/zabbix_agentd.d/
中創(chuàng)建關(guān)聯(lián)nginx status和php-fpm status的子配置文件,創(chuàng)建一個(gè),或者在已有的某配置文件中增加也可以,我這里分別為它們創(chuàng)建配置文件,文件名可自定義,只要確保此文件夾全部?jī)?nèi)容在zabbix_agentd.conf
中包含(include)了。
5.1 userparameter_nginx.conf

5.2 userparameter_php-fpm.conf

5.3 確認(rèn)子配置文件被zabbix_agentd配置文件包含
確認(rèn)在/usr/local/zabbix/etc/zabbix_agentd.conf
中包含:Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
且沒(méi)有被注釋。
service zabbix_agentd restart
?讓zabbix_agentd加載新的配置文件。
在zabbix server上使用如下指令測(cè)試能否獲取到nginx和php-fpm status數(shù)值。

注意:
zabbix_get
指令在zabbix server上運(yùn)行。- userparameter_*.conf文件位于zabbix_agentd端。
- nginx_status.sh和php_fpm_status.sh位于zabbix_agentd端。
zabbix-get
后-s
指定的ip為zabbix-agentd的監(jiān)聽(tīng)ip。
這里的模板包含對(duì)nginx status和php-fpm status要監(jiān)控的item
、trigger
、Graphs
等一系列內(nèi)容。對(duì)于在zabbix server上新增要監(jiān)控的內(nèi)容,最好的辦法就是從模板開(kāi)始,然后按照順序依次配置相應(yīng)內(nèi)容,無(wú)需去網(wǎng)上找現(xiàn)成的模板導(dǎo)入,對(duì)于系統(tǒng)的監(jiān)控按需配置是最好的。下面是相應(yīng)的操作過(guò)程。
8.1 添加nginx status監(jiān)控模板

新建nginx status模板

定義nginx status模板

新建nginxApplication

定義nginx status items,這里我使用的是被動(dòng)臨控

增加nginx status狀態(tài)碼映射

nginx trigger定義

定義nginx監(jiān)控視圖
8.2 添加php-fpm status監(jiān)控模板
php-fpm status的模板添加步驟和上述方法一樣,此處不在贅述。
8.3 選擇相應(yīng)的主機(jī)或主機(jī)組關(guān)聯(lián)上相應(yīng)的模板

給主機(jī)或主機(jī)組關(guān)聯(lián)模板
查看監(jiān)控效果可以通過(guò)查看Monitoring
---->Latest data
,過(guò)濾出相應(yīng)的主機(jī)及應(yīng)用名進(jìn)行查看,最新收集的各item的監(jiān)控結(jié)果,凡是監(jiān)控到數(shù)據(jù)的item會(huì)顯示數(shù)據(jù),出現(xiàn)灰色的表示沒(méi)有監(jiān)控到數(shù)據(jù),需要排查原因。如下所示:

nginx的監(jiān)控?cái)?shù)據(jù)
也可以通過(guò)定義的Graphs
查看監(jiān)控效果:

nginx statur監(jiān)控視圖
zabbix中要實(shí)現(xiàn)對(duì)用戶自定義的item的監(jiān)控,大致過(guò)程如下:
- 啟用相應(yīng)軟件的性能統(tǒng)計(jì)功能
- 編寫(xiě)性能統(tǒng)計(jì)數(shù)據(jù)提取腳本
- 配置自定義的userparameter conf文件
- 重啟zabbix_agentd服務(wù)
- zabbix server web上添加相應(yīng)的模板
- 給主機(jī)或主機(jī)組調(diào)用模板