告别服务器失联!Prometheus+cpolar 让监控告警走出内网

告别服务器失联!Prometheus+cpolar 让监控告警走出内网

在这里插入图片描述


在这里插入图片描述

Prometheus、node_exporter、Alertmanager 是一套适配性很强的服务器监控告警组合,Prometheus 能精准采集 CPU、内存等核心指标,node_exporter 轻量化收集服务器硬件数据,Alertmanager 可分类推送告警信息,这套组合适合个人服务器持有者、中小企业运维人员使用,优点在于开源免费、配置灵活,能 7×24 小时自动监控,提前预警服务器异常。

使用这套工具时发现,配置告警规则要贴合实际使用场景,比如针对个人博客服务器,重点监控网络连通性和磁盘空间即可,无需过度配置冗余规则,否则易收到无效告警;另外首次部署时要注意各组件版本兼容,避免因版本不匹配导致数据采集失败。

在这里插入图片描述

不过这套监控系统仅靠自身只能在局域网内访问,比如个人在家搭建的服务器,出门后既看不到监控数据,也收不到及时的告警提醒,小团队里异地办公的成员也无法协同查看服务器状态,遇到半夜服务器硬盘满了的情况,只能等第二天到公司才能处理,容易造成业务中断。

而将这套监控系统与 cpolar 结合后,无需申请公网 IP、不用配置路由器端口映射,就能给监控系统分配公网访问地址,不管是出门在外用手机查看服务器状态,还是团队成员异地协同处理告警,都能轻松实现,彻底打破了局域网的使用限制。

在这里插入图片描述

1+1+1+1>4,这就是软件之间组合的魅力。方法如下,请笑纳😊

1.在Centos7上安装Alertmanager

在安装alertmanager前需要安装node_exporter和prometheus,没有安装的小伙伴可以参考这篇文章!

prometheus:监控不再局域网!Cpolar 让 Prometheus 走出内网限制! - cpolar 极点云官网

node_exporter:无需公网IP:利用node_exporter和cpolar实现服务器状态的远程监控

接下来跟我进入监控告警的世界吧!

去官网下载安装文件:https://prometheus.io/download/

找到linux版,下载:

761b1e9a0f02ded41caeaea93e32d864

下载完成后记住下载路径。

创建alertmanager的目录:

mkdir -p /app/alertmanager 
f8c717b425a395107773cf778bd8d6b8

进入到这个目录:

cd /app/alertmanager 
94ecb4db880bb7bf6ae9aca7d7910084

手动上传下载好的alertmanager文件。

fe4692990117466cc90b00ba65d33f83
044d074a697f7f58fa3b334bc2b19073
36051d12c8d2ff92181d77519c859366

上传成功后解压:

tar -vxzf alertmanager-0.28.1.linux-amd64.tar.gz 
f90907fcfee2cffaea4a840fbee5f8b3

改名方便记忆:

mv alertmanager-0.28.1.linux-amd64 alertmanager 
af6d82c62279373693371737d0f54502

将Altermanager配置为系统服务:

cd /usr/lib/systemd/system 
vim alertmanager.service 
[Unit]Description=https://prometheus.io [Service]Restart=on-failure ExecStart=/app/alertmanager/alertmanager --config.file=/app/alertmanager/alertmanager.yml [Install]WantedBy=multi-user.target 
59dc63e6bcee33da5b24b5d6358c2e2e

加载system文件,启动alertmanager这个服务,并设置开机启动:

systemctl daemon-reload systemctl start alertmanager.service systemctl enable alertmanager.service 
b0e1e9484b6e2b3d6030d33858bb96c2

也可以后台手动启动:

nohup ./alertmanager --config.file=alertmanager.yml >> /app/alertmanager/alertmanager/alertmanager.out 2>&1&cat alertmanager.out 
4bf5cbad0d069199181e2444efe8db21

启动成功后,访问Altermanager,ip+9093,默认端口为 9093。

737d29235bf3c4e7a16ec3486d097511

假如,我们想用手机或者平板,随时随地可以查看告警消息,我们应该怎么做呢?接下来cpolar就派上用场啦!

2.安装cpolar实现随时随地开发

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudocurl https://get.cpolar.sh |sh
4dd1a1c4a992b859e849d305dcb43014

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar 
22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.42.101:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

3.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:alertmanager,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:9093
  • 域名类型:随机域名

地区:选择China Top

image-20250820160631504

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20250820160715032

访问成功。

image-20250820160752997

4.在prometheus上配置alertmanager

进入prometheus的配置文件,加入alertmanager告警规则:

vi /app/prometheus/prometheus.yml 

加入以下内容后:Prometheus可以通过这个公网地址4246d47e.r2.cpolar.top(刚才用cpolar打通的公网地址,也可以用localhost:9093)访问到运行在本地9093端口的Alertmanager服务,从而抓取系统指标。

 - targets: ["4246d47e.r2.cpolar.top"] labels: app: "alertmanager"

这一步配置的作用是:告诉 Prometheus,当监控规则触发告警时,应该把告警信息发送到哪个 Alertmanager 服务进行处理(便于一会监控node_exporter,也可以监控mysqld_exporter等等)。

alerting: alertmanagers: - static_configs: - targets: ["4246d47e.r2.cpolar.top"]
image-20250820161344244

重新启动prometheus:

systemctl restart prometheus 

抓取成功!

image-20250820162324249

5.利用alertmanager来配置node_exporter告警

在第四章节,我们已经成功配置告警信息发送到alertmanager,接下来我们来验证一下,是否可以成功发送!

我们这里举例,倘若node_exporter关闭则发送告警。

node_exporter还可以监控主机的 CPU 使用率,内存使用量,文件系统用量等等。

我们先改写prometheus的配置文件,改以下内容:

vi /app/prometheus/promethues.yml 
23fec955b3a101ae95c1a5ce836c15f2

进入到prometheus配置目录下,写一个配置文件1.yml:

vi /app/prometheus/1.yml 
groups: - name: node-alerts rules: # 实例宕机 - alert: node_exporter实例宕机 expr: up{job="node_exporter",instance="localhost:9100"}==0 for: 15s labels: severity: critical annotations: summary: "实例 {{ $labels.instance }} 已停止运行超过 15 秒!" description: "作业 {{ $labels.job }} 的实例 {{ $labels.instance }} 无法抓取。" - name: prometheus rules: # 实例宕机 - alert: 实例宕机 expr: up{job="prometheus"}==0 for: 15s labels: severity: critical annotations: summary: "实例 {{ $labels.instance }} 已停止运行超过 15 秒!" description: "作业 {{ $labels.job }} 的实例 {{ $labels.instance }} 无法抓取。"
f292d77a12edffc887e26bfb63a48b7a

重启prometheus:

systemctl restart prometheus 

打开prometheus网页,发现加入成功。

image-20250820163514504

接下来,我们验证一下,关闭node_exporter,会不会告警:

systemctl stop node_exporter 
b89182bfc1e62f8169f5c591577709fc

再次打开prometheus网页,告警成功:

image-20250820163952571

打开alertmanager网页,我们发现那两条告警也显示成功。

image-20250820164333859

这样我们就成功配置prometheus告警啦!

6.使用Alertmanager发送服务器告警至QQ邮箱

QQ 邮箱默认不允许外部应用直接使用密码登录SMTP服务器,因此你需要获取一个授权码

  • 登录QQ 邮箱,进入设置 -> 账户
  • 找到 SMTP/IMAP/POP3/Exchange 服务,开启 SMTP 服务
  • 开启后,会提示你获取一个授权码
b4188ced377a1f22dee5d12fb14f0f8f
59e1c190c33df3f374338acba306985e
f9c9f7206ec378e2ebc82c24e02957e3

接下来,我们进入alertmanager安装目录,修改alertmanager配置文件alertmanager.yml:

vi /app/alertmanager/alertmanager/alertmanager.yml 

添加以下内容来配置告警规则:

global: resolve_timeout: 5m smtp_from: '你的QQ邮箱' smtp_smarthost: 'smtp.qq.com:465' smtp_auth_username: '你的QQ邮箱' smtp_auth_password: '你的QQ邮箱授权码' smtp_require_tls: false smtp_hello: 'qq.com' route: group_by: ['alertname'] group_wait: 5s group_interval: 5s repeat_interval: 5m receiver: 'email' receivers: - name: 'email' email_configs: - to: '你的QQ邮箱' send_resolved: true
c09676a8fb0e2127a78eb8c2d9d5a144

这样有告警消息就可以发送到QQ邮箱啦!

我们来验证一下,配置有没有问题:

./alertmanager --config.file=alertmanager.yml --log.level=debug 

手动运行测试,没报错即正确!

e97ebe6d94284ca4025ad5d85664f3e3

重启alertmanager:

systemctl restart alertmanager systemctl status alertmanager 
6cc7b74df7722d9c71fb3b1d934bcd86

登录邮箱查看,node_exporter挂机是否发邮件:

2c07dc281f66cbfb77f17aa35eb1f5bf

接收到邮件,说明我们配置正确!

这样我们就可以随时随地查看告警信息了!

7.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

image-20250820165519668

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我这里演示使用的是alertmanager,大家可以自定义。填写备注信息,点击保留。

image-20250820165619773

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道alertmanager,点击右侧的编辑

image-20250820165703610

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250820165758226

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250820165831585

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的alertmanager页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250820165919036

有了cpolar我们可以在任意一台服务器,使用此alertmanager监控,你的同事=也可以一键监控!是不是特别方便呢~

结尾

Prometheus+node_exporter+Alertmanager 构建的监控告警体系,能切实解决服务器状态监测和异常提醒的核心需求,而 cpolar 则弥补了这套体系仅能在局域网使用的短板,让监控数据的访问、告警信息的响应不再受地域限制。对于个人管理少量服务器,或是中小企业简化运维流程的场景来说,这种组合既无需额外的硬件成本,又能有效提升服务器运维的及时性和便捷性,真正实现了低成本、高效率的服务器监控管理,让服务器的运行状态始终处于可掌控的范围内。

Read more

Node.js 版本管理全指南:卸载 Node、安装 NVM、常用命令及问题解决

Node.js 版本管理全指南:卸载 Node、安装 NVM、常用命令及问题解决

一、卸载现有 Node.js(避免版本冲突) 在安装 Node Version Manager (NVM) 前,必须彻底卸载电脑中已有的 Node.js(若从未安装可跳过此步骤),否则可能导致 NVM 管理失效或版本冲突问题。 1. Windows 系统卸载流程 步骤 1:通过控制面板卸载 Node.js 1. 按下 Win + R 组合键打开运行窗口 2. 输入 control 并回车打开「控制面板」 3. 导航至「程序」→「程序和功能」 4. 在程序列表中找到所有 Node.js 相关条目(可能有多个版本) 5. 对每个 Node.js

By Ne0inhk
RabbitMQ如何成为分布式系统的“神经中枢“?——从安装部署到C++调用实战的完整流程,带你体验它的奥妙所在!​

RabbitMQ如何成为分布式系统的“神经中枢“?——从安装部署到C++调用实战的完整流程,带你体验它的奥妙所在!​

文章目录 * 本篇摘要 * ①·RabbitMq(轻量级消息队列中间件) 介绍 * RabbitMQ 是什么? * 核心功能与特点 * 1. **核心功能** * 2. **核心优势** * RabbitMQ 的核心概念 * 1. **生产者(Producer)** * 2. **消费者(Consumer)** * 3. **队列(Queue)** * 4. **交换机(Exchange)** * 5. **绑定(Binding)** * 工作流程(以 Direct 交换机为例) * 常见应用场景 * RabbitMQ 与相关技术对比 * 图像理解 * 总结一句话 * ②·RabbitMq 安装教程 * RabbitMq安装 * **1. 安装 RabbitMQ** * **2. 启动 & 检查状态** * **3. 创建管理员用户(

By Ne0inhk
【OpenClaw从入门到精通】第12篇:OpenClaw 2026子代理实战全攻略:用ACP架构搭建多智能体协作网络(附完整代码)

【OpenClaw从入门到精通】第12篇:OpenClaw 2026子代理实战全攻略:用ACP架构搭建多智能体协作网络(附完整代码)

摘要:本文聚焦OpenClaw 2026.3.2版本默认启用的ACP(Agent Communication Protocol)子代理机制,从核心概念、底层原理到企业级实操全流程拆解。先解析子代理的定义、ACP协议通信原理及主从代理分工逻辑,再提供环境准备的详细步骤(版本验证、配置调整、技能安装);随后通过三个递进式虚拟案例(客服分流、智能文档处理、企业级招聘全流程),提供可直接运行的完整代码、执行结果及技术要点解析;最后补充子代理管理运维、性能优化与避坑指南。全文注重实用价值,语言通俗,新手可按步骤快速搭建基础子代理,进阶读者可参考企业级案例扩展复杂协作网络,真正实现AI从“单打独斗”到“军团作战”的升级。 优质专栏欢迎订阅! 【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】【YOLOv11工业级实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】【数字孪生与仿真技术实战指南】

By Ne0inhk
Mysql之事务(下)

Mysql之事务(下)

🏝️专栏:Mysql_猫咪-9527的博客-ZEEKLOG博客 🌅主页:猫咪-9527-ZEEKLOG博客  “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 5. 事务的隔离级别与并发控制 5.1事务的隔离级别 5.2查看与设置事务的隔离级别  查看全局隔离级别: 查看当前(会话)隔离级别 5.3读未提交(Read Uncommitted) 5.4读提交(Read Committed) 5.5可重复读(Repeatable Read) 5.6串行化(Serializable) 6.多版本并发控制(MVCC)   6.1数据库并发的三种场景及MVCC 6.2三个隐藏字段  6.3undo log 6.4READ VIEW 6.5事务简单流程

By Ne0inhk