telegraf是一個收集監控項的agent,有支持收集多種數據的插件比如ceph,apache,docker,haproxy,system等,同時有支持多種輸出的插件比如influxdb,graphite等。
influxdb是時序數據庫,多用於監控場景
grafana是很棒的繪圖工具
這三者的結合有三個主要過程:
1.安裝在ceph集羣所有節點(包括mon和osd節點)上的telegraf通過ceph_input插件收集ceph集羣信息,這裏踩了兩個坑,ceph_input插件報了兩個錯,一個是error reading from socket '/var/run/ceph/ceph-mon.control-1.asok': error running ceph dump: exit status 22,另一個是ERROR in input [inputs.ceph]: error executing command: error running ceph status: exit status 1。經過排除第一個報錯算是telegraf的bug,需要給ceph進程的sock文件添加w權限,第一個報錯是因爲執行telegraf進程的用戶沒有ceph_client_admin的keyring文件的讀權限。解決這兩個問題,telegraf ceph_input插件就能正常工作了。
2.telegraf通過ceph_input 插件收集到ceph的信息後通過influxdb_ouput將數據寫入influxdb,influxdb數據庫通過8086端口接收數據,好像還支持udp協議。
3.grafana從influxdb獲取數據繪圖。
來一張效果圖
後面安排時間寫個詳細點的