参考:
搭建流程
1、部署Prometheus,Grafana
2、部署exporter
- Node_exporter/
- kafka_exporter/
- 云上nginx_exporter
- SpringBoot项目集成监控
3、云平台中部署exporter的服务发现
4、部署ServiceMonitor
5、部署监控面板
部署exporter
分类部署。
云下:node_exporter
云上(容器):nginx_exporter等
node_exporter
参考文档。
另外:容器化node_exporter:
docker run -d --restart=always \--name node_exporter \--net="host" \--pid="host" \-v "/:/host:ro,rslave" \node_exporter:v0.18.1 --path.rootfs=/host
云上nginx_exporter
在前端web应用的配置项中,增加
location nginx_status {stub_status on;access_log on;allow all;}
部署nginx-exporter的deployment:
端口号为9113
spec.template.spec.containers.args处,
#参数处填写nginx.scrape-uri=http://对应的web服务名:服务端口/nginx_status
SpringBoot项目集成监控
https://mp.weixin.qq.com/s/0a9tVxSgoCBLyeeSv_WZog
服务发现
node_服务发现
云平台配置服务发现:部署服务发现,选择 解析到IP。
YAML文件配置服务发现:需要部署Endpoints和Service两种资源对象。如下图。
apiVersion: v1kind: Servicemetadata:labels:k8s-app: nodename: nodenamespace: monitoringspec:clusterIP: Noneports:- name: httpport: 9100protocol: TCPtargetPort: 9100sessionAffinity: Nonetype: ClusterIP---apiVersion: v1kind: Endpointsmetadata:labels:k8s-app: nodename: nodenamespace: monitoringsubsets:- addresses:- ip: 172.16.5.42- ip: 172.16.5.171ports:- name: httpport: 9100protocol: TCP
nginx_服务发现
SpringBoot应用服务发现
ServiceMonitor
node_服务监测
云平台配置:服务监测。选择对应的服务发现和工作负载即可。
YAML配置:与node_exporter服务发现对应。如下图。
apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata:labels:app: nodename: nodenamespace: monitoringspec:endpoints:- interval: 10sport: httpnamespaceSelector:matchNames:- monitoringselector:matchLabels:k8s-app: node
nginx_服务监测
云平台配置。
