阅读本文大约需要1.5分钟。
背景
在之前的文章《移动端UI自动化过程中的难点及应对策略》中我们讨论了影响移动端自动化稳定性的一些因素,其中宿主机环境是一个不可忽视的问题,大家都知道移动端的自动化一般都需要将设备挂载到实体服务器上运行,如果服务器宿主机出现断网或者磁盘空间不足等情况,都会在一定程度上影响自动化任务的执行,因此今天跟大家分享一下如何做服务器宿主机的监控。
方案
这里我采用的是Telegraf InfluxDB Grafana方案:
- Telegraf:是一个用Go 编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB 数据库
- InfluxDB:是一个用Go 编写的开源分布式时序、事件和指标数据库,无需外部依赖
- Grafana:是一个开源的度量分析与可视化套件
下面默认环境以Mac系统为例讲解
InfluxDB的安装
使用homebrew安装启动:
代码语言:javascript复制brew update
brew install influxdb
brew services start influxdb
Grafana的安装
使用homebrew安装启动:
代码语言:javascript复制brew update
brew install grafana
brew services start grafana
访问:http://localhost:3000,就会跳转到登录页面,登录初始用户名admin,初始密码admin。
Telegraf的安装
使用homebrew安装启动:
代码语言:javascript复制brew update
brew install telegraf
brew services start telegraf
配置文件默认在这个路径下:
代码语言:javascript复制/usr/local/etc/telegraf.conf
修改配置文件将收集到的数据输出到InfluxDB:
代码语言:javascript复制# 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官方已经提供了很全面的模板资源如下:
代码语言:javascript复制https://grafana.com/grafana/dashboards?dataSource=influxdb&collector=Telegraf
通过筛选,我们可以找到很多符合条件的模板,这里我推荐一个模板ID:1443,导入:
最终效果如下: