Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arloor/kubernetes-prometheus-grafana
https://github.com/arloor/kubernetes-prometheus-grafana
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/arloor/kubernetes-prometheus-grafana
- Owner: arloor
- Created: 2023-08-02T12:15:03.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-12-06T06:41:18.000Z (12 months ago)
- Last Synced: 2024-10-20T06:27:09.676Z (about 1 month ago)
- Size: 679 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## 使用node-exporter + prometheus + grafana 监控k8s集群
| 组件 | 镜像 |
| --- | --- |
| node-exporter | v1.6.1 |
| prometheus | v2.45.0 |
| grafana | 10.0.3 |安装:
```bash
kubectl create namespace monitoring
kubectl apply -f node-exporter.yaml
kubectl apply -f prometheus.yaml
kubectl apply -f grafana.yaml
watch kubectl get pod -n monitoring -o wide # 等待所有pod就绪
```卸载:
```bash
kubectl delete namespace monitoring
```整个过程中涉及的知识点解析:[K8S RBAC、Promethues服务发现、Prometheus Relabel configs](https://www.arloor.com/posts/k8s-rbac-prometheus-sd-relabel-config/)
### node-exporter
node-exporter用来获取机器指标,包括CPU、内存、磁盘、网络等,并将这些指标暴露在 `/metrics` 上,供prometheus抓取。
PS:这里使用hostNetwork来监控Host的网络堆栈。
### prometheus
主要关注ConfigMap中的prometheus.yaml。最核心的是两部分:kubernetes的服务发现和relabel_config。下面是prometheus的文档。
1. [kubernetes_sd_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config)
2. [relabel_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config)在node-exporter任务的relabel_config的部分,我们优先使用Node的ExternalIP作为__address__的ip部分,如果ExternalIP不存在则使用InternalIP。
可以访问 http://{{LoadBalancerIP:9090}}/targets?search= 查看服务发现的的抓取目标
### grafana
为了将grafana暴露到公网,Service的Type为LoadBalancer。
如果K8S集群没有LoadBalancer实现的话,可以改成NodePort,或者Deployment中使用hostPort或hostNetwork。
端口是3000,默认用户名密码是admin。设置datasource为 http://prometheus-service.monitoring:9090 。
推荐的grafana大盘模版:在新建大盘时选择import,并输入下面的id即可。
1. https://grafana.com/grafana/dashboards/19397-overview
2. https://grafana.com/grafana/dashboards/1860-node-exporter-full
3. https://grafana.com/grafana/dashboards/20025-traffic-summary效果图:
![Alt text](./image.png)
![Alt text](./image-1.png)
### 进阶优化
如果想优化下默认的配置,可以有这几个方向:
1. 使用PersistentVolume来存储prometheus的tsdb和Grafana的大盘等配置。
2. 给Grafana配置TLS证书