文档 · 2021年5月7日 0

K8s安装prometheus监控

环境:

本文档所有操作均基于自建的kubernetes 集群,集群版本:v1.21.0

master 节点IP:192.168.57.20

prometheus 端口:32500

grafana端口:32300

如果没有k8s 集群请参考:kubeadm方式安装kubernetes集群

安装prometheus及相关组件:

1.在master节点安装git

yum install -y git

2.下载prometheus 及相关组件的yml文件

#1.下载
git clone https://github.com/coreos/kube-prometheus.git

3.安装组件

#1.创建命名空间:
kubectl create ns monitoring

#2.创建prometheus-operator
kubectl apply -f /kube-prometheus/manifests/setup/

#3.创建prometheus及相关组件:
kubectl apply -f /kube-prometheus/manifests/

4.修改grafana,prometheus 访问方式为nodeport

#1.查看service
kubectl get svc -A

#以上结果展示了集群pod访问的方式

修改grafana:(标注的地方修改即可)

#1.编辑grafana
[root@master-01 ]# kubectl edit svc/grafana -n monitoring




# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"grafana","app.kubernetes.io/name":"grafana","app.kubernetes.io/part-of":"kube-prometheus","app.kubernetes.io/version":"7.5.4"},"name":"grafana","namespace":"monitoring"},"spec":{"ports":[{"name":"http","port":3000,"targetPort":"http"}],"selector":{"app.kubernetes.io/component":"grafana","app.kubernetes.io/name":"grafana","app.kubernetes.io/part-of":"kube-prometheus"}}}
creationTimestamp: "2021-05-07T03:07:55Z"
labels:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 7.5.4
name: grafana
namespace: monitoring
resourceVersion: "75077"
uid: c2a96af7-afa8-4130-9a4c-4d650094beff
spec:
clusterIP: 10.200.167.128
clusterIPs:
- 10.200.167.128
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
nodePort: 32300                     ###新增nodePort: 32300 端口可自定义,默认端口范围30000-32767
port: 3000
protocol: TCP
targetPort: http
selector:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
sessionAffinity: None
type: NodePort                      ###这里由集群ClusterIP 方式改为NodePort方式
status:
loadBalancer: {}


###以上两处修改完成后保存退出,即可生效。

如下图:

修改prometheus:

[root@master-01 ]# kubectl edit svc/prometheus-k8s -n monitoring

##修改部分同上面grafana
问题:
#1.检查prometheus 组件运行状态
kubectl get po -n monitoring

###通常会出现 kube-state-metrics 组件处于pullimageError 的状态,这是因为镜像没法pull导致的,手动pull 一个kube-state-metrics镜像即可:

#2.手动pull kube-state-metrics镜像:
docker pull bitnami/kube-state-metrics

#3.修改 kube-state-metrics 
 kubectl edit deploy/kube-state-metrics -n monitoring

#将原来的的镜像名字替换成你pull 好的,或者把你pull 的改成和文件中镜像同名同版本即可。
访问:

通过nodeip+nodeport方式访问prometheus,  我的地址为 192.168.57.20:32500

依次点击: status –> targets 检查监控指标是否全部正常,如图

更多配置信息如告警,告警规则等请自行查看。

通过nodeip+nodeport方式访问。190.168.57.20:32300

grafana 默认登录用户名 admin  密码为 admin

依次点击  +  –> import   模板ID分别为

13105     POD资源监控
11074   Node资源监控

导入后就可以正常使用啦

POD资源监控界面 node资源监控界面:

打赏