telegraf和script命令发送到grafana



我在我的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的配置文件中给出绝对完整和正确的路径。

最新更新