1 Spring boot 2.0集成prometheus
pom文件
对应的application.yml文件
注意事项这边使用的是spring-boot 2.1.3这个版本,如果是其他spring-boot版本prometheus1.1.3可能出现某些错误,暂时不具体分析具体原因了。关于spring-boot-starter-actuator可以参考我以前写的文章(https://blog.youkuaiyun.com/str0708/article/details/81092536)
SpringBoot项目到这里就配置完成了,启动项目,访问
1 http://localhost:8080/proetheus_demo/actuator/
2 http://localhost:8080/proetheus_demo/actuator/prometheus
2.prometheus介绍:
prometheus主要负责从接口采集数据,Prometheus 采取的方式是 PULL 模型,也叫服务端主动去拉取监控数据。
3 prometheus基础架构:
从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。
它大致使用逻辑是这样:
- Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
- 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
- Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
- Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
- 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。
本人使用的prometheus 2.5 ,然后 prometheus.yml
注意事项由于prometheus 是使用yml 配置,如果是配置可以找一个在线yml文件去验证,特别主要空格对齐,关于prometheus可以自行去学习.
上面我配置一个对主机的监控 Exporter 采用的是 Node_Exporter。
对应的node_monitor.sh
#!/bin/bash
ps -ef|grep node_exporter |grep -v grep|awk '{print $2}'|xargs -i kill -15 {}
echo " start the new node_exporter"
nohup ./node_exporter --collector.filesystem.ignored-fs-types="^(sys|proc|auto|rpc_pipe|cgroup|hugetlb|mqueue|nfsd|rpc_pipefs|autofs|binfmt_misc|devpts|hugetlbfs)$" --collector.filesystem.ignored-mount-points="^/(docker|sys)($|/)" --web.listen-address=":30001" >> ./node_monitor.log 2>&1 &
echo "end start"
启动后,就可以访问监控机的 30001 端口就能获取到监控指标信息
4.Grafana配置
启动Grafana,配置Prometheus数据源, 安装之后的默认账号为 admin/admin
这里以ID是4701的Doshboard为例(地址:https://grafana.com/dashboards/4701)如图jvm监控。
下载对应的json文件,下面可以导入对应的json文件
然后指定数据源为Prometheus数据源
下载node-exporter 的面板