Kubernetes : Prometheus तैनात करें2023/09/04 |
Kubernetes क्लस्टर में मेट्रिक्स की निगरानी के लिए Prometheus को तैनात करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।
-----------+---------------------------+--------------------------+------------ | | | eth0|10.0.0.25 eth0|10.0.0.71 eth0|10.0.0.72 +----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ ctrl.srv.world ] | | [snode01.srv.world] | | [snode02.srv.world] | | Control Plane | | Worker Node | | Worker Node | +----------------------+ +-----------------------+ +-----------------------+ |
[1] |
Prometheus के लिए एक सतत भंडारण की आवश्यकता है।
इस उदाहरण पर, कंट्रोल प्लेन नोड पर एनएफएस सर्वर स्थापित करें और [/home/nfsshare] निर्देशिका को एनएफएस शेयर के रूप में बाहरी लगातार स्टोरेज के रूप में कॉन्फ़िगर करें, और एनएफएस प्लगइन के साथ डायनेमिक वॉल्यूम प्रोविजनिंग को भी कॉन्फ़िगर करें जैसे कि [1], [2], [3]। |
[2] | Helm के साथ Prometheus चार्ट स्थापित करें। |
# आउटपुट कॉन्फ़िगरेशन और कुछ सेटिंग्स बदलें root@ctrl:~# helm inspect values bitnami/kube-prometheus > prometheus.yaml
root@ctrl:~#
vi prometheus.yaml ..... ..... पंक्ति 18: उपयोग करने के लिए [storageClass] निर्दिष्ट करें storageClass: "nfs-client" ..... ..... ..... पंक्ति 995: उपयोग करने के लिए [storageClass] निर्दिष्ट करें storageClass: "nfs-client" ..... ..... ..... पंक्ति 1840: उपयोग करने के लिए [storageClass] निर्दिष्ट करें storageClass: "nfs-client" # प्रोमेथियस के लिए एक नामस्थान बनाएँ root@ctrl:~# kubectl create namespace monitoring namespace/monitoring created helm install prometheus --namespace monitoring -f prometheus.yaml bitnami/kube-prometheus NAME: prometheus LAST DEPLOYED: Thu Nov 3 07:23:48 2022 NAMESPACE: monitoring STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: kube-prometheus CHART VERSION: 8.1.11 APP VERSION: 0.60.1 ** Please be patient while the chart is being deployed ** Watch the Prometheus Operator Deployment status using the command: kubectl get deploy -w --namespace monitoring -l app.kubernetes.io/name=kube-prometheus-operator,app.kubernetes.io/instance=prometheus Watch the Prometheus StatefulSet status using the command: kubectl get sts -w --namespace monitoring -l app.kubernetes.io/name=kube-prometheus-prometheus,app.kubernetes.io/instance=prometheus Prometheus can be accessed via port "9090" on the following DNS name from within your cluster: prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local To access Prometheus from outside the cluster execute the following commands: echo "Prometheus URL: http://127.0.0.1:9090/" kubectl port-forward --namespace monitoring svc/prometheus-kube-prometheus-prometheus 9090:9090 Watch the Alertmanager StatefulSet status using the command: kubectl get sts -w --namespace monitoring -l app.kubernetes.io/name=kube-prometheus-alertmanager,app.kubernetes.io/instance=prometheus Alertmanager can be accessed via port "9093" on the following DNS name from within your cluster: prometheus-kube-prometheus-alertmanager.monitoring.svc.cluster.local To access Alertmanager from outside the cluster execute the following commands: echo "Alertmanager URL: http://127.0.0.1:9093/" kubectl port-forward --namespace monitoring svc/prometheus-kube-prometheus-alertmanager 9093:9093root@ctrl:~# kubectl get pods -n monitoring -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES alertmanager-prometheus-kube-prometheus-alertmanager-0 2/2 Running 1 (96s ago) 106s 192.168.211.131 snode02.srv.world <none> <none> prometheus-kube-prometheus-blackbox-exporter-ff46dc456-ft2z2 1/1 Running 0 2m11s 192.168.211.130 snode02.srv.world <none> <none> prometheus-kube-prometheus-operator-6b75d4f48b-vf95h 1/1 Running 0 2m11s 192.168.186.67 snode01.srv.world <none> <none> prometheus-kube-state-metrics-85647b4c64-r58qp 1/1 Running 0 2m11s 192.168.186.68 snode01.srv.world <none> <none> prometheus-node-exporter-lmww4 1/1 Running 0 2m11s 10.0.0.72 snode02.srv.world <none> <none> prometheus-node-exporter-zt5dp 1/1 Running 0 2m11s 10.0.0.71 snode01.srv.world <none> <none> prometheus-prometheus-kube-prometheus-prometheus-0 2/2 Running 0 106s 192.168.186.69 snode01.srv.world <none> <none> # यदि क्लस्टर के बाहर से पहुंच है, तो पोर्ट-फ़ॉरवर्डिंग सेट करें root@ctrl:~# kubectl port-forward -n monitoring service/prometheus-kube-prometheus-prometheus --address 0.0.0.0 9090:9090 |
[3] | यदि आप Grafana भी तैनात करते हैं, तो यह निम्नानुसार संभव है। |
# आउटपुट कॉन्फ़िगरेशन और कुछ सेटिंग्स बदलें root@ctrl:~# helm inspect values bitnami/grafana > grafana.yaml
root@ctrl:~#
vi grafana.yaml # पंक्ति 552 : अपने [storageClass] में बदलें persistence: enabled: true ## If defined, storageClassName: <storageClass> ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. (gp2 on AWS, standard on ## GKE, AWS & OpenStack) ## storageClass: "nfs-client"root@ctrl:~# helm install grafana --namespace monitoring -f grafana.yaml bitnami/grafana NAME: grafana LAST DEPLOYED: Thu Nov 3 07:40:10 2022 NAMESPACE: monitoring STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: grafana CHART VERSION: 8.2.15 APP VERSION: 9.2.3 ** Please be patient while the chart is being deployed ** 1. Get the application URL by running these commands: echo "Browse to http://127.0.0.1:8080" kubectl port-forward svc/grafana 8080:3000 & 2. Get the admin credentials: echo "User: admin" echo "Password: $(kubectl get secret grafana-admin --namespace monitoring -o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 -d)"root@ctrl:~# kubectl get pods -n monitoring NAME READY STATUS RESTARTS AGE grafana-57dc4598d9-zhwvg 1/1 Running 0 68s ..... ..... # यदि क्लस्टर के बाहर से पहुंच है, तो पोर्ट-फ़ॉरवर्डिंग सेट करें root@ctrl:~# kubectl port-forward -n monitoring service/grafana --address 0.0.0.0 3000:3000 |
[4] |
यदि आप क्लस्टर में होस्ट से Prometheus यूआई तक पहुंचते हैं, तो वेब ब्राउज़र के साथ नीचे दिए गए यूआरएल तक पहुंचें।
⇒ http://prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local
यदि आप पोर्ट-फ़ॉरवर्डिंग सेट करते हैं, तो अपने स्थानीय नेटवर्क में क्लाइंट कंप्यूटर पर नीचे दिए गए यूआरएल तक पहुंचें।
⇒ http://(Control Plane नोड होस्टनाम या आईपी पता):(सेटिंग पोर्ट)/
यदि निम्नलिखित Prometheus UI प्रदर्शित होता है तो यह ठीक है।
|
![]() |
![]() |
[5] |
यदि आप क्लस्टर में होस्ट से Grafana तक पहुंचते हैं, तो वेब ब्राउज़र के साथ नीचे दिए गए URL तक पहुंचें।
⇒ http://grafana.monitoring.svc.cluster.local
यदि आप पोर्ट-फ़ॉरवर्डिंग सेट करते हैं, तो अपने स्थानीय नेटवर्क में क्लाइंट कंप्यूटर पर नीचे दिए गए यूआरएल तक पहुंचें।
⇒ http://(Control Plane नोड होस्टनाम या आईपी पता):(सेटिंग पोर्ट)/
यदि निम्नलिखित ग्राफाना यूआई प्रदर्शित होता है तो यह ठीक है।
[admin] पासवर्ड के लिए, नीचे दिए गए आदेश से पुष्टि करना संभव है।⇒ echo "Password: $(kubectl get secret grafana-admin --namespace monitoring -o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 -d)" |
![]() |
![]() |
![]() |
![]() |
![]() |
Sponsored Link |