背景

在使用ansible批量启动node_exporter服务的时候遇到命令执行完后,去客户机上查看没有启动的问题,在这里做个记录

执行命令

ansible 10.10.10.229  -m shell -a "nohup /usr/bin/node_exporter&"

诊断

去主机上查看,没有node_exporter的启动端口,查看nohup.out的日期也不是最新的说明没有生成新的日志文件,手动在客户机上执行/usr/bin/node_exporter &,发现可以执行 image.png

解决方法

再次查看ansible的日志,发现有以下警告

ts=2022-03-24T08:02:14.666Z caller=node_exporter.go:185 level=warn msg="Node Exporter is running as root user. This exporter is designed to run as unpriviled
ged user, root is not required."

大概意思说是node_exporter被设计成以无特权用户运行,建议不使用root用户执行 于是我在客户机创建node_exporter用户,修改执行命令,如下

ansible 10.10.10.229  -m shell -a "su - node_exporter -c 'nohup /usr/bin/node_exporter&'"

发现,这次成功了,在客户机查看也有相应的端口,Prometheus也有找到这台主机 image.png