性能监控平台搭建:Node_Exporters+Prometheus+Grafana
2022-04-23 12:51 第二个卿老师 阅读(525) 评论(0) 编辑 收藏 举报之前搭建过Jmeter监控平台搭建:JMeter+InfluxDB+Grafana,这里再使用docker搭建下目前比较流行的Node_exporters+InfluxDB+Grafana监控平台,网上教程很多,这次记录自己的搭建过程。
背景
监控平台是为了方便监控服务器资源,才能做后续的性能分析和瓶颈定位,当然使用命令或者第三方插件工具也能实现,但监控平台有一个聚合作用,比较提高效率。
Prometheus
Prometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包,基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统, 不需要任何SDK或者其他的集成过程
Node_exporters
输出被监控组件信息的HTTP接口被叫做exporter,Prometheus的社区中提供了其他应用包括服务器、数据库、中间件等的Exporter,也可以自己开发,node_exporters就是监控Linux的,官网exporters链接。
Grafana
Grafana前面也提过,是一个跨平台的开源的度量分析和可视化工具,这里可以接入Prometheus数据源。
架构图
Prometheus及其生态系统组件的架构工作流程:
- Prometheus Server 可定期从活跃的目标主机上(target)拉取监控指标数据,目标主机的监控数据可以通过配置静态job或者服务发现的方式被Prometheus server采集到,这种方式默认是pull方式拉取指标;也可以通过pushgateway把采集的数据上报到Prometheus server中;还可以通过一些组件自带的exporter采集相应组件的数据;
- Prometheus server的时间序列把采集到的监控指标数据整合并保存到本地的磁盘或者数据库中;
- Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到Alertmanager;
- Alertmanager 通过配置报警接受方,发送报警到邮件,微信等;
- Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据;
- Grafana 可接入Prometheus数据源,把监控数据以图形化展示出;
配置 node_exporter
下载exporter文件到自己想要的目录下,我放在了/opt目录下:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
解压后移动到/usr/loca目录下并进入:
tar xvfz node_exporter-1.2.2.linux-amd64.tar.gz mv node_exporter-1.2.2.linux-amd64 /usr/local/node_exporter-1.2.2.linux-amd64 cd /usr/local/node_exporter-1.2.2.linux-amd64
启动Node Exporter,nphup是后台运行,退出需要用kill命令,node——exporter默认使用主机的9100端口和/metrics路径,本地访问http://localhost:9100/metrics。
nohup ./node_exporter &
配置Prometheus
首先下载文件到opt目录:
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
可等得花都谢了,然后解压到/usr/local。
mkdir /usr/local/prometheus
tar xvfz prometheus-2.31.1.linux-amd64.tar.gz -C /usr/local/prometheus
进入prometheus主目录,查看prometheus.yml文件、
global:prometheus的全局配置,主要有以下两个属性
scrape_interval:控制多久一次收集目标数据
evaluation_interval:评估规则时间间隔
rule_files:指定加载规则的位置
scrape_configs:配置prometheus监视的数据。
启动prometheus:
直接启动:
./prometheus --config.file=prometheus.yml
后台启动并保存到对应日志文件:
mkdir -p /applog/prometheus && touch /applog/prometheus/prometheus.log --创建日志文件
nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle > /applog/prometheus/prometheus.log 2>&1 &
输入IP:9090就可以访问prometheus了。
添加Exporter监控
在上面的prometheus.yml文件中添加以下配置:
- job_name: node static_configs: - targets: ['localhost:9100'] # 替换为监控主机的ip地址或域名,我这里是本地,外网访问需要修改对应的公网ip
重启prometheus,进入Status下的tagets,可以看到node的job。
配置Grafana
由于之前用过docker部署过Grafana,这里就直接配置了,首先进入Grafana添加数据源。
选择prometheus:
进行名字和promethus的请求配置,类似下图(docker部署的需要填外网或者docker分配的地址,不能填localhost和127.0.0.1)
点击保存并测试:
数据源配置好后,接下来配置模板,进入首页选择导入模板,输入模板ID8919:
修改名称,选择数据源,点击import:
查看数据监控,至此搭建完成。