• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    用cacti監控php-fpm的工作狀態

    發布時間:  2012/9/10 17:26:48
    cacti搞運維的人不會陌生,可能是現在使用最多的監控工具了。跟互聯網相關的公司可能多少都會用到cacti來監控服務器運行狀態和一些軟件的負載情況。
       
        現在網站用的最多的后端技術可能就是php了,無論nginx還是lighttpd,如今的負載能力都非常強,在很多牛人的努力下,負載幾萬到十萬并發的都屢見不鮮。但是,這是在完全靜態的情況下,加上php就會效率大減。所以其實一個動態網站的負載能力的瓶頸往往都在php上面。
       
        網上很多文章介紹cacti是如何監控nginx并發數的,不過目前還沒有介紹如何監控php的工作狀態的文章,我在谷歌百度搜了一圈,也沒找到一個中文的監控php的介紹文章,所以不才閑著沒事,簡單改造了一個模板,用來監控php-fpm的工作情況。我相信國內很多人可能早就用上了,只是沒工夫說而已。
       
        所謂改造,即不是我原創的。原作者地址在
       
        http://forums.cacti.net/viewtopic.php?f=12&t=41580
       
        我將這個模板下載下來后嘗試了一下,發現不是那么簡單易用,需要perl中的FCGI::Client和LWP::UserAgent等模塊的支持,這對于不熟悉perl和cpan的人來說,會很頭疼。perl語言的這個腳本同時具有安全隱患,因為他使用FCGI::Client.pm模塊來直接訪問php-fpm的9000端口,這就需要你的php-fpm監聽在一個除127.0.0.1的其他IP上,這樣,如果你需要跨機房監控,就勢必要把php-fpm監聽在一個外網IP上,除非你指定php-fpm的訪問IP或者做VPN.不過我想大多數公司一來不具備這個技術實力,二來如果跨機房多了,改造配置也是個極麻煩的事情,改錯了就會給人家留一個9000端口的漏洞出來,人家直接架一個nginx指向php過來就可以干壞事了。
       
        所以花了5分鐘將模板稍作修改,并用shell重寫了獲取腳本。將php-fpm的狀態監控跳轉到nginx上,從網頁獲取,既支持跨機房訪問,無需暴露9000端口在任何IP地址上,對php-fpm.conf文件的改動最小,唯一一個是需要改造一下nginx,加一個類似于監控nginx的配置項。并需要cacti服務器上有curl支持,不過用yum或者apt-get安裝curl似乎比用cpan安裝模塊要簡單多了。原理和用cacti監控nginx是一樣的。所以,如果你做過nginx的監控,用這個模板就非常簡單了。
       
        不過這個腳本也存在一個問題,就是如果你用一臺nginx用upstream后端掛多個php-fpm負載均衡,可能會產生數據不準確問題。這樣的話,你可以訪問上面的連接,采用原版直接訪問9000端口的方式。
       
        講一下使用這個腳本需要操作的幾個步驟:
       
        1. 你需要改變php-fpm.conf文件中的一行
       
        找到pm.status_path = /status,將前面的注釋分號去掉。保存退出
       
        2. 打開nginx.conf文件
       
        在server{}段中加入下面這段話,注意不要和你的nginx狀態監控的重定向路徑沖突,如果沖突,請同時修改php-fpm中的設置和nginx中的設置
       
        include fastcgi_params;
       
        fastcgi_pass 127.0.0.1:9000;
       
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
       
        }
       
        保存退出
       
        3. 重啟php-fpm,重啟nginx
       
        嘗試訪問http://yourserver/status看是否能獲取到php-fpm信息,正常的話,應該顯示如下
       
        pool:                                 www
       
        process manager:            dynamic
       
        start time:                     16/Jun/2012:01:28:33 +0800
       
        start since:                    67269
       
        accepted conn:                4526202
       
        listen queue:                 0
       
        max listen queue:         0
       
        listen queue len:         0
       
        idle processes:             174
       
        active processes:         1
       
        total processes:            175
       
        max active processes: 23
       
        max children reached: 0
       
        4. 將附件中解壓縮出來的的shell腳本上傳至cacti服務器的cacti/scripts文件夾下。并賦予可執行權限。執行測試一下看是否能獲取到php-fpm的狀態。
       
        ./cacti_check_php-fpm.sh 114.xxx.xxx.xxx 80 /status
       
        5. 將附件中的xml模板導入到cacti中,然后在設備那里創建新圖的時候,你會看到一個php-fpm fastcgi status的模板,使用它創建,并填上服務器IP端口和路徑就可以了,參照測試命令行寫就可以。
       
        在實際測試中,支持php 5.3.8及以上版本,5.3.8之前的php版本未測試,如有問題可修改腳本中的grep部分,一共不超過15行的腳本,簡單的很,一看就明白。

    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線