方案
这里我采用的是Telegraf+InfluxDB+Grafana方案:
- Telegraf:是一个用Go 编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB 数据库
- InfluxDB:是一个用Go 编写的开源分布式时序、事件和指标数据库,无需外部依赖
- Grafana:是一个开源的度量分析与可视化套件
下面默认环境以Mac系统为例讲解
InfluxDB的安装
使用homebrew安装启动:
brew update brew install influxdb , brew services start influxdb
Grafana的安装
使用homebrew安装启动:
brew update brew install grafana brew services start grafana
访问:http://localhost:3000,就会跳转到登录页面,登录初始用户名admin,初始密码admin。
Telegraf的安装
使用homebrew安装启动:
brew update brew install telegraf brew services start telegraf
配置文件默认在这个路径下:
/usr/local/etc/telegraf.conf
修改配置文件将收集到的数据输出到InfluxDB:
# hostname相当于 agent 的名称 或 服务器的名称 hostname = nginx_192.168.1.10 # 输出插件,假设我们将收集的数据输出到 InfluxDB [[outputs.influxdb]] urls = ["http://192.168.1.1:8086"] database = "telegraf" # required retention_policy = "rp_day_30" write_consistency = "any" timeout = "5s" username = "telegraf" password = "xxxxxxxx"
Telegraf安装配置启动完成后,我们开始配置Grafana的数据源,如下:
之前Telegraf启动后就已经开始向我们的InfluxDB上报数据了,这里数据源配置如下:
数据源创建成功后,我们就可以制作性能监控的Dashboard了,其实这里的Dashboard不需要我们手工一个一个的去配置,Grafana官方已经提供了很全面的模板资源如下:
https://grafana.com/grafana/dashboards?dataSource=influxdb&collector=Telegraf
通过筛选,我们可以找到很多符合条件的模板,这里我推荐一个模板ID:1443,导入:
最终效果如下: