如何快速的使用 Prometheus 和 Grafana 部署一个 Kubernetes 云原生监控
Prometheus 社区更新太快,之前写的一些文档有些过时。最近又开始关注可观测性,补齐运维方面的一些知识点。
1名词解释
Grafana
一个可视化工具,提供各种可视化面板,支持各种数据源,包括 Prometheus、OpenTSDB、MySQL 等。
Prometheus
一个时间序列数据库,主要用于收集、存储、对外提供查询数据。
Exporter
一个用来暴露服务监控指标的程序,提供 API 接口给 Prometheus 拉取监控数据。
PromQL
Prometheus 内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。
2安装 Prometheus
添加 Helm 源
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update
安装 Prometheus
$ helm install prometheus -n monitor prometheus-community/prometheus --create-namespace
如果 prometheus-node-exporter 一直起不来,可能是默认端口 9100 被占用。可以使用下面的命令,编辑 DaemonSet 修改默认端口:
$ kubectl -n monitor edit ds prometheus-node-exporter
卸载
$ helm uninstall prometheus -n monitor
3安装 Grafana
添加 Helm 源
$ helm repo add grafana https://grafana.github.io/helm-charts
$ helm repo update
$ helm -n monitor install grafana grafana/grafana
获取 admin 账户的登录密码
$ kubectl -n monitor get secret grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
JIsmMsWaN8rF5ryS7rVohHyFWKzyahR7u0OJsiJL
修改 Grafana 服务的访问方式为 NodePort
$ kubectl -n monitor patch svc grafana -p '{"spec": {"type": "NodePort"}}'
$ kubectl -n monitor get svc grafana
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana NodePort 10.233.6.118 80:31892/TCP 117s
这用,通过主机 IP + 31892 即可访问 Grafana。
卸载
$ helm -n monitor uninstall grafana
值得注意的是,这种安装方法,Grafana 的数据存储在 Pod 的 /var/lib/grafana
路径下,如果重启 Grafana ,相关的配置会丢失。如果是生产环境,需要挂载存储卷。
4配置使用
1 添加数据源
在左侧导航栏,找到 [Data Sources]填入 Prometheus 的访问地址 http://prometheus-server.monitor.svc 即可。
2 添加模板
在左侧导航栏 [+]中找到 Import 按钮,我选择的是 id 为 10856 的面板导入。也可以去 Grafana 官网,选择合适的面板导入,https://grafana.com/grafana/dashboards。
如下图,这里需要选择上面添加的数据源。
3 查看看板
4 grafana.ini 配置
Grafana 有些配置需要通过修改 grafana.ini 实现,下面仅列举我用到的几个:
编辑配置文件
$ kubectl -n monitor edit cm grafana
添加配置
允许匿名访问
grafana.ini: |
[auth.anonymous]
enabled = true
允许 Iframe 嵌入
grafana.ini: |
[security]
allow_embedding = true
重启 Grafana 生效
$ kubectl -n monitor rollout restart deployment grafana
5参考
https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
本文转载自:「 陈少文的网站 」,原文:https://tinyurl.com/yzse5jxj ,版权归原作者所有。