如何使用zabbix監控nginx和php-fpm性能(內附pdf電子書)

zabbix是一個基於web界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案,在企業中有很是全面的應用。它能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。php

本文將爲你詳細講解如何使用zabbix監控nginx和php-fpm性能css

一:系統環境html

1 軟件及其版本nginx

2 軟件安裝路徑web

zabbix安裝在:json

/usr/local/zabbix

路徑下,其相關配置文件及二進制執行程序都放置其中。
nginx安裝在瀏覽器

/usr/local/nginx

下,其相關配置文件及二進制執行程序都放置其中。
php安裝在安全

/usr/local/php

下,其相關配置文件及二進制執行程序都放置其中。
繼續後面的操做前,請確認nginx和php-fpm的服務端口都處於監聽狀態。bash

二:配置nginx的status服務器

一、確認nginx的status已編譯到程序包中

使用 nginx -V 能夠查看nginx是否將模塊·http_stub_status_module`編譯進包中:

二、啓用nginx的status模塊

  • 修改nginx.conf文件
    通常在默認主機中增長以下location便可:

  • 查看nginx status
    nginx配置文件修改完成之後,使用
nginx -t

測試配置文件是否有明顯邏輯及語法錯誤,沒有問題則重載配置文件。

  • 而後使用瀏覽器或者 curl  指令查看nginx status:

3 nginx status數值的含義說明

php-fpm自帶的有用於查詢其工做狀態的頁面,須要進行以下步驟,以啓用這一功能

3、配置php-fpm的status

1.啓用php-fpm status頁面

修改:

php-fpm.conf

文件,去掉status頁面的註釋,並能夠根據須要將其更名。操做以下:")

2.查看php-fpm的status

修改完

php-fpm.conf

後,使用

service php-fpm reload

從新加載配置文件,而後在瀏覽器或者使用

curl

指令查看php-fpm的status。操做以下:

")

php-fpm的status能夠查看彙總信息和詳細信息,詳細信息比彙總信息要多出每個php-fpm進程的相關信息,同時支持多種格式輸出,如xml、html和json,默認狀況下分別使用若是指令便可:

> xamples 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決定了後續使用zabbix進行監控獲取status數值的方式。本文以上述

curl localhost/php\_fpm-status

的輸出爲例。

3 php-fpm status的含義

")

4、編寫status數據提取腳本

在適當的位置,通常是

/usr/local/zabbix/bin

裏準備腳本用於提取status裏每一個字段的數值。

一、nginx的status數值提取腳本

此腳本爲

/usr/local/zabbix/bin/nginx\_status.sh

其內容以下:

")

二、php-fpm status數值提取腳本

php-fpm status數值提取腳本爲

/usr/local/zabbix/bin/php\_fpm\_status.sh

內容以下:

")

5、建立zabbix_agentd的子配置文件

/usr/local/zabbix/etc/zabbix\_agentd.d/

中建立關聯nginx status和php-fpm status的子配置文件,建立一個,或者在已有的某配置文件中增長也能夠,我這裏分別爲它們建立配置文件,文件名可自定義,只要確保此文件夾所有內容在

zabbix\_agentd.conf

中包含(include)了。

一、userparameter_nginx.conf

")

二、userparameter_php-fpm.conf

")

三、確認子配置文件被zabbix_agentd配置文件包含

確認在

/usr/local/zabbix/etc/zabbix\_agentd.conf

中包含:

Include=/usr/local/zabbix/etc/zabbix\_agentd.conf.d/

且沒有被註釋。

6、重啓zabbix_agentd服務

service zabbix\_agentd restart

讓zabbix_agentd加載新的配置文件。

*7、測試zabbix_get可否取到數據

在zabbix server上使用以下指令測試可否獲取到nginx和php-fpm status數值。

")注意:

  • zabbix_get

    指令在zabbix server上運行。

  • userparameter_*.conf文件位於zabbix_agentd端。

  • nginx_status.sh和php_fpm_status.sh位於zabbix_agentd端。

  • zabbix-get

    -s

    指定的ip爲zabbix-agentd的監聽ip。

8、zabbix server上配置相應的模板

這裏的模板包含對nginx status和php-fpm status要監控的

item

trigger

Graphs

等一系列內容。對於在zabbix server上新增要監控的內容,最好的辦法就是從模板開始,而後按照順序依次配置相應內容,無需去網上找現成的模板導入,對於系統的監控按需配置是最好的。下面是相應的操做過程。

一、添加nginx status監控模板

")

新建nginx status模板

")

定義nginx status模板

")")

定義nginx status items,這裏我使用的是被動臨控

")

增長nginx status狀態碼映射

")

nginx trigger定義

")

定義nginx監控視圖

二、添加php-fpm status監控模板

php-fpm status的模板添加步驟和上述方法同樣,此處不在贅述。

三、選擇相應的主機或主機組關聯上相應的模板

")給主機或主機組關聯模板

9、實際監控效果展現

查看監控效果能夠經過查看

Monitoring

---->

Latest data

,過濾出相應的主機及應用名進行查看,最新收集的各item的監控結果,凡是監控到數據的item會顯示數據,出現灰色的表示沒有監控到數據,須要排查緣由。以下所示:

")

也能夠經過定義的

Graphs

查看監控效果:

")

小結

zabbix中要實現對用戶自定義的item的監控,大體過程以下:

  • 啓用相應軟件的性能統計功能
  • 編寫性能統計數據提取腳本
  • 配置自定義的userparameter conf文件
  • 重啓zabbix_agentd服務
  • zabbix server web上添加相應的模板
  • 給主機或主機組調用模板

若是你想了解更多有關zabbix 實戰項目操做,強烈推薦你下載閱讀《Zabbix企業級分佈式監控系統》電子書;

基本應用到安裝包定製、協議、API,全面剖折、包含大量監控案例。經過本書你學到的不止是技術,還有思路和方法

點擊免費下載

若是你想進一步深刻了解Zabbix,長按下圖

有段時間沒跟你們分享資源福利了,看了下本身的資料夾,整理了一些我認爲比較好的Python學習資料了。相信這套資料能夠對你進階高級工程師有幫助

學習工具

大廠實戰手冊

自學視頻(部分)

【資料免費領取方式】:點這裏:2020Python高薪實戰學習大合集

相關文章
相關標籤/搜索