news 2026/6/11 3:29:44

Prometheus和Granafa监控方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Prometheus和Granafa监控方案

Prometheus和Granafa监控方案

介绍

Prometheus本身不会直接去抓取应用指标,而是通过对应的Exporter来暴露指标。因此,我们需要在服务器上部署相应的Exporter,并确保它们正在运行且暴露指标在特定端口。

Prometheus通过应用暴露的指标获取数据,Grafana连接到Prometheus的数据库,并将其数据可视化的展示,以此达到可视化监控的目的

因云服务器无图形化窗口,本次方案思路:1.Prometheus和所有的exporter只监听本地127.0.0.1,外部无法直接访问2.安装Grafana,配置监听本地3.Grafana中添加数据源4.在本机通过ssh隧道将服务器的Grafana端口(3000)映射到本地的端口(3000)5.本机可通过localhost:3000访问Grafana

1.安装Prometheus(监控端)

软件官网: [https://prometheus.io/download/]

1.安装

# 创建监控专用目录(如果不存在)自定义软件安装目录mkdir-p /opt/monitoringcd/opt/monitoringmv软件包位置 /opt/monitoringtar-zxf prometheus-3.7.3.linux-amd64.tar.gzcdprometheus-3.7.3.inux-amd64/

2.创建专用用户和目录

# 创建系统用户useradd--no-create-home --shell /bin/false prometheus# 创建必要的目录mkdir-p /etc/prometheusmkdir-p /var/lib/prometheus# 设置目录权限chownprometheus:prometheus /etc/prometheuschownprometheus:prometheus /var/lib/prometheus
cdprometheus# 安装二进制文件cpprometheus /usr/local/bin/cppromtool /usr/local/bin/# 设置权限chownprometheus:prometheus /usr/local/bin/prometheuschownprometheus:prometheus /usr/local/bin/promtoolchmod+x /usr/local/bin/prometheuschmod+x /usr/local/bin/promtool

3.编辑配置文件

cpprometheus.yml /etc/prometheus/prometheus.ymlvim/etc/prometheus/prometheus.yml global: scrape_interval: 15s# 全局默认抓取间隔evaluation_interval: 15s# 规则评估间隔(如报警规则)scrape_configs:# 监控 Prometheus 自身- job_name:'prometheus'# 覆盖此任务的全局抓取间隔scrape_interval: 15s static_configs: - targets:['127.0.0.1:9090']# Prometheus 自身服务地址,默认为localhost# 设置配置文件权限chownprometheus:prometheus /etc/prometheus/prometheus.yml

4.配置service启动文件

cat>/etc/systemd/system/prometheus.service<<'EOF' [Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus/ \ --web.listen-address=127.0.0.1:9090 Restart=always [Install] WantedBy=multi-user.target EOF

5.启动和测试

# 重新加载 systemdsystemctl daemon-reload# 启用服务systemctlenableprometheus# 启动服务systemctl start prometheus# 检查状态systemctl status prometheus#active即成功

6.查看日志(如果有问题)

# 查看实时日志journalctl -u prometheus -f# 或者查看最后20行日志journalctl -u prometheus -n20--no-pager

2.安装被监控端

Node Exporter(系统监控)

1.下载,往下翻就有

2.安装 Node Exporter

mkdir-p /opt/monitoringcd/opt/monitoringmv软件包位置 /opt/monitoringtar-zxf node_exporter-1.7.0.linux-amd64.tar.gzcdnode_exporter-1.7.0.linux-amd64# 复制二进制文件cpnode_exporter /usr/local/bin/chmod+x /usr/local/bin/node_exporter# 创建系统用户(如果不存在)useradd--no-create-home --shell /bin/false node_exporter2>/dev/null||truechownnode_exporter:node_exporter /usr/local/bin/node_exporter

3.创建 Node Exporter 服务(默认为localhost)

cat>/etc/systemd/system/node_exporter.service<<'EOF' [Unit] Description=Node Exporter After=network.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter \ --web.listen-address=127.0.0.1:9100 \ --collector.systemd \ --collector.systemd.unit-whitelist="(nginx|mysql|ssh).service" Restart=on-failure [Install] WantedBy=multi-user.target EOF

4.启动 Node Exporter

systemctl daemon-reload systemctlenablenode_exporter systemctl start node_exporter systemctl status node_exporter

Nginx Exporter 服务

1.下载与安装

cd/opt/monitoring# 下载 Nginx Exporterwgethttps://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz# 解压tarxzf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gzcpnginx-prometheus-exporter /usr/local/bin/chmod+x /usr/local/bin/nginx-prometheus-exporter# 创建系统用户(如果不存在)useradd--no-create-home --shell /bin/false nginx_exporter2>/dev/null||truechownnginx_exporter:nginx_exporter /usr/local/bin/nginx-prometheus-exporter

2.创建 Nginx Exporter 服务

cat>/etc/systemd/system/nginx_exporter.service<<'EOF' [Unit] Description=Nginx Exporter After=network.target [Service] User=nginx_exporter Group=nginx_exporter Type=simple ExecStart=/usr/local/bin/nginx-prometheus-exporter \ -nginx.scrape-uri http://127.0.0.1:8080/nginx_status \ -web.listen-address 127.0.0.1:9113 Restart=on-failure [Install] WantedBy=multi-user.target EOF

3.配置 Nginx 状态页面

vim/usr/local/nginx/conf/nginx.conf#添加一段新serverserver{listen127.0.0.1:8080;server_name localhost;location /nginx_status{stub_status on;access_log off;allow127.0.0.1;deny all;}#重启nginx服务systemctl restart nginx

4.启动 Nginx Exporter

systemctl daemon-reload systemctlenablenginx_exporter systemctl start nginx_exporter systemctl status nginx_exporter

同理可安装所需exporter使用

3. 更新 Prometheus 配置

vim /etc/prometheus/prometheus.ymlscrape_configs:# 监控 Prometheus 自身-job_name:'prometheus'static_configs:-targets:['127.0.0.1:9090']# 监控系统指标-job_name:'node_exporter'static_configs:-targets:['127.0.0.1:9100']labels:instance:'web-server-01'environment:'production'# 监控 Nginx-job_name:'nginx'static_configs:-targets:['127.0.0.1:9113']labels:instance:'web-server-01'environment:'production'#注意缩进,对照原有的就行
# 设置权限chownprometheus:prometheus /etc/prometheus/prometheus.yml# 检查配置语法/usr/local/bin/promtool check config /etc/prometheus/prometheus.yml# 重启 Prometheus 以应用新配置systemctl restart prometheus systemctl status prometheus

检查所有服务状态

systemctl status prometheus systemctl status node_exporter systemctl status nginx_exporter

有图形化的可以通过设置的监控Prometheus本身的IP和端口访问

如 http://127.0.0.1:9090/targets 访问

4.Grafana可视化

1.下载安装

yuminstall-y grafana#或下载rpm包上传到服务器,使用yun本地安装yum localinstall -y 包名

2.启动并启用服务

systemctl daemon-reload systemctl start grafana-server systemctlenablegrafana-server

3.检查状态

systemctl status grafana-serve#active就行ss -ntl

可以看到服务都成功启动

4.本地浏览器测试

#建立ssh隧道 x是服务器ip,将服务器本地的3000端口映射到本地3000端口(win用cmd就行)ssh-L3000:localhost:3000 root@x.x.x.x 登录后不要关闭cmd 本地浏览器访问localhost:3000 登录默认密码 admin admin 提示改密码,想改可以改,我是skip

5.添加数据源

填刚查询的Prometheus地址

保存后添加仪表盘

最后就成功了


可以更换合适的仪表盘

效果图

接下来还可以进行监控报警便不做展示

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 18:26:30

嵌入式-硬件基础:了解三极管

目录 一、三极管的本质&#xff1a;半导体电流控制器 1. 核心定义 2. 结构与材料 3. 两种类型&#xff1a;NPN 型 vs PNP 型 二、工作原理&#xff1a;“以小控大” 的核心逻辑 1. 导通的前提&#xff1a;正确偏置 2. 载流子的运动过程&#xff08;三步曲&#xff09; …

作者头像 李华
网站建设 2026/6/10 1:00:18

【Java方法】--让你的代码变成一个独立的“任务”——方法

个人主页 目录前言1. 什么是方法&#xff1f;为什么我们需要它&#xff1f;2. 如何定义一个Java方法&#xff1f;**代码示例&#xff1a;**3. 如何调用方法&#xff1f;**代码示例&#xff1a;**4. 拓展&#xff1a;命令行传递参数**如何使用&#xff1f;**结尾前言 想象一下&a…

作者头像 李华
网站建设 2026/6/9 14:25:22

5分钟用vue.config.js搭建开发环境原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请快速生成一个可用于原型开发的vue.config.js配置&#xff0c;要求&#xff1a;1. 配置热重载 2. 设置/api代理到本地3000端口 3. 允许跨域 4. 配置ESLint自动修复 5. 添加vue-rou…

作者头像 李华
网站建设 2026/6/8 13:14:14

小白必看:什么是WiFi密码字典及其基本用法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个交互式WiFi密码字典学习应用&#xff0c;通过简单示例演示密码字典的工作原理。要求包含基础知识讲解、简单字典生成演示和实际应用场景说明。使用HTMLJavaScript实现可视化…

作者头像 李华
网站建设 2026/6/10 1:57:17

传统调试 vs AI辅助:解决Internal Server Error的效率对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 构建一个对比工具&#xff0c;左侧展示传统调试步骤&#xff08;查看日志、手动排查等&#xff09;&#xff0c;右侧展示AI辅助调试流程&#xff08;自动分析、建议修复&#xff09…

作者头像 李华
网站建设 2026/6/10 21:41:07

系统迁移时如何处理Temp文件夹?专家建议

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个系统迁移辅助工具&#xff0c;专门处理Temp目录&#xff1a;1) 分析临时文件使用情况 2) 智能识别需要保留的文件 3) 生成迁移报告 4) 支持自定义过滤规则 5) 与主流迁移工…

作者头像 李华