1. 首页 > 快讯

Prometheus 实战: 间接采集目标服务数据

大家好,感谢邀请,今天来为大家分享一下Prometheus 实战: 间接采集目标服务数据的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

在上一篇文章《从零开始:使用Prometheus和Grafana构建监控系统》中,我们了解到Prometheus主要使用Pull模式,即主动拉取模式来收集数据。这种方法虽然简单,但是有一定的局限性。例如,服务器A部署在边缘。客户端和Prometheus部署在云端,两个网络不连通,无法使用Pull模式。

图片

那么如何获取服务器A的metrics呢?答案是使用Pushgateway。这里Pushgateway作为一个桥梁,将Pushgateway服务暴露到一个公网地址,然后服务器A和Prometheus都可以连接。服务器将数据推送到Pushgateway,然后Prometheus定期去Pushgateway拉取数据。

图片

下载

docker pull prom/pushgateway:v1.5.1 启动

docker run --name pushgateway -d -p 9091:9091 prom/pushgateway:v1.5.1图片

访问http://localhost:9091/metrics查看是否启动成功。可以看到Pushgateway本身也有一些指标。

图片

边缘服务器配置下载节点导出器

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-arm64.tar.gz图片

下载完成后,执行tar -xvf node_exporter-1.5.0.linux-arm64.tar.gz cd node_exporter-1.5.0.linux-arm64 进行解压

图片

解压完成后,执行./node_exporter进行简单验证。

图片

如果看到以上信息,说明启动成功。如果通过浏览器访问http://ip:9100/metrics,可以看到如下指标。

图片

安装node-exporter

由于直接启动node-exporter并关闭窗口会导致进程挂起,因此可以使用systemctl进行配置。

执行mv node_exporter //usr/local/移动node_exporter文件

在/usr/lib/systemd/system/目录中,创建包含以下内容的node_exporter.service 文件。 ExecStart 指向node_exporter 可执行文件。

cat /usr/lib/systemd/system/node_exporter.service[Unit]Descriptinotallow=Node Exporter[Service]ExecStart=/usr/local/node_exporterRestart=on-failure[Install]WantedBy=multi-user.targetEOF图片

执行systemctl daemon-reload

执行systemctl start node_exporter启动node_exporter

执行netstat -aon|grep 9100 查看9100是否启动成功

图片

边缘端指标上报

由于node-exporter只提供数据,默认情况下prometheus拉取获取指标数据,而我们需要主动推送数据到Pushgateway,所以这里需要添加一个shell脚本,首先获取node-exporter数据,然后调用Pushgateway接口进行推送,以下是push语句

推送网关IP: 10.211.55.2

边缘服务器IP:10.211.55.6

curl 10.211.55.6:9100/metrics|curl --data-binary @- http://10.211.55.2:9091/metrics/job/agent-server/instance/10.211.55.6/hostname/边缘服务器手动执行以下脚本,并访问Pushgateway 检查是否有是对应的数据

图片

可以看到数据已经上传了

图片

上面的脚本虽然没问题,但是还是需要定时执行,所以需要写一个shell脚本,通过crontab调用

创建shell 脚本

cat/etc/cron.d/propushgateway.sh#!/bin/bashcurl 10.211.55.6:9100/metrics|curl --data-binary @- http://10.211.55.2:9091/metrics/job/agent-server/instance/hostname/10.211.55.6 date/tmp/date.txtEOF 分配文件执行权限

chmod 777 /etc/cron.d/propushgateway.sh 配置crontab 任务并每10 秒执行一次。由于crontab最多只支持分钟,因此配置方式如下

crontab -e* * * * * /etc/cron.d/propushgateway.sh* * * * * 睡眠10; /etc/cron.d/propushgateway.sh* * * * * 睡眠20; /etc/cron.d /propushgateway.sh* * * * * 睡眠30; /etc/cron.d/propushgateway.sh* * * * * 睡眠40; /etc/cron.d/propushgateway.sh* * * * * 睡眠50; /etc /cron.d/propushgateway.sh 查看执行日志tail -f /var/log/cron 可以看到每10秒执行一次

图片

修改prometheus配置文件

在prometheus.yml文件中添加以下配置

- job_name: 'AgentServer' # 覆盖全局默认值并每5 秒从该作业中抓取目标。 Honor_labels: false static_configs: - Targets: ['10.211.55.2:9091'] labels: Pushgateway_instance: agent-server ##这里必须添加这个标签过滤器,否则会被收集就是添加完pushGateway数据后重启prometheus。

docker restart prometheus启动后,访问prometheus地址,查看Pushgateway目标是否生效。

图片

访问Grafana可以看到边段数据已经采集完毕。

大家好,今天给各位分享Prometheus 实战: 间接采集目标服务数据的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

用户评论

屌国女农

这个 Prometheus 的应用听起来很有意思!解决网络问题确实很关键啊。

    有20位网友表示赞同!

落花忆梦

没网的时候还得想办法看监控,真是不容易呢!

    有14位网友表示赞同!

独角戏°

指标监测永远是在做,间接采集数据能省不少事吧?

    有10位网友表示赞同!

一样剩余

Prometheus 的功能越来越强大,连离线的项目也能用上它了。

    有10位网友表示赞同!

←极§速

文章要详细介绍一下这间接采集的方法吗?我挺感兴趣的。

    有8位网友表示赞同!

温柔腔

网络环境复杂确实会影响数据采集,这个方法可以试试看。

    有12位网友表示赞同!

哽咽

有没有什么案例演示一下 Prometheus 的间接采集效果?

    有15位网友表示赞同!

青衫负雪

现在网络安全越来越重要,这种间接采集机制会不会带来风险呢?

    有11位网友表示赞同!

我怕疼别碰我伤口

我用过别的监控工具,听说 Prometheus 稳定性高啊。

    有17位网友表示赞同!

孤单*无名指

学习一下这个方法,下次遇到类似问题就能解决更快了。

    有14位网友表示赞同!

最迷人的危险

看标题感觉这篇文章要讲很专业的知识...希望我能够理解。

    有19位网友表示赞同!

猫腻

如果能实现在多个环境下使用那就更好了!

    有14位网友表示赞同!

黑夜漫长

间接采集数据要注意数据的完整性和准确性吧?

    有14位网友表示赞同!

她的风骚姿势我学不来

Prometheus 这个工具真的很棒,越来越被行业所认可了。

    有19位网友表示赞同!

涐们的幸福像流星丶

我之前想了解 Prometheus 的监控功能,正好看到这篇文章。

    有11位网友表示赞同!

留我一人

51CTO 的文章还是比较有技术含量,值得一看啊!

    有6位网友表示赞同!

坠入深海i

希望能结合实际案例讲解起来,更容易理解。

    有12位网友表示赞同!

安陌醉生

这个方法是不是对不同的服务类型都有适用性?

    有13位网友表示赞同!

容纳我ii

看了一下评论,感觉这篇文章内容比较专业… 需要仔细阅读。

    有5位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6333.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666