Kube-prometheus 监控 K8s 集群外服务的两种方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kube-prometheus 监控 K8s 集群外服务的两种方式相关的知识,希望对你有一定的参考价值。
方式一:通过 ServiceMonitor 方式
创建 Service 和 ServiceMonitor 文件名为 external-node.yaml
---
apiVersion: v1
kind: Service
metadata:
name: external-node-exporter
namespace: monitoring
labels:
app: external-node-exporter
app.kubernetes.io/name: node-exporter
spec:
type: ClusterIP
ports:
- name: metrics
port: 9100
protocol: TCP
targetPort: 9100
---
apiVersion: v1
kind: Endpoints
metadata:
name: external-node-exporter
namespace: monitoring
labels:
app: external-node-exporter
app.kubernetes.io/name: node-exporter
subsets:
- addresses:
- ip: 192.168.10.10 # 这里是外部的资源列表
ports:
- name: metrics
port: 9100
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: external-node-exporter
namespace: monitoring
labels:
app: external-node-exporter
release: prometheus
spec:
selector:
matchLabels: # Service选择器
app: external-node-exporter
namespaceSelector: # Namespace选择器
matchNames:
- monitoring
endpoints:
- port: metrics # 采集节点端口(svc定义)
interval: 10s # 采集频率根据实际需求配置,prometheus默认15s
path: /metrics # 默认地址/metrics
运行 external-node.yaml
# kubectl apply -f external-node.yaml
方式二:通过 Kube-prometheus 自定义参数
添加 prometheus-additional.yaml
- job_name: node-exporter-others
static_configs:
- targets:
- 192.168.10.10:9100
metrics_path: /metrics
通过 prometheus-additional.yaml 文件生成 Secret
# kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml -n monitoring
编辑 prometheus-prometheus.yaml 添加额外的抓取参数
additionalScrapeConfigs:
name: additional-scrape-configs
key: prometheus-additional.yaml
prometheus-prometheus.yaml 在 manifests 目录下
应用 prometheus-prometheus.yaml
# kubectl apply -f prometheus-prometheus.yaml
外部需要被监控服务器安装 node-exporter
docker 方式运行
# docker run -d --name=node_exporter \\
--restart=always \\
-v /:/host:ro,rslave \\
-p 9100:9100 \\
prom/node-exporter:v1.4.0 \\
--path.rootfs=/host
systemd 方式运行
# cat /usr/lib/systemd/system/node-exporter.service
[Unit]
Description=Node Exporter For Prometheus
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter "--web.listen-address=:9100"
[Install]
WantedBy=mutil-user.target
# systemctl daemon-reload
# systemctl status node-exporter
node-exporter 会暴露系统监控相关的 /metrics 接口来供 Prometheus 来抓取
以上是关于Kube-prometheus 监控 K8s 集群外服务的两种方式的主要内容,如果未能解决你的问题,请参考以下文章
通过 kube-prometheus 监控 k8s | 运维进阶
kubernetes集群全栈监控报警方案kube-prometheus
kube-prometheus中grafana在k8s环境下持久化
无法使用来自浏览器的入口访问我在 k8s 集群上的 grafana 仪表板
企业运维实战-k8s学习笔记17.k8s集群+Prometheus监控部署基于prometheus实现k8s集群的hpa动态伸缩虚拟机部署prometheus监控