写在前面
在ELK日志监控分析系统的探索与实践(一)中,我们介绍了利用ELK+Filebeat监控Springboot项目的日志,本篇则是重点介绍如何利用ELk+Metricbeat监控服务器系统CPU、内存、磁盘等系统指标。
一、Metricbeat简介
Metricbeat是一个轻量级的托运程序,可以安装在服务器上,定期从操作系统和服务器上运行的服务收集度量。Metricbeat获取它收集的度量和统计数据,并将它们发送到您指定的输出,例如Elasticsearch或Logstash。
Metricbeat通过从服务器上运行的系统和服务收集指标,帮助您监控服务器,例如:
二、ELK集成Metricbeat工作原理
三、部署方案
服务器 | 服务 | 默认端口号 | 作用 | 备注 |
---|---|---|---|---|
192.168.16.21 | Elasticsearch | 9200 | 日志存储、日志查询、日志解析 | |
192.168.16.22 | Logstash | 5044 | 日志收集、日志过滤 | |
192.168.16.4(外网地址:xx.xxx.xx.xx) | Kibana | 5601 | 可视化展示 | 如需外网访问,Kibana需部署在外网可以访问的服务器上 |
192.168.16.6192.168.16.11...... | Metricbeat | 服务器系统指标收集 | 各个需要采集指标的服务器上都部署 |
四、Metricbeat部署与配置
官网指南:https://www.elastic.co/guide/en/beats/metricbeat/7.8/metricbeat-getting-started.html
1.下载安装Metricbeat
注意事项:
https://www.elastic.co/cn/downloads/past-releases/metricbeat-7-8-0
2.配置Metricbeat
编辑metricbeat.yml
output.elasticsearch:
hosts: ["192.168.16.21:9200"] # ES地址
username: "elastic" # elasticsearch登录用户名,如有
password: "elastic" # elasticsearch登录密码,如有
setup.kibana: # kibana地址
host: "192.168.16.4:5601"
注意:Output配置中,ES和Logstash只能配置一个,否则会报错:Error initializing beat: error unpacking config data: more than one namespace configured accessing 'output' (source:'metricbeat.yml')
3.启动system模块
./metricbeat modules enable system # 开启system模块
./metricbeat modules list enable # 查看已开启的模块
如需配置采集的内容,可以修改modules.d目录下的配置文件system.yml:vi modules.d/system.yml
4.加载索引模板供Kibana可视化
./metricbeat setup -e # 初始化metricbeat,-e 的含义:日志直接命令行输出,而非日志
初始化成功后,会提示“Kibana dashboards successfully loaded.” 如下图所示:
5.启动Metricbeat
./metricbeat -e
也可以新建一个后台启动脚本:startup.sh,内容如下:
nohup ./metricbeat >/dev/null 2>&1 &
启动成功后,如下所示:
启动成功后,可以通过“检查数据”来确认Metricbeat是否收集到系统数据
6.查看Kibana面板
以上几步操作成功后,可以点击“系统指标面板”进入可视化面板页面
7.监控多台服务器
监控多台服务器和监控一台的原理一致,只需要在想要采集指标的服务器上安装Metricbeat即可,重复上述1-6步。
监控面板效果如下图所示:
五、小结
以上,就是Metricbeat安装和配置的全过程,至此,ELK+Filebeat+Metricbeat的组合,就已实现了业务+系统(项目日志+系统指标)的监控与分析。当然ELK和Metricbeat的功能远不止以上提到的这些,系统监控也只是服务器运维中的一个小环节,如何实现业务、系统资源预警,并及时通知到相关责任人,才是运维的工作重点。