From dca76617814e67828f5d27f85860ca7789524f79 Mon Sep 17 00:00:00 2001 From: phstsai Date: Mon, 28 May 2018 16:04:15 +0800 Subject: [PATCH 1/2] add node-exporter-svc.yaml Former-commit-id: 9f66eb459e0aadc896f37771809c0058cbc1d7c4 [formerly 9f66eb459e0aadc896f37771809c0058cbc1d7c4 [formerly 93f9c07f4cee3391f363b469c65ddf449a5fcaec]] Former-commit-id: 53f14040c8cb09b15447f8dd51a920548cde6108 Former-commit-id: 6cf4fc5aa2cc5473be86c4669663c73e26896617 --- deploy/monitoring/node-exporter-svc.yaml | 14 ++++++++++++++ deploy/monitoring/node-exporter.yaml | 10 +++++----- .../{prometheus-svc.yml => prometheus-svc.yaml} | 0 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 deploy/monitoring/node-exporter-svc.yaml rename deploy/monitoring/{prometheus-svc.yml => prometheus-svc.yaml} (100%) diff --git a/deploy/monitoring/node-exporter-svc.yaml b/deploy/monitoring/node-exporter-svc.yaml new file mode 100644 index 00000000..df04e47d --- /dev/null +++ b/deploy/monitoring/node-exporter-svc.yaml @@ -0,0 +1,14 @@ +kind: Service +apiVersion: v1 +metadata: + namespace: monitoring + name: node-exporter + labels: + app: node-exporter +spec: + type: NodePort + ports: + - port: 9100 + nodePort: 30910 + selector: + name: node-exporter \ No newline at end of file diff --git a/deploy/monitoring/node-exporter.yaml b/deploy/monitoring/node-exporter.yaml index 689caba5..53c634b2 100644 --- a/deploy/monitoring/node-exporter.yaml +++ b/deploy/monitoring/node-exporter.yaml @@ -2,20 +2,20 @@ apiVersion: extensions/v1beta1 kind: DaemonSet metadata: namespace: monitoring - name: prom-node-exporter + name: node-exporter spec: template: metadata: - name: prom-node-exporter + name: node-exporter labels: - name: prom-node-exporter + name: node-exporter annotations: prometheus.io.scrape: "true" spec: hostPID: true containers: - - name: prom-node-exporter - image: prom/node-exporter + - name: node-exporter + image: asia.gcr.io/linker-aurora/node-exporter:develop securityContext: privileged: true ports: diff --git a/deploy/monitoring/prometheus-svc.yml b/deploy/monitoring/prometheus-svc.yaml similarity index 100% rename from deploy/monitoring/prometheus-svc.yml rename to deploy/monitoring/prometheus-svc.yaml From afb0823ed515fbc0dba6877101f0164cf818b526 Mon Sep 17 00:00:00 2001 From: phstsai Date: Mon, 28 May 2018 16:45:32 +0800 Subject: [PATCH 2/2] add the readme Former-commit-id: 0307daf6bf078a75b8ab456ec9ed767fcf14107a [formerly 0307daf6bf078a75b8ab456ec9ed767fcf14107a [formerly c4bebdcec6bbcb94bf5439a77e514bef5e8473b8]] Former-commit-id: a7c4c5a9a622a5480be56d8dd2d6d9925c0d328f Former-commit-id: 92b2a2ffb44c4874e5bef37da12fba3faf201b23 --- deploy/monitoring/README.md | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 deploy/monitoring/README.md diff --git a/deploy/monitoring/README.md b/deploy/monitoring/README.md new file mode 100644 index 00000000..d1579cf8 --- /dev/null +++ b/deploy/monitoring/README.md @@ -0,0 +1,57 @@ +# Monitoring + +## Prometheus +Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. + +### Create a monitoring namespace + +``` bash +kubectl create -f monitoring-namespace.yaml +``` + +### ConfigMap for Prometheus +It collects metrics from ```kubernetes-apiservers```, ```kubernetes-cadvisor```, ```kubernetes-nodes```, ```kubernetes-pods```(every node-exporter), ```kubernetes-service-endpoints``` by default. + +``` bash +kubectl create -f prometheus-config.yaml +``` + +### Create the deployment and service + +``` bash +kubectl create -f prometheus-deployment.yaml +kubectl create -f prometheus-svc.yaml +``` + +### Use the Prometheus +Open the browser and connect to ```hostIP:30003```, you can see whether the Prometheus collect the metrics from targets correctly in ```Status->Targets```. + +You also can enter a PromQL expression to query the data and show them in graph. + +``` SQL +sum by(pod_name)(container_memory_usage_bytes{namespace="kube-system"}) +``` + +Or pass the expression through url and get the json. +``` bash +http://hostIP:30003/api/v1/query?query=sum%20by(pod_name)(container_memory_usage_bytes%7Bnamespace%3D%22kube-system%22%7D) +``` + + +## Node Exporter + +Node exporter for machine metrics, written in Go with pluggable metric collectors. + +### Create the node-exporter daemonset + +``` bash +kubectl create -f node-exporter.yaml +``` + +If you want to check whether the daemonset is created successfully, you can create a service to expose the node-exporter. + +``` bash +kubectl create -f node-exporter-svc.yaml +``` + +Open the browser and connect to ```hostIP:30910/metrics```, you can see the metrics of the host node (service will route the request to the pod in round robin order). \ No newline at end of file