Grafana 中文入门教程 | 构建你的第一个仪表盘
共 8569字,需浏览 18分钟
·
2021-03-17 09:25
公众号关注“杰哥的IT之旅”,
选择“星标”,重磅干货,第一时间送达!
服务监控到底咋配置?怎样保证数据安全? 保证健康的服务到底应该监控些什么? 配置好后的仪表盘为啥消失了? 查询 Query 又该咋写?
在卡拉搜索,我们用 Grafana 监控所有的服务状态,从引擎到索引。完善的监控帮助我们实时了解卡拉的搜索延迟,慢搜索,Docker 状态等等。如果你对搜索引擎、数据库搜索、App 内搜索感兴趣,也欢迎通过博客[2] 或 Demo[3] 进一步了解或试用卡拉搜索
1. Grafana 是什么
Grafana 支持的数据源
Prometheus 本文中的例子,你没听过也没关系不影响阅读,把它想象成带时间戳的 MySQL 就好 Graphite OpenTSDB InfluxDB MySQL/PostgreSQL Microsoft SQL Server 等等
2. 什么情况下会用到 Grafana 或者监控仪表盘
我的位置是哪里,在路中间么(当然这个无法通过监控系统实现,得看路) 我的速度是多少 - 速度仪表盘 我的油、发动机水温等等关键指标是多少 - 其它仪表盘
阿里在双十一控制室用了监控仪表盘,因此所有双十一的新闻基本上都可以看到这个仪表盘 各酷炫公司大厅里常常放一个仪表盘来展示实力(用户数啦、营收啦之类) 你的 PC 上的资源管理器、Mac 上的 Activity Monitor 都是某种意义上的仪表盘
3. 安装和配置 Grafana
version: '3.4'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
hostname: prometheus
ports:
- 9090:9090
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
prometheus-exporter:
image: prom/node-exporter
container_name: prometheus-exporter
hostname: prometheus-exporter
ports:
- 9100:9100
grafana:
image: grafana/grafana
container_name: grafana
hostname: grafana
ports:
- 3000:3000
volumes:
- ./grafana.ini:/etc/grafana/grafana.ini
Prometheus 普罗米修斯时序数据库,用来存储和查询你的监控数据 Promethues-exporter 一个模拟数据源,用来监控你本机的状态,比如有几个 CPU,CPU 的负载之类 Grafana 本尊
docker-compose up
,应该会看到类似:http://localhost:3000
应该就可以看到 Grafana 跑起来的初始登录界面。初始的用户名是 admin
,密码也是 admin
。输入之后,会要求你改密码4. Grfana 工作原理
Prometheus-exporter
又是什么呢?Prometheus-exporter
这个服务,会查询你的本地电脑的信息,比如内存还有多少、CPU 负载之类,然后将数据导出至普罗米修斯数据库。Prometheus-exporter
),而最右边的 Grafana 会查询中间的普罗米修斯,来展示仪表盘。5. 搭建你的第一个仪表盘
第 1 步 - 设置数据源
Add Data Source
即添加数据源,选择 Prometheus
http://prometheus:9090
就可以了。你可能会问,为什么不是 localhost:9090
呢?原因是,我们用了docker-compose
起的三个服务,可以把它们想象成三台独立的服务器,因此需要用一个域名来互相通信。我们在 docker-compose.yml 中设置的普罗米修斯服务器的名字就叫prometheus
,因此这里需要用前者。
Data source is working
这个检测,这时表明你的 Grafana 已经跟普罗米修斯说上话了第 2 步 - 导入 Dashboard
prometheus-exporter
也就是本机的系统信息监控,那么我们可以先找一个同样用了这个数据源的仪表盘。在 Grafana 网站上,你其实可以找到很多别人已经做好的仪表,可以用来监测非常多标准化的服务。JVM Spring Boot MySQL 监控 Laravel 监控
Import
即导入,在出现的界面中填入 1860
即我们要导入的仪表盘编号即可。第 3 步 - 生成和创建新的仪表盘
如何在各种语言中记录你关注的数据?
包括如何用 Prometheus 查询数据
如何手动生成一个仪表盘
Dashboard
就可以进入添加仪表盘的界面。scrape_duration_seconds
,先不用管它的含义是什么,就当它是双 11 的销售额好了:Apply
或 Save
你的仪表盘就被保存了。这时候,用一个大屏幕展示一下,庆祝一下双十一又过了千亿吧6. 总结
How to explore prometheus with easy hello world projects[11] Node Exporter Guide[12] Grafana Tutorials[13] Grafana Simple Synthetic Monitoring[14] Grafana 快速入门[15]
参考资料
卡拉搜索: https://kalasearch.cn/
[2]博客: https://kalasearch.cn/blog
[3]Demo: https://kalasearch.cn/
[4]Grafana 教程代码: https://github.com/Kalasearch/grafana-tutorial
[5]https://github.com/Kalasearch/grafana-tutorial: https://github.com/Kalasearch/grafana-tutorial
[6]一张图: https://medium.com/@bhargavshah2011/monitoring-docker-containers-using-cadvisor-and-prometheus-5350ae038f45
[7]技术博客: https://kalasearch.cn/blog
[8]https://grafana.com/grafana/dashboards: https://grafana.com/grafana/dashboards
[9]https://grafana.com/grafana/dashboards/1860: https://grafana.com/grafana/dashboards/1860
[10]卡拉搜索首页: https://kalasearch.cn/
[11]How to explore prometheus with easy hello world projects: https://grafana.com/blog/2019/12/04/how-to-explore-prometheus-with-easy-hello-world-projects/
[12]Node Exporter Guide: https://prometheus.io/docs/guides/node-exporter/
[13]Grafana Tutorials: https://grafana.com/tutorials/
[14]Grafana Simple Synthetic Monitoring: https://grafana.com/blog/2019/06/18/grafana-tutorial-simple-synthetic-monitoring-for-applications/
[15]Grafana 快速入门: https://ken.io/note/grafana-quickstart-influxdb-datasource-graph