首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pushgateway (Prometheus)上卷曲故障的排除

Pushgateway (Prometheus)上卷曲故障的排除
EN

Stack Overflow用户
提问于 2019-10-14 08:54:49
回答 1查看 2K关注 0票数 0

我正在Prometheus上测试Pushgateway,每分钟都会用bash脚本和crontab触发的curl提供关于我的‘m服务的简单数据。

我有两个bash脚本。第一个是cpu_usage.sh,通过curl解析有关ps -aux命令的数据并将其发送到pushgateway:

代码语言:javascript
复制
#!/usr/bin/env bash

z=$(ps aux)
while read -r z
do
   var=$var$(awk '{print "cpu_usage{process=\""$11"\", pid=\""$2"\", cpu=\""$3"\"}", $3z}');
done <<< "$z"

curl -X POST -H  "Content-Type: text/plain" --data "$var
" http://localhost:9091/metrics/job/top/instance/machine

这一次一切正常,我的crontab每分钟都将格式化的数据发送给我的推网关实例localhost:9091

现在,我正试图发送service --status-all命令的解析结果,其中包含一个名为services_list.sh的脚本,与处理cpu_usage.sh脚本的方式完全相同:

代码语言:javascript
复制
#!/usr/bin/env bash

y=$(service --status-all)
while read -r y
do
   varx=$varx$(awk '{print "services_list{service=\""$y"\"}", 1}');
done <<< "$y"

curl -X POST -H  "Content-Type: text/plain" --data "$varx
" http://localhost:9091/metrics/job/top/instance/machine

当手动执行两个脚本(如./cpu_usage.sh./services_list.sh )时,一切都很好,Pushgateway正在成功地从这两个脚本中检索数据。

但是,当我通过CRON传递这些调用时,只有cpu_usage.sh将数据发送到pushgateway ( Pushgateway上最后一次推services_list方法的时间戳保持不变)。

我的crontab语法如下:* * * * * cd /path/ && ./script.sh

脚本在777 / root:root中,crontab总是被编辑为root。我尝试在一个bash文件中连接这两个标记,不管我将它们放在哪个顺序,对services_list方法的curl调用都是从未进行过的(但是在cpu_usage方法上一切都很好)。

我有点迷路了,因为这两个脚本非常相似,对services_list.sh的手动调用也很好。有什么想法吗?谢谢。

在Debian 9上运行Pushgateway 0.10。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 09:51:20

Fixed :

命令service不能从crontab调用。当从cron (如service )调用它时,我必须提供它的完整路径。

在这种情况下,使用y=$(/usr/sbin/service --status-all)代替y=$(service --status-all)y=$(service --status-all)脚本中运行一切都很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58373227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档