如何配置多个telegraf.service文件以运行多个telegraf实例

时间:2019-11-18 18:13:18

标签: kubernetes telegraf

我有一个Kuberenetes集群,并且Telegraf在每个节点上运行。 Telegraf正在收集数据并将其存储到InfluxDB中。现在,我想运行另一个telegraf实例,该实例将使用pod命名空间之一,并从在pod内运行的Apache服务器收集统计信息,并将统计信息存储在同一InfluxDB存储中。

我点击了此链接(https://community.influxdata.com/t/multiple-telegraf-configs/245/6),但不知道如何在我的设置中实现此功能。

我正在使用 Debian GNU / Linux 9(拉伸) telegraf_1.12.5-1

我创建了两个服务文件,如下所示:

cat /usr/lib/telegraf/scripts/telegraf.service
[Unit]
Description=The plugin-driven server agent for reporting metrics into InfluxDB
Documentation=https://github.com/influxdata/telegraf
After=network.target

[Service]
EnvironmentFile=-/etc/default/telegraf
User=telegraf
ExecStart=/usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d $TELEGRAF_OPTS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartForceExitStatus=SIGPIPE
KillMode=control-group

[Install]
WantedBy=multi-user.target
cat /usr/lib/telegraf/scripts/telegraf_xyz.service
[Unit]
Description=The plugin-driven server agent for reporting metrics into InfluxDB
Documentation=https://github.com/influxdata/telegraf
After=network.target

[Service]
EnvironmentFile=-/etc/default/telegraf_xyz
User=telegraf
ExecStart=/usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d $TELEGRAF_OPTS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartForceExitStatus=SIGPIPE
KillMode=control-group

[Install]
WantedBy=multi-user.target

但是当我尝试运行第二个实例时,它给出了错误:

Failed to start telegraf_xyz.service: Unit telegraf_xyz.service not found.

在此过程中,我还需要做些什么更改?我在许多其他位置(/ sys /)中看到了telegraf.service文件,我不确定在其他位置还需要配置第二个telegraf实例。我对此很陌生。

在我的设置中还有其他更好的方法来实现这一点吗?

注意:我已经创建了两个服务文件,并且能够在主机中运行它。现在,真正的挑战是在另一个网络名称空间中运行实例。谁能帮助我实现这一目标?

1 个答案:

答案 0 :(得分:1)

请在以下位置放置您的服务文件:/ etc / systemd / system /。然后使用systemctl daemon-reload重新加载systemd。现在应该可以找到您的服务。