开源监控和告警系统 Prometheus

好久不见

发布于463天前
这个人很懒,什么都没有留下!
# 介绍
Prometheus 是一套开源的监控、报警、时间序列数据库的组合,Go语言开发。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。

Prometheus 可以与其他工具如 Grafana 、Exporter 配合使用,以实现更强大的可视化监控功能。

应用介绍
grafana:看板工具,所有采集的性能数据都会展示在这个看板上。
Prometheus:监控系统,数据的采集、存储、查询等主要功能都是在它这里。
node_exporter:其是Prometheus的一个采集组件,可以用来采集机器上的数据,并暴露接口给Prometheus,以此将数据传过去。


## 应用安装和配置
### 安装 Prometheus

https://appstore.lazycat.cloud/#/shop/detail/app.ikw.lzc.prometheus

prometheus 安装成功后会在网盘中创建一个 prometheus 目录,在目录中有对应的yml配置文件。界面展示:

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/db12dd80-242e-404b-895f-1b7e4153f309.png "image.png")


### 安装 Node_exporter

https://appstore.lazycat.cloud/#/shop/detail/app.ikw.lzc.nodeexporter

应用安装完成后界面展示:

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/e992920c-7c1f-4673-b77e-40da7aba6b51.png "image.png")

### 安装 Grafana

https://appstore.lazycat.cloud/#/shop/detail/dev.beiyu.grafana

应用安装完成后,默认用户名和密码: admin / admin ,首次登录成功后需要修改密码。界面显示如下:

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/c5aa8755-0fa8-43a7-bde1-f829767233a9.png "image.png")


## 端口转发
所有应用安装完成后,此时我们还需要用到一个应用:端口转发工具

### 添加 Nodeexporter 转发

局域网出口类型中选择: 微服虚拟网卡
微服虚拟网卡端口:9100 

转发目标类型:微服应用
微服应用选择:Nodeexporter 传输:tcp  端口:9100 

添加完成后点击测试,弹出绿色弹窗表示端口可以正常转发成功。 


![image.png](https://dl.playground.lazycat.cloud/guidelines/62/425d1452-0f12-4077-9738-07f52a5aee40.png "image.png")

### 添加 Prometheus 转发

局域网出口类型中选择: 微服虚拟网卡
微服虚拟网卡端口:9090

转发目标类型:微服应用
微服应用选择:Prometheus 传输:tcp  端口:9090 

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/d3a96369-fbea-4f76-95c3-14d2ad9b9dce.png "image.png")

## Prometheus 配置

进入到网盘 -> prometheus 编辑 prometheus.yml ,在文件末尾添加如下配置:
```
  - job_name: "linux-node"
    static_configs:
      - targets: ["host.lzcapp:9100"]
```

这一步主要是将宿主机节点监控采集 node_exporter 加入到服务配置文件中。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/5e7ce4a5-408a-43f8-8572-654c671d4790.png "image.png")

添加完成后保存,重启 prometheus 应用 (先在应用管理中停止运行,然后在启动器中点击 prometheus 启动)

应用启动完成后,进入到应用中可以看到监控指标说明获取数据成功。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/6ae47371-1ca5-4256-b2e9-acc3a8f6c287.png "image.png")

## Grafana 配置
登录 Grafana 点击左侧列表,选择 Connections -> Add new connection ,在右边搜索 Prometheus 找到并安装。 

![Snipaste_2025-02-25_16-53-22.png](https://dl.playground.lazycat.cloud/guidelines/62/caf19369-6378-429e-92cf-316b60fb41d1.png "Snipaste_2025-02-25_16-53-22.png")

安装完成后点击右上角“Add new data source” 

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/6697f031-85ad-4067-ac15-a8bb9092236b.png "image.png")

填写 Name 和 Connection,这里的 Connection 填写端口转发的地址:
http://host.lzcapp:9090

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/52c960e0-e6e7-4caf-b0fd-4d9cdf687c00.png "image.png")

最后点击底部的 save and test,提示 successfully 表示配置成功。 

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/8c915ea0-9be8-401d-8c34-7f4a0c4e0cf5.png "image.png")

点击右上角 + 添加 Prometheus 模板

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/3201d7e5-5eb3-4a7e-9b71-af4e68f58113.png "image.png")

这里可以从官网下载 json 模板导入或直接输入 ID 进行导入, 这里就直接输入 ID 1860 下载导入。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/8d799496-b9c1-4c4b-9cee-345d81b74ce2.png "image.png")

下载完成后,选择 Prometheus (注意:这里要选择是刚才创建的connection),选择完成后点击 import 即可。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/87af258e-a5d0-4e09-a101-c73448ddb497.png "image.png")

导入完成后既可以看到对应的数据了。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/f7ccd2f7-e26a-47f9-9813-adcea55a2aeb.png "image.png")

更多 grafana 模板: https://grafana.com/grafana/dashboards  搜索 dashboards 的 id 如8919,12227, 249 等。

![image.png](https://dl.playground.lazycat.cloud/guidelines/62/bb9baa8d-588c-48b2-93dc-1c8a3034df96.png "image.png")

**注意事项:**
1.端口转发工具需要应用启动,才能正常进行端口转发,检测到应用没有启动会转发失败
2.yml 配置文件必须严格按照格式来配置,否则会导致 prometheus 应用无法启动
3.Node_exporter 可以用 ProcessExporter 来替代,但是需要先配置一下应用,然后再进行端口转发。
4.端口转发需要注意每一个应用暴露出来的端口,prometheus 端口是:9090 ; Nodeexporter 端口是:9100 ;ProcessExporter 端口是:9256
5.并不是所有的模板都会有数据,根据自己需要选择导入。

评论

1
Lynx81天前

非常有帮助。就是需要不少手动工作,希望未来可以自动完成。或者让AI自动配置好。

说点什么呢~
收藏
1
1
0