主頁 > 服務器技術 > 系統性能監控利器-collectd詳解

系統性能監控利器-collectd詳解

PDF版本

系統監控是作為網站運維、網站性能優化必不可少的工具,目前比較常用的有Nagios、Cacti以及Zabbix,筆者用過后兩個,其中Zabbix確實很強大,web界面操作也比較不錯。不過這幾個工具安裝起來那可并不簡單,其中Nagios的復雜那可是出了名的。

插播:關于服務器端監控命令請參考前文《Linux服務器性能追蹤以及服務器監控常用命令》

筆者近期一直在嘗試用Collectd,一款性能監控程序,C語言開發(高效)、無需系統cron支持(獨立)、簡單易用。Collectd是插件式架構,主要分為輸入、輸出類型插件,具體可以參考collectd官方網站。
Collectd的官方網站 http://collectd.org/

1. 安裝
Ubuntu和CentOS都可以用apt或者yum安裝。

sudo yum install collectd.x86_64 collectd-apache collectd-ping collectd-nut collectd-snmp collectd-mysql collectd-rrdtool

要注意的是,安裝collectd的時候要注意CPU架構,64位的一定要帶上x86_64,否則裝不上。

2. 啟動
sudo /etc/init.d/collectd start
這樣,就啟動了collectd deamon程序。

Collectd前端程序

Collectd的deamon程序搞定之后,我們需要安裝客戶端,collectd的客戶端非常多,大家可以參考這個列表。
Collectd前端列表 http://collectd.org/wiki/index.php/List_of_front-ends

我們選擇第一個Collectd Graph Panel。

wget http://pommi.nethuis.nl/storage/software/cgp/cgp-0.3.tgz
tar -zxvf cgp-0.3.tgz
mv cgp-0.3 /var/www/html/cgp

注意:此處假設你的apache document root位于/var/www/html。

然后修改一下cgp的配置(筆者測試的版本為 collectd 4.10.3, Collectd Graph Panel 0.3)

vim conf/config.php

修改如下一行(筆者機器的默認配置,注意如果啟用了network插件,這個位置會變)

$CONFIG['datadir'] = '/var/lib/collectd';

這時,所有一切都基本搞定,打開瀏覽器,輸入 http://your-host/cgp
Collectd front end

配置多服務器監控
Collectd支持多服務器監控,通過network插件,可以將一個collectd配置成為server,其他的配置成為client,然后client會向服務器端發送數據,所有的統計都會記錄在服務端。

簡單的配置如下,在plugin network下面:

  Listen "192.168.8.1"

如果啟用的是內網IP,甚至不用驗證。(collectd驗證請參考官網wiki)。服務器端也很簡單,加上Server配置即可。

這里主要共享一下筆者在配置中遇到的幾個注意點:
1. collectd是基于udp協議的,所以在查看deamon程序的時候試用netstat -nupl,筆者習慣寫 netstat -ntpl所以費了好大勁才確認了collectd服務啟動成功。
2. 在collectd啟動中,如果啟用FQDNLookup選項,確保服務器的hostname和IP一致,比如我的hostname是robbin-server-01,這個不是一個FQDN,所以需要在/etc/hosts里面添加一行:127.0.0.1 robbin-server-01,否則會啟動不成功。(可以在/var/log/messages里面查看日志)
3. 在試用collectd-web作為前端的時候,需要先執行require驗證的腳本,看系統配置是否滿足。
 
4. 如果是CGP,注意權限問題。參考collectd-graphic-panel官網的一段評論如下:

Xan says: January 29, 2011 at 15:17
Error:No Collectd hosts found in /var/lib/collectd/rrd
All seems to be correct: the server, and collectd, but CGP show me that error. How can I fix it?
Thanks,
Xan,

pommi says: January 29, 2011 at 19:56
Hi Xan, This message can mean 2 things:
1. Your collectd datadir is not in /var/lib/collectd/rrd. Set $CONFIG['datadir'] in conf/config.local.php to set the correct one.
2. Your webserver user (for example: user www-data when Debian/Apache2) is not allowed to read the files in /var/lib/collectd/rrd

參考鏈接:

Collectd官方網站 http://collectd.org
Collectd多服務器監控配置?http://collectd.org/wiki/index.php/Networking_introduction
Collectd前端列表?http://collectd.org/wiki/index.php/List_of_front-ends

推薦閱讀:

Linux服務器性能追蹤以及服務器監控常用命令


聲明: 本站所有文章歡迎轉載,所有文章未說明,均屬于原創,轉載均請注明出處。
本文有效鏈接: http://www.vczhtn.live/2012/07/system-monitor-collectd/
版權所有: Drupal與高性能網站架構 http://www.vczhtn.live


,

評論:5

發表評論
  1. avatar
    回復 jndxjing
    12/09/20

    想請教您,我按照這些步驟配置好后,打開瀏覽器,沒有出圖,出現了uncategorized。請問這可能是什么原因造成的呢?謝謝您。還有就是我安裝collectd-mysql時,找不到這個軟件包。
    非常感謝!

    • avatar
      回復 robbin
      12/09/20

      1. 你查看一下數據是否存儲成功。
      2. 你看一下PHP是否裝GD等擴展(如果用的是php的前端),可能需要繪圖。

      • avatar
        回復 jndxjing
        12/09/21

        好的,非常感謝。再想請教一下,查看數據是否存儲成功是不是如果collectd存儲數據的文件夾里有RRD文件,就說明有數據存儲并生成呢?PHP里裝上了GD擴展,發生錯誤時,從apache的日記里看到,在index.php和html.inc.php里出現了例如undefined index和undefined viariable的錯誤,這是否是因為PHP環境搭建出現問題?
        在本文中,是否遵照collectd.conf的默認配置就可以了,不用再改動其他東西嗎?
        初次接觸這個東西,有些地方不大明白,多謝啦!

        • avatar
          回復 robbin
          12/09/30

          基本遵照默認就可以了,默認情況下要啟用RRD擴展,然后讀取RRD文件就可以了。
          PHP也是要讀取RRD文件,至于PHP的問題,這個要看具體的情況了。

  2. avatar
    回復 gdyunfan
    15/05/14

    第一次接觸,學習一下

發表評論

電子郵件地址不會被公開。 必填項已用 * 標注


9 + = 十五

您可以使用這些 HTML 標簽和屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

引用:0

下面所列的是引用到本博客的鏈接
系統性能監控利器-collectd詳解 來自 Drupal與高性能網站架構
頂部
安徽福彩15选5走势图