背景
在使用ansible批量启动node_exporter服务的时候遇到命令执行完后,去客户机上查看没有启动的问题,在这里做个记录
执行命令
ansible 10.10.10.229 -m shell -a "nohup /usr/bin/node_exporter&"
诊断
去主机上查看,没有node_exporter的启动端口,查看nohup.out的日期也不是最新的说明没有生成新的日志文件,手动在客户机上执行/usr/bin/node_exporter &,发现可以执行
解决方法
再次查看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也有找到这台主机