Prometheus+Grafana监控框架搭建(上)

Prometheus+Grafana监控框架搭建

背景:之所以整这个东西,是因为手里正好负责着一批服务器。需要时常对这些机器的状态进行巡检。如果每一台都打开执行命令查看状态的话确实有些麻烦。因此网上找到了系统监控的工具Prometheus+Grafana,可以对服务器的cpu、内存、数据盘、网络......等参数进行监控,另外还可以对数据库、nginx、redis、mq等中间件进行监控,下面记录下安装过程。

1.安装Prometheus

1.1 下载安装包

Download | Prometheus打开官网下载链接,选择最新版本安装。这边下载的是prometheus-2.53.0.linux-amd64.tar.gz版本。

1.2 服务器安装、配置、启动

Linux 复制代码
tar xvfz prometheus-2.53.0.linux-amd64.tar.gz
cd prometheus-2.53.0.linux-amd64  
mv prometheus-2.53.0.linux-amd64 /usr/local/prometheus

/usr/local/prometheus目录下启动

ini 复制代码
./prometheus --config.file=prometheus.yml

加入服务配置文件,便捷启动

bash 复制代码
vi /usr/lib/systemd/system/prometheus.service

加入以下内容

ini 复制代码
[Unit]  
Description=[https://prometheus.io](https://prometheus.io/)

[Service]  
Restart=on-failure  
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml

[Install]  
WantedBy=multi-user.target

服务启动 后续可以在任意目录下执行systemctl start prometheus.service启动prometheus服务

sql 复制代码
systemctl daemon-reload  
systemctl start prometheus.service

访问测试:IP+9090端口 确保9090未被占用且已开启安全组

2.配置监控服务

2.1 全局配置文件简介

有关配置选项的完整,请参阅:prometheus.io/docs/promet...

2.2 设置自身监控

yaml 复制代码
  - job_name: "prometheus"
    scrape_interval: 5s
    static_configs:
      - targets: ["localhost:9090"]

执行配置检查:

arduino 复制代码
./promtool check config prometheus.yml

重启服务

可以用kill -hup 进程id 自动加载新配置文件

查看效果:看到job_name名为prometheus的信息且状态正常说明配置成功。

2.3 其他服务器监控

prometheus.yml配置文件新增服务监控配置 使用file_sd_configs,写监控配置文件,服务发现node节点

yaml 复制代码
  - job_name: "node"
    file_sd_configs:
      - files: ['/usr/local/prometheus/sd_config/node.yml']
        refresh_interval: 5s

/usr/local/prometheus/sd_config目录下创建node.yml文件,增加要监控的服务器Ip,和node_exporter端口9100(节点导出器,后续中间件什么的都以XXXX_exporter命名)

exporter列表:prometheus.io/docs/instru...

markdown 复制代码
- targets:
  - 192.168.0.24:9100
  - 192.168.0.25:9100
  - 192.168.0.26:9100
  - 192.168.0.27:9100

配置重启查看:你会发现4台都是DOWN状态,是因为我们还没有在监控的节点上安装node_exporter

4台监控节点安装 node_exporter 下载安装包: Download | Prometheus

bash 复制代码
tar zxf  node_exporter-1.8.1.linux-amd64.tar.gz
mv node_exporter-1.8.1.linux-amd64  /usr/local/node_exporter

方便管理服务,将宿主机节点监控采集node_exporter加入到服务配置文件里

vi /usr/lib/systemd/system/node_exporter.service

ini 复制代码
[Unit]  
Description=[https://prometheus.io](https://prometheus.io/)

[Service]  
Restart=on-failure  
ExecStart=/usr/local/node_exporter/node_exporter

[Install]  
WantedBy=multi-user.target

执行:systemctl start node_exporter.service 另外三台同样操作。

3.使用grafana前端展示数据

  1. docker安装grafana(我选的Prometheus同一台机器)
css 复制代码
docker run -d --name=grafana -p 3000:3000 grafana/grafana

访问 IP+3000,密码账号都是admin,第一次登陆需要修改密码

2.选择Prometheus数据源

3.添加监控宿主机模板

模板网站, grafana.com/dashboards/

现以9276模板为例子

完成,查看最后模板效果

4.参考文章:

Prometheus完整搭建及实战各种监控_prometheus监控部署-CSDN博客 Prometheus+Grafana普罗米修斯,搭建和使用_普罗米修斯grafana-CSDN博客

相关推荐
平凡但不平庸的码农43 分钟前
Go 错误处理详解
开发语言·后端·golang
请你喝可乐2 小时前
AI Agent Skill 高阶使用指南:从入门到精通
后端
用户962377954482 小时前
代码审计 | Struts2 —— S2-016 OGNL 注入原理
后端
9号达人2 小时前
为什么你应该在 MQ 里用多个消费者,而不是一个
java·后端·架构
阿星做前端2 小时前
重度 AI 编程用户的一天:我怎么把 Claude Code / Codex 工作流搬进浏览器工作台
前端·javascript·后端
代码羊羊3 小时前
Rust 类型转换全方位通俗易懂指南(as、TryInto、强制转换、Transmute)
后端·rust
jay神3 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统
星栈3 小时前
Rust 全栈一个 main.rs 搞定启动:migration + CQRS + 投影监听,部署只需一个二进制
后端·架构
Penge6663 小时前
一文理清 Mac/Linux 终端配置文件(.bash_profile, .bashrc, .zshrc)
后端
Rust研习社3 小时前
Rust 性能陷阱:那些看起来很优雅但很慢的写法(上)
后端·rust·编程语言