参考:
搭建流程
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: v1
kind: Service
metadata:
labels:
k8s-app: node
name: node
namespace: monitoring
spec:
clusterIP: None
ports:
- name: http
port: 9100
protocol: TCP
targetPort: 9100
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
labels:
k8s-app: node
name: node
namespace: monitoring
subsets:
- addresses:
- ip: 172.16.5.42
- ip: 172.16.5.171
ports:
- name: http
port: 9100
protocol: TCP
nginx_服务发现
SpringBoot应用服务发现
ServiceMonitor
node_服务监测
云平台配置:服务监测。选择对应的服务发现和工作负载即可。
YAML配置:与node_exporter服务发现对应。如下图。
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: node
name: node
namespace: monitoring
spec:
endpoints:
- interval: 10s
port: http
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
k8s-app: node
nginx_服务监测
云平台配置。