告别服务器失联!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

Flutter for OpenHarmony: Flutter 三方库 shamsi_date 助力鸿蒙应用精准适配波斯历法(中东出海必备)

Flutter for OpenHarmony: Flutter 三方库 shamsi_date 助力鸿蒙应用精准适配波斯历法(中东出海必备)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的全球化(Internationalization)应用开发时,进军中东市场(尤其是波斯语地区)是一项充满潜力的战略。但在这些地区,用户习惯使用的并非公历(Gregorian),而是 波斯历(Shamsi/Jalali)。 1. 如何将用户的生日从公历转换成波斯历? 2. 鸿蒙应用的时间轴、日历选择器如何呈现 Jalali 格式? 3. 业务系统中的合同到期日如何按波斯历进行逻辑计算? shamsi_date 是 Dart 生态中处理波斯历法的权威库。它提供了极其简单的转换 API,是你开发鸿蒙出海应用、打入中东市场的关键技术补丁。 一、历法转换算法模型 shamsi_date 实现了公历与波斯历之间的双向精准映射。 Conversion Conversion 公历 (2024-02-20) 波斯历 (1402-12-01)

By Ne0inhk
Windows+Ubuntu 双系统安装超详细保姆级教程2026,包括系统安装、英伟达独显驱动安装以及双系统时间同步的所有过程

Windows+Ubuntu 双系统安装超详细保姆级教程2026,包括系统安装、英伟达独显驱动安装以及双系统时间同步的所有过程

本篇教程从镜像下载开始撰写。如果电脑是带有独立显卡的话,后文也有安装独显驱动的教程。同时双系统安装完成后,会遇到 Windows 系统下每次开机时间都不对的问题,也在教程后最后一并解决。开始之前请先准备好一个 16 GB 以上的 U 盘。后续也将更新帖子如何彻底完全卸载 Ubuntu。 电脑配置:Windows 11 25H2 家庭中文版,OMEN 暗影精灵 11,5060 显卡。 1. 安装盘制作 1.1 镜像下载 根据自己的需求自备一个 Ubuntu 系统镜像,或者直接去 Ubuntu 中文官网 https://ubuntu.cn/download 下载 Ubuntu 桌面系统镜像。我在这里直接下载 25.10 版本。 1.2

By Ne0inhk
大数据场景时序数据库选型指南——Apache IoTDB实践与解析

大数据场景时序数据库选型指南——Apache IoTDB实践与解析

在数字化转型持续推进的过程中,时序数据已经成为工业物联网、能源监控、大数据分析等场景中的核心数据类型。这类数据具备时间有序、采集频率高、数据总量大、查询多以时间范围为主等特点,传统关系型数据库在处理这类数据时,往往会面临写入压力大、存储成本高、查询效率不足等问题。因此,选择一款适配业务场景的时序数据库,已经成为大数据架构设计与物联网系统建设中的重要环节。 目录 一、大数据场景时序数据库选型的通用思路 二、Apache IoTDB产品定位与客观介绍 三、Apache IoTDB基础使用代码示例 四、时序数据库选型总结 本文从大数据场景的实际需求出发,梳理时序数据库选型的通用思路,并对Apache IoTDB这款面向物联网与大数据场景的时序数据库进行客观介绍,同时提供基础使用示例,为技术选型提供参考。 一、大数据场景时序数据库选型的通用思路 在进行时序数据库选型时,不需要盲目追求单一指标,而是结合自身业务规模、技术栈、运维能力、成本预算等维度综合判断,以下是行业内通用的选型关注点。 1. 写入与存储适配性 时序数据的典型特征是持续高频写入,选型时需要关注数据库对高并发

By Ne0inhk
OpenWrt部署Docker的硬核实战:内核适配调试全攻略与资源优化实战技巧

OpenWrt部署Docker的硬核实战:内核适配调试全攻略与资源优化实战技巧

文章目录 * 前言 * 一、OpenWrt 与 Docker 的集成前提 * 1.1 硬件与内核要求 * 1.2 软件依赖 * 二、Docker 环境部署与验证 * 2.1 基础服务配置 * 2.2 存储驱动适配 * 三、容器化应用部署实践 * 3.1 资源限制策略 * 3.2 Docker Compose 适配 * 四、性能优化与监控 * 4.1 容器资源监控 * 4.2 镜像精简策略 * 五、典型问题解决方案 * 5.1 端口冲突处理 * 5.2 低性能设备适配 * 六、内网穿透远程访问

By Ne0inhk