TIGK TICK 監控相關

2024年2月6日 22点热度 0人点赞

一:架構

Telegraf是一個用Golang寫的開源數據收集Agent,基於插件驅動

Kapacitor 是一個開源框架,用來處理、監控和警告時間序列數據

Telegraf Influx Grafana Kapacitor(TIGK)是在OpenStack雲中使用的解決方案之一,具有Ansible部署。TIGK從系統CPU、RAM和I / O(網絡和磁盤)捕獲、存儲、顯示和觸發警報提示

TICK是Telegraf、InfluxDB、Chronograf和Kapacitor四個軟件的首字母縮寫。它是Influxdata公司推出的監控套件,承包指標采集、分析、畫圖等時序數據庫上下遊的工作,有點模仿日志分析系統ELK套件的意思

開源版和企業版的主要區別就是企業版的InfluxDB和Kapacitor軟件支持集群,而開源版不支持,此外企業版提供了先進的備份/恢復功能,而開源版本沒有。這是開源軟件常見的運作模式,通過代碼開源吸引更多的人使用和參與開發,通過增值功能和服務支持獲取商業利益

Telegraf的特性:

(1)Go語言編寫,編譯為一個二進制文件,沒有外部依賴。

(2)占用內存小,通過插件開發人員可輕松添加input和output來支持其他服務的擴展

(3)支持眾多流行服務大量插件,滿足主流監控需求。

2.InfluxDB

InfluxDB是一個時間序列數據庫,從創建之初就考慮到處理高的寫和查詢負載。InfluxDB是一個定制的高性能數據庫特別用來存儲時間戳數據,包括DevOps監控、應用指標、物聯網傳感器數據,實時分析。為了節省機器上的存儲空間,可以配置InfluxDB保持數據的時間長度,自動到期和從系統中刪除任何不需要的數據。InfluxDB還提供與數據交互的SQL的查詢語言。

InfluxDB的特性:

為時間序列數據專門定制的高性能數據存儲。TSM引擎允許高速接收和數據壓縮。完全go語言編寫。編譯成一個單一的二進制,沒有外部依賴。

簡單,高效寫入和查詢HTTP(S) APIs。插件支持其他數據獲取協議如Graphite、collectd和OpenTSDB。定制的類SQL的查詢語言方便查詢匯總的數據。 通過標簽為快速查詢和有效查詢進行索引,保留政策有效地使失效數據自動過期。連續查詢自動計算聚合數據,使頻繁查詢效率更高效。

l 內置的web管理界面。雖然開源版本不支持集群服務,但可以通過HAProxy Influx Relays實現InfluxDB的高可用,這種架構已經被實現到OpenStack-Ansible Playbook中。此高可用性開源監視堆棧的配置可以在這裡

3.Chronograf/Grafana

Chronograf是管理員用戶界面和平臺可視化引擎。它使你的基礎設施的監視和告警變得易於設置和維護。它使用起來很簡單,包括模板和庫,可以讓您快速構建儀表板,實現數據的實時可視化,並且可以輕松創建告警和自動化規則。

在TICK套件中,Chronograf可以被開源軟件Grafana所替代,它們的功能類似,但後者更成熟些。Grafana支持Elasticsearch、InfluxDB等多種數據源,目前部署時常用Grafana替代Chronograf,此時運維棧變為TIGK。

Grafana是一個功能齊全的度量儀表盤軟件,支持從多種數據源讀取數據用圖表顯示,界面美觀,有沖擊力,功能設計方便實用。多用於可視化基礎實施和應用分析的時間序列數據,也可應用在其它領域,包括工業傳感器、傢庭自動化、天氣和過程控制。

Grafana的特點:

功能強大,展示監控數據就是小菜一碟,支持8種內置圖表類型,可為不同類型的數據選擇不同類型的圖表進行展示;

豐富的數據源接口,Elasticsearch、InfluxDB等各種數據(內置8種,可通過插件擴展)都能接入;

豐富的API接口,方便自動化程序調用;

監控dashboard 導入、導出,這個功能比較實用,做好一個比較滿意的展示面板,導出後主要修改一下裡面的IP等信息,通過導入,其它主機的展示全部搞定。

支持告警,但功能相對較簡單,目前隻有graph圖表支持告警,也隻有Graphite,Prometheus,InfluxDB和OpenTSDB四種數據源支持告警

4.Kapacitor

Kapacitor是時序數據分析、處理引擎。它可以處理來自InfluxDB的流數據和批量數據。Kapacitor允許插入用戶自定義的邏輯或用戶自定義的函數來處理基於動態門限的告警,匹配模式指標,計算統計異常,並根據這些告警執行特定動作,比如動態負載均衡。Kapacitor支持Email,HTTP,TCP,HipChat,OpsGenie,Alerta,Sensu,PagerDuty,Slack等多種方式告警。

Kapacitor的特性:

可以處理流數據和批量數據;

按計劃從InfluxDB查詢數據,或通過line協議從InfluxDB接收數據;

使用InfluxQL對數據做各種轉換;

將轉換後的數據存回InfluxDB;

添加用戶自定義函數檢測異常;

與HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack等集成

容器方式安裝

直接從docker hub上拉取相關鏡像:

docker pull influxdb

docker pull telegraf

docker pull kapacitor

docker pull grafana/grafana