隨着容器時代到來,公司對devops等概念理解愈來愈深入,業務系統架構也在不斷向微服務架構調整。業務系統也不斷的提供更多的api接口,實現方便靈活的調用。在這種業務背景下,感受業務系統的監控系統(zabbix、cacti)等,略顯笨重,在使用靈活度上感受也略顯欠佳。
html
那麼有沒有新的監控系統可以在知足監控的需求的基礎上,讓使用變得更靈活、調用更加方便那?
sql
答案是確定的,有,我的查了一些資料,簡單整理一下,下面進行簡單描述:數據庫
監控系統通常分幾塊:api
數據採集跨域
數據存儲架構
數據展現app
告警 (後期探討)less
對應找到服務以下:分佈式
採集數據(telegraf)-> 存儲數據(InfluxDB) -> 顯示數據(Grafana)ide
下面對各個服務的特色進行介紹:
1:telegraf
Telegraf 是一個用 Go 編寫的代理程序,可收集系統和服務的統計數據,並寫入到 InfluxDB 數據庫。
Telegraf 具備內存佔用小的特色,經過插件系統開發人員可輕鬆添加支持其餘服務的擴展。
我的感覺:
1:監控插件知足主流監控需求;
2:添加監控項方式簡單、靈活;
3:監控項模塊化,方便自動程序調用;
官網參考地址
https://docs.influxdata.com/telegraf/v0.11/
2:influxdb
InfluxDB 是一個開源分佈式時序、事件和指標數據庫。使用 Go 語言編寫,無需外部依賴。其設計目標是實現分佈式和水平伸縮擴展。
一、它有三大特性:
1. Time Series (時間序列):你可使用與時間有關的相關函數(如最大,最小,求和等)
2. Metrics(度量):你能夠實時對大量數據進行計算
3. Eevents(事件):它支持任意的事件數據
二、特色
schemaless(無結構),能夠是任意數量的列
Scalable
min, max, sum, count, mean, median 一系列函數,方便統計
Native HTTP API, 內置http支持,使用http讀寫
Powerful Query Language 相似sql
Built-in Explorer 自帶管理工具
三、API
InfluxDB 支持兩種api方式
HTTP API
Protobuf API
我的感覺:
1:數據爲爲監控而生;
2:方便擴容;
3:管理、使用都很爽;
3:grafana
Grafana是一個純粹的html/js應用,訪問InfluxDB時不會有跨域訪問的限制。只要配置好數據源爲InfluxDB以後就能夠,剩下的工做就是配置圖表。Grafana 功能很是強大。
使用ElasticsSearch保存DashBoard的定義文件,也能夠Export出JSON文件(Save ->Advanced->Export Schema),而後上傳回它的/app/dashboards目錄。
我的感覺:
1:gafana 太強了,展現監控數據就是小菜一碟;
2:豐富的數據源接口,各類數據都能接入,在gafana進行展現;
3:豐富的API接口,方便自動化程序調用;
4:監控dashboard 導入 、導出,這個很棒,作好一個比較滿意的展現面板,導出後主要修改一下里面的IP等信息,經過導入,其它主機的展現所有搞定。
以上僅僅是我的總結的一點,優缺點還須要你們各自評點,下面是個人安裝部署的一些資料,提供參考,不足之處請指正。