是什麼?
Telegraf 是一個用 Go 編寫的代理程序,可收集系統和服務的統計數據,並寫入到 InfluxDB 數據庫。Telegraf 具備內存佔用小的特色,經過插件系統開發人員可輕鬆添加支持其餘服務的擴展。html
Influxdb 是一個開源的分佈式時序、時間和指標數據庫,使用 Go 語言編寫,無需外部依賴。Influxdb 有以下三大特性:node
- 時序性(Time Series):與時間相關的函數的靈活使用(諸如最大、最小、求和等);
- 度量(Metrics):對實時大量數據進行計算;
- 事件(Event):支持任意的事件數據,換句話說,任意事件的數據咱們均可以作操做。
爲何要用?
在平臺監控系統中,可使用 Telegraf 採集多種組件的運行信息,而不須要本身手寫腳本定時採集,大大下降數據獲取的難度;且 Telegraf 配置極爲簡單,只要有基本的 Linux 基礎便可快速上手。Telegraf 按照時間序列採集數據,數據結構中包含時序信息,時序數據庫就是爲此類數據設計而來,使用 Influxdb 能夠針採集獲得的數據完成各類分析計算操做。web
怎麼用?
這裏不介紹過多原理性的東西,儘量快速地在現有系統上安裝部署 Telegraf 和 Influxdb,並使用 Telegraf 採集部分數據寫入到 Influxdb 中。使用 wget 方式下載可能會較爲緩慢,建議使用迅雷等下載工具下載後再分發至服務器上。shell
1.安裝 Telegraf數據庫
[root@node1 ~]# wget http://get.influxdb.org/telegraf/telegraf-0.11.1-1.x86_64.rpm [root@node1 ~]# rpm -ivh telegraf-0.11.1-1.x86_64.rpm [root@node1 ~]# systemctl start telegraf
2.安裝 Influxdbvim
[root@node1 ~]# wget http://dl.influxdata.com/influxdb/releases/influxdb-1.0.2.x86_64.rpm [root@node1 ~]# rpm -ivh influxdb-1.0.2.x86_64.rpm [root@node1 ~]# systemctl start influxd
3.建立 Influxdb 用戶和數據庫bash
[root@node1 ~]# influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 1.0.2
InfluxDB shell version: 1.0.2
> create user "telegraf" with password 'password' > show users; user admin telegraf false > create database telegraf > show databases name: databases --------------- name _internal telegraf
4.配置Telegraf服務器
[root@node1 ~]# vim /etc/telegraf/telegraf.conf ## 修改內容以下: [[outputs.influxdb]] urls = ["http://localhost:8086"] # required database = "telegraf" # required retention_policy = "" precision = "s" timeout = "5s" username = "telegraf" password = "password" [root@node1 ~]# systemctl restart telegraf
5.查看數據markdown
打開 Influxdb 查詢界面:http://node1:8083 , 輸入查詢語句seclect * from cpu
可查詢到 CPU 相關信息。數據結構