apiVersion: v1kind: Secretmetadata:name: mongodb-secret-testnamespace: mongodb-testtype: OpaquestringData:datasource: "mongodb://{user}:{passwd}@{host1}:{port1},{host2}:{port2},{host3}:{port3}/admin" # 对应连接URI
apiVersion: apps/v1kind: Deploymentmetadata:labels:k8s-app: mongodb-exporter # 根据业务需要调整成对应的名称,建议加上 MongoDB 实例的信息name: mongodb-exporter # 根据业务需要调整成对应的名称,建议加上 MongoDB 实例的信息namespace: mongodb-testspec:replicas: 1selector:matchLabels:k8s-app: mongodb-exporter # 根据业务需要调整成对应的名称,建议加上 MongoDB 实例的信息template:metadata:labels:k8s-app: mongodb-exporter # 根据业务需要调整成对应的名称,建议加上 MongoDB 实例的信息spec:containers:- args:- --collect.database # 启用采集 Database metrics- --collect.collection # 启用采集 Collection metrics- --collect.topmetrics # 启用采集 table top metrics- --collect.indexusage # 启用采集 per index usage stats- --collect.connpoolstats # 启动采集 MongoDB connpoolstatsenv:- name: MONGODB_URIvalueFrom:secretKeyRef:name: mongodb-secret-testkey: datasourceimage: ssheehy/mongodb-exporterimagePullPolicy: IfNotPresentname: mongodb-exporterports:- containerPort: 9216name: metric-port # 这个名称在配置抓取任务的时候需要securityContext:privileged: falseterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstimagePullSecrets:- name: qcloudregistrykeyrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: { }terminationGracePeriodSeconds: 30

wget 127.0.0.1:9216/metricscat metrics

Pod Monitor 来定义 Prometheus 抓取任务,YAML 配置示例如下:apiVersion: monitoring.coreos.com/v1kind: PodMonitormetadata:name: mongodb-exporter # 填写一个唯一名称namespace: cm-prometheus # namespace固定,不要修改spec:podMetricsEndpoints:- interval: 30sport: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Namepath: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metricsrelabelings:- action: replacesourceLabels:- instanceregex: (.*)targetLabel: instancereplacement: 'cmgo-xxxxxxxx' # 调整成对应的 MongoDB 实例 IDnamespaceSelector: # 选择要监控pod所在的namespacematchNames:- mongodb-testselector: # 填写要监控pod的Label值,以定位目标podmatchLabels:k8s-app: mongodb-exporter
Exporter 和 MongoDB 部署在不同的服务器上,因此建议通过 Prometheus Relabel 机制将 MongoDB 实例的信息放到监控指标中,以便定位问题。MongoDB监控,安装对应的 Grafana Dashboard 即可开启 MongoDB 监控大盘,查看实例相关的监控数据,如下图所示:


文档反馈