精品軟體與實用教程
collectd 系統統計資料收集守護程式
collectd 是一個守護程式,它定期收集系統和應用程式效能指標,並提供以多種方式儲存值的機制,例如在 RRD文件中。
collectd 從各種來源收集指標,例如作業系統、應用程式、日誌檔案和外部設備,並儲存此資訊或使其在網路上可用。這些統計數據可用於監控系統、發現效能瓶頸(即效能分析)和預測未來的系統負載(即容量規劃)。或者,如果您只是想要您的私人服務器的漂亮圖表並且受夠了一些本地解決方案,那麼您也來對地方了!
什麼是collectd
collectd 是一個守護(daemon)程序,用來定期收集系統和應用程式的效能指標,同時提供了以不同的方式來儲存這些指標值的機制。
collectd 從各種來源收集指標,例如作業系統,應用程序,日誌檔案和外部設備,並儲存此資訊或透過網路使其可用。 這些統計數據可用於監控系統、尋找效能瓶頸(即效能分析)並預測未來的系統負載(即容量規劃)等。
- 它完全由C語言編寫,故性能很高,可移植性好,它允許運行在系統沒有腳本語言支援或cron daemon的系統上,例如嵌入式系統。同時,它包含最佳化以及處理數百上千種資料集的新特性。
- collectd包含超過100多種插件。同時,collectd提供強大的網路特性,它能以多種方式進行擴充。
collectd 官方網站:https://collectd.org/
collectd wiki 位址:https://collectd.org/wiki/index.php/Main_Page
如何安裝collectd
wget https://storage.googleapis.com/collectd-tarballs/collectd-5.12.0.tar.bz2 tar xf collectd-5.12.0.tar.bz2 cd collectd-5.12.0 ./configure make all install
也可以在後面加入一些其他可選的選項如:
--prefix=/usr --sysconfdir=/etc -localstatedir=/var --libdir=/usr/lib --mandir=/usr/share/man --enable-all-plugins make all install
或直接執行指令進行安裝:
dnf install collectd
- 設定檔目錄:/etc/collectd/collectd.conf
- 啟動檔案目錄:/etc/init.d/collectd
- 日誌檔案目錄:/var/log/syslog
- 資料儲存目錄:/var/lib/collectd/rrd/
如何配置collectd
vim /opt/collectd/etc/collectd.conf
需要監控系統什麼項目就開啟對應的插件,一般有cpu,memory,processes,load,interface,disk,swap等。
一般只需修改network 外掛程式此一項:
網路插件可以將資料傳送到collectd 的遠端實例(例如:資料庫,csv檔案或快取等媒體),或是接收從遠端服務端發送的資料。
LoadPlugin network #去掉#就表示載入該插件# # client setup: Server "10.24.106.1" "25826" #該位址和連接埠是接收資料的伺服器的位址和端口,例如:安裝資料庫(influxdb等)的伺服器的位址和連接埠# #若需傳輸加密數據,就配置這一小塊部分# SecurityLevel Encrypt # Username "user" # Password "secret" # Interface "eth0" # ResolveInterval 14400 # # TimeToLive 128 # # # server setup: # Listen "ff18::efc0:4a42" "25826" #如設定這一部分,表示接收從其他collectd實例發送的資料115T# SecurityLevel Sign # AuthFile "/etc/collectd/passwd" # Interface "eth0" # # MaxPacketSize 1452 # # # proxy setup (client and server as above): # Forward true # # # statistics about the "garbage collection" # CacheFlush 1800
如何啟動collectd
執行命令 sudo /etc/init.d/collectd start
或者 systemctl start collectd
並設定開機啟動 systemctl enable collectd
collectd 如何查看數據
若開啟了rrdtool 插件就可在 /var/lib/collectd/rrd/ 目錄下看到對應的統計資料。
透過下面命令可以查看具體數據:
rrdtool fetch *.rrd AVERAGE
*.rrd表示任何以.rrd結尾的文件,rrdtool指令更詳細的用法可以自行百度。
可以看到第一列為timestamp(時間戳),可以透過指令date -d @timestamp把timestamp(以秒為單位)轉換為和date指令顯示的相同的的時間格式,指令date +%s用時間戳的形式表示時間。
collectd 相關插件介紹
Plugin: CPU
- jiffies: 是一個單位,jiffies是核心中的一個全域變量,用來記錄自系統啟動一來產生的節拍數,在linux中,一個節拍大致可理解為作業系統進程調度的最小時間單位,不同linux核心可能值有不同,通常在1ms到10ms之間
- user: 從系統啟動開始累積到當下時刻,處於使用者態的運行時間,不包含nice值為負的進程。
- nice: 從系統啟動開始累積到當下時刻,nice值為負的行程所佔用的CPU時間。
- idle: 從系統啟動開始累計到當下時刻,除I/O等待時間以外的其它等待時間。
- wait-io: 從系統啟動開始累積到當下時刻,I/O操作等待時間。
- system: 從系統啟動開始累積到當下時刻,處於核心態的運行時間。
- softIRQ: 從系統啟動開始累積到當下時刻,軟體中斷時間。
- IRQ:從系統啟動開始累積到當下時刻,硬中斷時間。
- steal:運行在虛擬環境中其他作業系統所花費的時間。
Plugin: interface
Interface插件收集關於流量(每秒八位元組),每秒的資料包和介面錯誤(一秒鐘內)的資訊。
- rxpck/s:每秒鐘接收的資料包
- txpck/s:每秒鐘發送的資料包
- rxbyt/s:每秒鐘接收的位元組數
- txbyt/s:每秒鐘發送的位元組數
Plugin: processes
Plugin: memory
收集系統的實體記憶體利用率
Plugin: swap
收集swap空間的使用情況
在Linux中,系統相關資料可以透過指令 cd /proc/
在該目錄下查看。