網頁

搜尋此網誌

2014年6月18日 星期三

collectd 系統資訊收集服務

collectd 是收集與統計系統資訊的一個服務程式 (daemon),並將這些資訊儲存成不同方式,如 RRD 檔案或資料庫等。這些統計資料 (statistics) 有什麼用途呢?可以用來做效能分析 (performance analysis),找出系統的瓶頸,也可以用作容量規劃 (capacity planning),預測系統的負載。

在 Ubuntu 上安裝 collectd 相當容易,指令是:sudo apt-get -y install collectd,官方目前最新的是 5.4版,不過目前在 Ubuntu 12.04 上的版本是 collectd 4.10。安裝完成之後,有3個設定檔位於:
  • /etc/collectd/collectd.conf:主要設定檔。
  • /etc/collectd/filters.conf:過濾器的設定檔,用於4.6版新增的規則鍊 (chain) 功能。
  • /etc/collectd/thresholds.conf:門檻值的設定檔,用於4.3版新增的監控 (monitoring) 功能。
collectd 是採用外掛架構 (plug-in architecture) 的設計,因此設定檔大部分都是設定 plugin 如何運作。目前官方總共有111個外掛,這些 plugins 主要分成輸入和輸出兩大類,說明如下:
  • 輸入外掛 (Input plugins)
    在 collectd 中屬於讀取 (read) 類型,定期從系統查詢 (query) 資訊,並將這些數值資訊派送 (dispatch) 回 collectd 服務程式,這類外掛佔了絕大多數。
  • 輸出外掛 (Output plugins)
    在 collectd 中屬於寫入 (write) 類型,處理 collectd 派送的資訊,一般而言是將這些資訊寫入 RRD 或 CSV 檔案,或是透過網路送至遠端。
某些外掛兼具輸入與輸出兩種功能,如AMQP, Network, UnixSock 這類通訊用途的外掛程式,提供資訊的讀取和寫入。除了上述兩大類外,還有下列三種類型 (占少數):
  • 日誌外掛 (Logging plugins)
    將訊息寫入系統日誌 (syslog) 中,或是自訂的日誌檔。
  • 通知外掛 (Notification plugins)
    在監控功能中,當門檻值超出設定範圍後, collectd 將發出的通知訊息,這類外掛將接收通知訊息進行處理,通常是發出 email 告知系統管理員。
  • 繫結外掛 (Binding plugins)
    在 collectd 中執行 Java, Perl, Python 的程式,通常是用來開發自己的外掛程式,透過繫結外掛載入並執行。

這些外掛是以 Shared Object 的方式存在 ( .so 檔案),位於 /usr/lib/collectd 路徑之下。在設定檔中,Interval 設定是比較重要的參數,Interval 參數決定 collectd 多久從輸入外掛讀取資料,預設是 10 秒查詢系統資訊一次,你也可以各別設定每個外掛的 Interval 參數,例如 df 外掛用於統計磁碟使用量,我們就可以將 df 的 Interval 設大一點,因為磁碟空間的變化量不會太大。

整體來說,collectd 內建大量外掛,加上繫結功能方便開發自己的外掛,可以補足內建不足的部分,設定方式也相當簡單 (主要是 collectd.conf ),非常適合用來收集與統計系統資訊。collectd 的缺點大概是監控功能稍弱 (這不是 collectd 的強項),缺乏應用服務的監控,畢竟 collectd 主要是收集數據用途 (所以才叫做 collect daemon ),不是用來判別系統是否正常或異常。

若是要求監控功能,建議使用 Nagios 這套軟體。可以另外安裝 collectd-utils 套件,此套件中有 collectd-nagios 程式,可以將 Nagios 結合 collectd 一起運作。利用 collectd 的 unixsock 外掛配合 collectd-nagios 程式,Nagios 可以擷取 collectd 的統計資料進行系統監控。

###

沒有留言:

張貼留言

熱門文章