Prometheus监控不携带metrics接口的服务

Prometheus监控不携带metrics接口的服务

prometheus监控分为两种:

​ 1、携带metircs接口的服务

​ 2、不携带metrics接口的服务

一、prometheus监控不携带metrics接口的服务的流程

监控不携带metrics接口的服务,需要先创建一个metrics接口,从而进行监控

1、部署expertor,从而创建一个metrics接口

2、部署EndPrints,连接expertor暴漏出来的metrics接口

3、部署Service,给予ServiceMonitor使用

4、创建ServiceMonitor,注入prometheus

5、测试

二、prometheus监控nginx

2.1、创建实验环境:部署一个nginx,加载nginx监控插件

#安装nginx
[root@k8s-node-02 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@k8s-node-02 ~]# yum clean all
[root@k8s-node-02 ~]# yum makecache
[root@k8s-node-02 ~]# yum install -y nginx
#修改配置文件,启动nginx监控
[root@k8s-node-02 ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location = /status {
stub_status;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
#重启nginx,载入配置文件
[root@k8s-node-02 ~]# systemctl restart nginx
#在其他服务器上访问测试
[root@k8s-master-01 ~]# curl 192.168.15.33/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0

2.2、部署expertor,创造一个metrics接口

  • 创建一个服务,获取并格式化metrics接口数据
kind: Deployment
apiVersion: apps/v1
metadata:
name: nginx-prometheus-exporter
spec:
selector:
matchLabels:
k8s: nginx-prometheus
template:
metadata:
labels:
k8s: nginx-prometheus
spec:
containers:
- name: nginx-exporter
image: nginx/nginx-prometheus-exporter:0.9.0
imagePullPolicy: IfNotPresent
command:
- "nginx-prometheus-exporter"
- "-nginx.scrape-uri=http://192.168.12.90/status"
  • 创建一个sercice,给予peometheus集群获取metrics接口提供的格式化的监控数据
kind: Service
apiVersion: v1
metadata:
name: nginx-prometheus-exporter
spec:
ports:
- port: 9113
targetPort: 9113
name: nginx-prometheus-exporter
protocol: TCP
selector:
k8s: nginx-prometheus
  • 查看创建结果
[root@k8s-master-01 prometheus-nginx]# kubectl apply -f ./[上述两个文件]
[root@k8s-master-01 prometheus-nginx]# kubectl get svc,pod
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-prometheus-exporter ClusterIP 10.108.25.181 <none> 9113/TCP 45s
NAME READY STATUS RESTARTS AGE
pod/nginx-prometheus-exporter-7cd66d4df-wll78 1/1 Running 0 44s
  • 测试
[root@k8s-master-01 prometheus-nginx]# curl 10.108.25.181:9113/metrics
# HELP nginx_connections_accepted Accepted client connections
# TYPE nginx_connections_accepted counter
nginx_connections_accepted 25
# HELP nginx_connections_active Active client connections
# TYPE nginx_connections_active gauge
nginx_connections_active 2
# HELP nginx_connections_handled Handled client connections
# TYPE nginx_connections_handled counter
nginx_connections_handled 25
# HELP nginx_connections_reading Connections where NGINX is reading the request header
# TYPE nginx_connections_reading gauge
nginx_connections_reading 0
# HELP nginx_connections_waiting Idle client connections
# TYPE nginx_connections_waiting gauge
nginx_connections_waiting 1
# HELP nginx_connections_writing Connections where NGINX is writing the response back to the client
# TYPE nginx_connections_writing gauge
nginx_connections_writing 1
# HELP nginx_http_requests_total Total http requests
# TYPE nginx_http_requests_total counter
nginx_http_requests_total 16799
# HELP nginx_up Status of the last metric scrape
# TYPE nginx_up gauge
nginx_up 1
# HELP nginxexporter_build_info Exporter build information
# TYPE nginxexporter_build_info gauge
nginxexporter_build_info{commit="5f88afbd906baae02edfbab4f5715e06d88538a0",date="2021-03-22T20:16:09Z",version="0.9.0"} 1

2.3、创建EndPrints,链接expertor暴漏出来的metrics接口

# 参考上述Service,此处无需重复创建。

2.4、部署Service,给予ServiceMonitor使用

# 参考上述Service,此处无需重复创建。

2.5、创建ServiceMonitor,注入prometheus

kind: ServiceMonitor
apiVersion: monitoring.coreos.com/v1
metadata:
labels:
k8s: nginx-prometheus
name: nginx-monitor
namespace: monitoring
spec:
endpoints:
- interval: 3s
port: nginx-prometheus-exporter
path: metrics
selector:
matchLabels:
k8s: nginx-prometheus
namespaceSelector:
matchNames:
- "default"
  • 查看部署结果
[root@k8s-master-01 prometheus-nginx]# kubectl apply -f servicemonitor.yaml
servicemonitor.monitoring.coreos.com/nginx-monitor created
[root@k8s-master-01 prometheus-nginx]# kubectl get servicemonitors -n monitoring
NAME AGE
nginx-monitor 18s

本文作者:大胡萝卜没有须

本文链接:https://www.cnblogs.com/c-moon/p/16797239.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   大胡萝卜没有须  阅读(284)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 此生不换 青鸟飞鱼
此生不换 - 青鸟飞鱼
00:00 / 00:00
An audio error has occurred.