是什么?
Telegraf 是一個用 Go 編寫的代理程序,可收集系統和服務的統計數據,並寫入到 InfluxDB 數據庫。Telegraf 具有內存占用小的特點,通過插件系統開發人員可輕松添加支持其他服務的擴展。
Influxdb 是一個開源的分布式時序、時間和指標數據庫,使用 Go 語言編寫,無需外部依賴。Influxdb 有如下三大特性:
- 時序性(Time Series):與時間相關的函數的靈活使用(諸如最大、最小、求和等);
- 度量(Metrics):對實時大量數據進行計算;
- 事件(Event):支持任意的事件數據,換句話說,任意事件的數據我們都可以做操作。
為什么要用?
在平台監控系統中,可以使用 Telegraf 采集多種組件的運行信息,而不需要自己手寫腳本定時采集,大大降低數據獲取的難度;且 Telegraf 配置極為簡單,只要有基本的 Linux 基礎即可快速上手。Telegraf 按照時間序列采集數據,數據結構中包含時序信息,時序數據庫就是為此類數據設計而來,使用 Influxdb 可以針采集得到的數據完成各種分析計算操作。
怎么用?
這里不介紹過多原理性的東西,盡可能快速地在現有系統上安裝部署 Telegraf 和 Influxdb,並使用 Telegraf 采集部分數據寫入到 Influxdb 中。使用 wget 方式下載可能會較為緩慢,建議使用迅雷等下載工具下載后再分發至服務器上。
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.安裝 Influxdb
[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 用戶和數據庫
[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.查看數據
打開 Influxdb 查詢界面:http://node1:8083 , 輸入查詢語句seclect * from cpu
可查詢到 CPU 相關信息。