无需公网 IP,用 cpolar 让 Prometheus 监控随时随地可及

文章目录

前言

Prometheus 是一款开源的系统监控工具,能实时收集服务器、应用的运行指标,生成直观报表,很适合运维人员、开发团队监控系统状态。它的优点在于配置灵活,可自定义监控项,且数据存储和查询功能强大。

使用 Prometheus 时,建议提前规划好监控目标和指标采集频率,避免数据量过大占用过多服务器资源。另外,初次配置时要仔细检查抓取规则,确保数据准确性。

不过,Prometheus 默认只能在局域网内访问,这给远程运维带来不少麻烦。比如出差时想查看服务器负载,就得依赖公司 VPN,若 VPN 权限受限或连接不稳定,就无法及时获取监控数据。

而将 Prometheus 与 cpolar 结合后,无需申请公网 IP 或设置复杂的端口映射,就能把本地监控面板安全暴露到公网。无论是在家办公还是外出,通过生成的公网地址,用手机或电脑都能随时查看监控数据,让远程运维更便捷。

下面就开始我们的安装流程!

1.安装prometheus

通过以下命令创建一个用于存放 Prometheus 的目录 /app:

shell 复制代码
mkdir /app

进入到/app目录下:

shell 复制代码
cd /app

从prometheus官网下载压缩文件:https://prometheus.io/download/

下载适用于Linux系统的文件。

使用的是 MobaXterm_Personal,这是一种功能强大的终端工具,常用于远程连接 Linux 服务器。

进入/app下面。

进入后点击这个"上传按钮",上传下载好的文件。

使用命令查看,我这里显示已经上传成功。

shell 复制代码
ls

给这个文件解压缩:

shell 复制代码
tar -xzvf prometheus-3.5.0.linux-amd64.tar.gz

将解压好的文件夹改一个名字,并删除原有的未解压文件(可以不删):

shell 复制代码
mv prometheus-3.5.0.linux-amd64 prometheus
rm -rf prometheus-3.5.0.linux-amd64.tar.gz

进入解压好并且改过名的prometheus目录下,查看它的版本。返回版本号代表安装成功!

shell 复制代码
cd /app/prometheus
./prometheus --version

创建prometheus 本地TSDB数据存储目录:

shell 复制代码
mkdir -p /var/lib/prometheus

进入这个目录,使用systemctl管理Prometheus:

shell 复制代码
vim /usr/lib/systemd/system/prometheus.service

写入:

shell 复制代码
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=root
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/app/prometheus/prometheus --config.file=/app/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • /app/prometheus/prometheus

    这是 Prometheus 的可执行文件路径。表示 Prometheus 主程序(二进制文件)存放在 /app/prometheus/ 目录下,文件名为 prometheus。

  • --config.file=/app/prometheus/prometheus.yml

    这是 Prometheus 的配置文件路径。

    --config.file 是一个启动参数,告诉 Prometheus 去哪里读取配置文件。

    /app/prometheus/prometheus.yml 是配置文件的路径,通常包含抓取目标(scrape targets)、采集间隔等配置。

  • --storage.tsdb.path=/var/lib/prometheus

    这是 Prometheus 存储时间序列数据的目录路径。

    --storage.tsdb.path 是指定本地存储路径的参数。

    Prometheus 使用一个叫 TSDB(Time Series Database) 的本地数据库来存储采集到的监控数据,默认路径是 /prometheus,你可以自定义为 /var/lib/prometheus 或其他路径。

  • systemctl enable prometheus

    复制代码
    将 Prometheus 服务设置为 开机自启动。
  • systemctl start prometheus

    复制代码
    立即启动 Prometheus 服务。
  • systemctl status prometheus

    复制代码
    查看 Prometheus 服务的 当前状态。
shell 复制代码
systemctl enable prometheus 
systemctl start prometheus
systemctl status prometheus

ip+端口就可以进入prometheus啦:

shell 复制代码
ip:9200

若出现打不开的情况,可以检查一下防火墙是否开启,是否拦截9090端口:

shell 复制代码
systemctl status firewalld

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

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

❤️以下是安装cpolar步骤:

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

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

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

shell 复制代码
sudo systemctl status cpolar

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

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

3.配置公网地址

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

  • 隧道名称:可自定义,本例使用了:prometheus,注意不要与已有的隧道名称重复

  • 协议:http

  • 本地地址:9090

  • 域名类型:随机域名

  • 地区:选择China Top

    点击创建:

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

访问成功。

4.保留固定公网地址

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

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

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

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

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

点击更新

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

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

这样,我们就可以随时随地监控,不用担心,在家无法监控设备!

总结

本文通过 Cpolar轻松突破 Prometheus 仅限于局域网访问的限制,实现外网随时随地访问监控数据。总结来说,本文介绍如何利用 Cpolar 快速搭建安全稳定的隧道,将本地 Prometheus 服务暴露到公网,无需复杂网络配置,即可实现远程监控,提升运维效率与灵活性。

通过 cpolar 实现 Prometheus 的公网访问,解决了局域网限制带来的不便,让监控变得灵活高效,适合各类需要远程关注系统状态的场景。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

相关推荐
承渊政道1 天前
自建服务越来越多怎么管理?Docker部署Flare,搭一个自己的数字入口
运维·docker·容器·内网穿透·cpolar·nas·flare
cpolar技术支持1 天前
喜欢的直播总要蹲点?用 bililive-go 在 NAS 后台自动录制直播并远程管理,再用 cpolar 让外地也能看回放
内网穿透·cpolar·nas·远程访问·自托管
龙腾-虎跃1 天前
Docker 一键启动服务合集:Redis、MySQL、Kafka、MinIO、Prometheus 等(网盘转存防失效)
redis·mysql·docker·kafka·prometheus·小龙虾·miniio
Duang007_2 天前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus
JWASX2 天前
go 学习 - prometheus 指标学习
学习·golang·prometheus
JWASX2 天前
go 学习 - prometheus 指标协程池监控
学习·golang·prometheus
爱琴孩4 天前
记一次Prometheus的WAL异常,导致服务器磁盘占用过高
prometheus·wal
Cheney Pan5 天前
第12篇 Prometheus 高可用与长期存储
prometheus
cpolar技术支持5 天前
外网测试机的异常传不回内网?自托管 Sentry,用 cpolar 打通错误上报链路
python·nginx·docker·cpolar·sentry
cpolar技术支持5 天前
Spring Boot 接口本地正常,异地前端却报跨域?用 cpolar 跑通 CORS 预检与白名单
java·springboot·cpolar·前后端分离·cors