搭建监控系统Prometheus + Grafana
公司有个技术分享会,但是业务忙,没时间精心准备,所以就匆匆忙忙准备分享一下搭建(捂脸哭)。技术含量确实不多,但是分享的知识确实没问题。
以下是搭建过程:
一、讲解 Prometheus
- Prometheus 最初是 SoundCloud 构建的开源系统监控和报警工具,是一个独立的开源项目,于2016年加入了 CNCF 基金会,作为继 Kubernetes 之后的第二个托管项目。Prometheus 相比于其他传统监控工具主要有以下几个特点:
- 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型
- 有一个灵活的查询语言
- 不依赖分布式存储,只和本地磁盘有关
- 通过 HTTP 的服务拉取时间序列数据
- 也支持推送的方式来添加时间序列数据
- 还支持通过服务发现或静态配置发现目标
- 多种图形和仪表板支持
- Prometheus 由多个组件组成,但是其中有些组件是可选的:
- Prometheus Server:用于抓取指标、存储时间序列数据
- exporter:暴露指标让任务来抓
- pushgateway:push 的方式将指标数据推送到该网关
- alertmanager:处理报警的报警组件 adhoc:用于数据查询
大多数 Prometheus 组件都是用 Go 编写的,因此很容易构建和部署为静态的二进制文件。下图是 Prometheus 官方提供的架构及其一些相关的生态系统组件:
时序数据库:时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。是新型的非关系型数据库,在大数据时代有着十分重要的意义。
环境:windows
包版本:
- prometheus-3.0.0-beta.0.windows-amd64
- grafana-enterprise-11.2.2.windows-amd64
- alertmanager-0.27.0.windows-amd64
- blackbox_exporter-0.25.0.windows-amd64
二、启动并访问自带 web-UI
1、 启动方式:双击“prometheus.exe”
2、访问:promethesu的UI默认访问地址:ip:9090
3、执行 PromeSql
Tables:表
- Pro 是否准备完毕:prometheus_ready
- Pro 构建信息:prometheus_build_info
Graph:图
- Pro CPU 使用时间:process_cpu_seconds_total
- 最大打开文件描述符数:process_max_fds
三、 启动 Grafana
- 启动 Grafana,双击:./bin/grafana-server.exe
- 访问地址:localhost:3000
初始账户密码:admin/admin
- 初次安装需要修改密码,按照提示修改即可。登录后正常访问效果图如下:
- 汉化(先关闭)
- 修改defaults.ini文件,文件处于./conf目录下,修改前建议备份。
- 当前版本某些组件默认不启用,导致一些开源的仪表盘显示为空。
故需要在“[feature_toggles]”下添加配置:autoMigrateOldPanels = true
- 汉化:修改 “default_language = zh-Hans”
- 在 Grafana 设置中修改默认语言为中文
四、Grafana 配置Prometheus
- 添加新数据源
- 配置
- 成功如图
五、在Grafana配置仪表盘(Dashboard)
1、导入常见的Dashboard
任意Dashboard,无需数据源可导入,但是展示的内容是默认值。
同类型的多个监控目标,例如node监控,可以在适配的Dashboard切换观看。
- 选择导入
- 到官方查看官方提供的仪表盘
- 选择一个需要的仪表盘
- 下载仪表盘的json配置
- 打开下载的json文件,粘贴到第二步对应的方框内。
- 即可生成node常用应用程序的仪表盘
- 导入JVM及其它仪表盘:重复步骤1
2、自定义仪表盘(就是点点点)
- 新建仪表盘
- 添加可视化面板
- 选择数据源
- 自定义仪表盘
- 保存或应用
- 效果如图:添加其它可视化表重复1~6步
六、JAVA 应用程序 + 使用 Prometheus
见 IDEA