前言
监控告警系统是每一家企业都需要的系统。系统的监控运维告警可以帮助企业快速发现系统故障,定位故障和处理故障,对企业业务稳定性起到至关重要的作用。业务监控系统可以实时进行业务告警,进行业务趋势的分析和判断,对于数据化运营起到重要的帮助。
阿里云InfluxDB 提供了一整套快速搭建监控系统的组件和功能,可以帮助企业快速搭建监控系统。2019年8月商业化以来,依靠稳定可靠的服务能力和免运维等特性,在监控领域受到很多用户关注,近期更是进行了重磅升级,集成了Grafana可视化服务。
正文内容
本文将以Linux系统指标监控为例,展示如何基于阿里云InfluxDB®服务快速搭建一个监控系统。这里假设用户已经购买了阿里云InfluxDB®实例,并且创建了名为telegraf
的数据库以及管理员账号admin
(也可以使用对该库有读写权限的非管理员账号)。如果您还没有开启阿里云InfluxDB®服务,可以戳这里购买,数据库和账号如何创建请参考阿里云文档。
基于阿里云InfluxDB搭建监控系统可以分为二个简单的步骤即可完成。
1 配置数据源
2 配置Grafana 仪表盘
接下来,我们就开始基于这两个步骤快速实践一下。 出于展示目的,本文使用的操作系统为CentOS 7,yum作为包管理工具,Ubuntu/Debian用户可以用dpkg等工具完成类似操作。接下来我们实际操作一下。
配置数据采集
主机的系统监控需要安装telegraf作为agent进行指标采集。telegraf是开源的指标采集工具,内用占用小,安装部署简便,下面几部就可以完成。如果有多台主机需要监控,在每台主机上执行下面的步骤即可,在最后的监控仪表盘总可以使用下来列表来选择主机信息。
Step 1: 安装telegraf
这里使用的是当前的最新稳定版本telegraf 1.12.4:
yum install -y https://dl.influxdata.com/telegraf/releases/telegraf-1.12.4-1.x86_64.rpm
Step 2: 配置telegraf
Telegraf配置文件的路径为/etc/telegraf/telegraf.conf
,使用文本编辑器(比如vim)对这个文件进行编辑,配置内容如下:
# 采集插件
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
[[inputs.disk]]
mount_points = ["/"]
ignore_fs = ["tmpfs", "devtmpfs"]
[[inputs.diskio]]
devices = ["vda"] # 这里配置需要采集的磁盘设备
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.net]]
interfaces = ["eth0"]
[[inputs.netstat]]
# influxdb 配置
[[outputs.influxdb]]
urls = ["https://ts-xxxxxxxxxx.influxdata.rds.aliyuncs.com:3242"] # influxdb实例的公网访问地址
database = "telegraf"
username = "admin"
password = "yourpassword"
注意在[[outputs.influxdb]]
部分设置阿里云InfluxDB®实例的访问地址,数据写入的数据库名,以及访问数据库的账号信息。
Step 3: 启动telegraf
配置文件编辑保存好,使用下面的命令启动telegraf服务,主机指标数据就可以写入到InfluxDB®中了
systemctl start telegraf.service
配置Grafana
Grafana是流行的开源时序分析平台,采用go语言编写,当前活跃安装数高达40万,可以说是监控场景的标配组件了。Grafana支持多种流行的数据源,比如InfluxDB、Prometheus、OpentTSDB、Graphite等;可视化方面Grafana提供了酷炫的图表,用户可以动态创建仪表盘(dashboard),支持模板变量作为下拉列表;数据探索(Explore)页面允许用户使用ad-hoc查询在数据源上进行数据分析,并且提供了语句自动补全等贴心功能;支持邮件、webhook等多种报警通道,用户可以自定义报警规则。
阿里云将Grafana监控可视化与InfluxDB®的存储分析能力无缝对接,让用户无需部署和运维就可以在快速搭建一个监控系统,并且不需要支付额外费用。
Step 4: 配置Grafana数据源源
要使用Grafana,需要配置与InfluxDB®数据库相关联的数据源,我们在telegraf
库上创建一个名为my-datasource
的数据源,具体步骤参考文档,这里不重复了。
Step 5: 创建仪表盘
用户可以使用查询语句创建仪表盘,为每个panel定义查询语句和展示方式;实际上多数场景下不需要这么麻烦,因为官方社区中有很多优秀的仪表盘模板(https://grafana.com/grafana/dashboards),可以很好的满足需求。
比如我们要配置的Linux主机监控,可以直接使用Linux System Overview 这个仪表盘:
而我们要做的只是记住2381这个dashboard ID。
从阿里云InfluxDB®控制台打开Grafana访问地址,登录之后即可进入仪表盘管理界面:
在仪表盘管理界面,点击Import按钮进入Import页面,输入这个ID即可:
输入ID后,Grafana会自动识别,进入选项页面,进行数据源的配置,这里我们选择之前创建好的数据源 my-datasource
然后点击Import,仪表盘就创建好了!
总结
本文展示了如何基于阿里云InfluxDB®服务快速搭建一个主机监控系统,指标数据通过telegraf进行采集,数据写入到InfluxDB®进行存储,Grafana作为前端进行可视化展示,用户也可以根据自己的需求在Grafana配置报警。阿里云InfluxDB®提供的Grafana服务为用户降低了运维和硬件成本,与InfluxDB的存储分析能力相得益彰,为监控领域的用户提供了一个绝佳的选择。
更新: 近期阿里云InfluxDB®推出了一元购优惠活动,新用户可以首月一元体验,规格选择4c16g即可: