我在我的telegrafa .conf中有以下输入到Grafana。我可以让前三个简单的例子工作,但不能让第四个工作。
[[inputs.exec]]
commands = ["sh -c 'grep -i DatasetVersion /etc/aaa/systemnameX/configfile | cut -d'=' -f2'"]
name_override = "systemnameX"
timeout = "5s"
data_format = "value"
data_type = "string"
[inputs.exec.tags]
type = "dataset_version"
[[inputs.exec]]
commands = ["sh -c 'cat /root/config/OS_Version.txt | tr -d C'"]
name_override = "systemnameX"
timeout = "5s"
data_format = "value"
data_type = "string"
[inputs.exec.tags]
type = "os_version"
[[inputs.exec]]
commands = ["sh -c 'grep -i VERSION= /usr/bin/sw_install | head -1 | cut -d'=' -f2 '"]
name_override = "systemnameX"
timeout = "5s"
data_format = "value"
data_type = "string"
[inputs.exec.tags]
type = "sw_version"
[[inputs.exec]]
commands = ["/sbin/ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}'"]
name_override = "systemnameX"
timeout = "5s"
data_format = "value"
data_type = "string"
[inputs.exec.tags]
type = "ip_address"
这是我运行telegraf测试
时的错误2021-09-04T06:36:51Z E! Error in plugin [inputs.exec]: exec: exit status 1 for command '/sbin/ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}''
,当我把确切的命令放入命令行时,我得到以下错误:
awk: cmd. line:1: {print
awk: cmd. line:1: ^ unexpected newline or end of string
任何关于如何修复awk部分的帮助将非常感激。
欢呼,塔拉
我试过运行不同的排列和组合的/sbin/ifconfig
命令,但它也给我同样的错误。但我已经阅读了电报手册,并提出了以下方法/步骤。
我已经在Linux中使用Telegraf的1.19.3
版本进行了测试,它对我来说工作得很好。
步骤:
- 首先,不要浪费你的时间(直到有人在这里发布答案),当我们可以从你在电报的
inputs.exec
模块中使用的commands
创建一个脚本。 因此,尽管在telegraf配置文件中运行直接命令,但创建一个脚本(例如:
script.bash
在我的测试用例中)并将命令放在那里,如下所示:cat /etc/telegraf/script.bash
#!/bin/bash
/sbin/ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}'
或
您还可以将/sbin/ifconfig
命令更改为以下单个awk
命令:
/sbin/ifconfig eth0 | awk '/inet/{print $2}'
- 现在在您的配置文件中添加以下条目:
[[inputs.exec]]
commands = ["/etc/telegraf/script.bash" ]
name_override = "systemnameX"
timeout = "5s"
data_format = "value"
data_type = "string"
[inputs.exec.tags]
type = "ip_address"
- 重新启动你的电报服务一次,并测试你的状态,如果你的电报是正常运行或不通过以下命令:
sudo -u telegraf telegraf -test -config /etc/telegraf/telegraf.conf
注意:我已经在/etc/telegraf/script.bash
中创建了测试脚本,你可以在任何你想要的地方创建它,但要确保你在telegraf的配置文件中给出绝对完整和正确的路径。