问题标签 [telegraf-inputs-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grep - Telegraf - inputs.procstat pgrep 插件问题
电报 v1.0.1
启用[[inputs.procstat]]插件后,我无法再看到telegraf[._](树)指标。
Telegraf 安装成功。进程正在运行。我几乎使用输入插件和输出插件的正常设置。
这就是我得到的:
为什么,当jenkins进程正在运行并pgrep -f jenkins
返回有效结果时,日志文件显示错误。
PS: [[inputs.procstat]]插件pgrep -f <exe_value_pattern>
用于它的逻辑,如果pattern =
使用方法,pgrep <executable>
如果exe =
使用方法。
完整的/etc/telegraf/telegraf.d/telegraf-custom-host-services-processes.conf文件是:
sudo - Telegraf - inputs.procstat procstat Plugin - README.md doc - exe、pid_file、命令行模式用户名
使用:电报 v1.0.1
Telegraf procstat 插件的文档: https ://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat
我的自定义配置文件:
/etc/telegraf/telegraf.d/my_custom_process_service-telegraf.conf包含:
上面的配置按照语法可以正常工作。这将为我提供以度量名称开头的度量:(procstat.service.process.xx.xx
取决于您是否_
使用.
字符进行转换)-或简单的procstat.service_process.x.x
度量。
捕获机器上运行的任何进程exe = "."
(它将执行pgrep "."
操作并)通过给出process_name=<processes>
值来查找机器上运行的所有进程;- 或使用,pid_file = /var/run/jenkins/jenkins.pid
(注意:如果您对正在运行服务的用户具有读取权限telegraf
)在 Java/其他包装器后面运行的进程;如果您提供pid_file = /var/run/jenkins/jenkins.pid
并且 Jenkins 在用户下运行jenkins
并且/var/run/jenkins文件夹对 pid 文件本身没有至少“r-x
访问 + 读取”r
访问权限,那么它将抛出有关“权限被拒绝”的错误”。
问题:
Telegraf 是否可以在SUDO
模式下运行(如果可能)?即,如果我无权r-x/r
读取进程的 PID 文件并假设有很多这样的进程(在 Java/某些 Wrapper 之后运行,因此exe=xxxx
在这种情况下不起作用),那么我必须使用pid_file = ...
方法,那么如何我让 Telegraf 使用这种pid_file
方法来获取process_name
asjenkins
或nexus
etc。
PS:chmod -R 775_or_755 /var/run
在每台主机上都做可能不可行。
如果我确实在 /var/ran/jenkins 文件夹中授予 755 权限并将 644 授予 jenkins.pid 文件,则权限错误将消失。在此之后,我尝试使用 metric:procstat.service.process.cpu.usage
针对进程jenkins
(即process_name="jenkins"
),但它没有找到jenkins
它的价值。我错过了什么吗?
pattern-matching - Telegraf - inputs.procstat procstat 插件 - 使用命令行模式或用户名
使用:Telegraf v1.0.1或更高版本
Telegraf procstat 插件的文档: https ://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat
在Documentation下,它说:
procstat 插件可用于监控单个进程使用其 /proc 数据的系统资源使用情况。
该插件将通过它们的 PID 和它们的进程名称来标记进程。
进程可以通过 pid 文件、可执行文件名、命令行模式匹配或用户名(按此顺序或优先级)指定。Procstat 插件将在提供可执行文件名来获取 pid 时使用 pgrep。
我的自定义配置文件:
/etc/telegraf/telegraf.d/my_custom_process_service-telegraf.conf包含:
上面的配置按照语法可以正常工作。
问题:
文档说明了使用exe
, pid_file
,但没有给出如何使用command line pattern matching
OR by的示例username
。如果您知道如何使用它,我可以举一些例子吗?
testing - Telegraf测试输入输出插件报错多个conf文件
Telegraf 版本:Telegraf v1.0.1
我有以下文件:
主配置文件(您在安装电报时免费创建/获取)。该文件中没有任何[[output.<plugin>]]
节,但inputs.xx
启用了有效的默认插件。
(这个文件有有效的outputs.<pluginname>
插件)。
(这个文件有额外inputs.<pluginname>
的插件,我想与主 conf 文件分开)。
运行sudo service telegraf status
显示 Telegraf 正在运行 [OK]!和日志文件 /var/log/telegraf/telegraf.log (看起来也不错,没有显示任何错误)。
如果我对上述配置文件之一进行任何更改,我想测试所做的更改(在我重新启动 telegraf 之前),所以我使用-test
or--test
选项运行以下命令,但我收到以下错误:
正如您在上面看到的,两个选项都-test
可以--test
工作,但上面也给出了有效的错误消息。
由于上述错误是因为没有为 提供任何配置节[[outputs.<plugin>]]
,因此我为包含输出插件节的文件提供了另一个 --config 文件参数,但现在它给出了缺少输入的错误。文件:
注意:上述命令在提供多个参数值时不会出错。--config <someConfigFile>
如果我想测试第三个文件中的任何更改,也会出现同样的错误:(/ etc/ telegraf /telegraf.d/telegraf-additional-inputs-plugins.conf )
假设我在这里有多个文件,如何测试单个或选择性的配置文件更改:/etc/telegraf/telegraf.d/*.conf?telegraf
wavefront - EnhanceIO Telegraf `filestat` 插件 - 超级 GLOB 模式不起作用 - 使 telegraf 递归查找所有文件
Telegraf v1.0.1 ( git: master 26acdc9231efde105510fe5df3da7519bc4f42f7 )
sudo service telegraf status
显示Telegraf 服务运行成功telegraf is running [OK]
。
我正在使用 Wavefront 的基于 SaaS 的监控解决方案来显示 Telegraf 数据或设置各种其他东西(警报、仪表板)......它可以工作。
概述:安装 Telegraf 时,它会在/etc/telegraf/telegraf.conf中创建其主配置文件,用户可以将其他配置放在/etc/telegraf/telegraf.d /*.conf(文件)下。
我有/etc/telegraf/telegraf.d/extra-inputs-plugins.conf并且在这个文件中,我有以下内容(如您所见,它正在使用filestat inputs plugin)并且以下配置有效:
在一些数据库服务器上,我已经安装了EnhanceIO
(更多信息请看这里:https ://github.com/stec-inc/EnhanceIO
安装 EnhanceIO 后,您将获得如下文件夹结构:
要配置 Telegraf 的filestat插件以捕获/查找/proc/enhanceio/data_cache/config
文件,我可以添加它或/proc/enhanceio/data_cache/*
在我的配置中添加(但这样做,解决方案将无法扩展,即如果我希望 telegraf 选择/proc文件夹下的所有文件怎么办。
插件文档/评论部分说:
因此,我尝试了以下配置来查找每个文件(递归):
以上在我运行时导致以下输出:($ telegraf --config-directory=/etc/telegraf -test|grep filestat|grep -v '/var/run/'|grep enhance
实际上 /proc/enhanceio 是一个文件夹)。
然后,我尝试使用该**
方法,但我什么也没得到?
我尝试了几乎所有glob模式(例如:/proc/enhanceio/*/*
、、或) /proc/enhanceio/*/**
,但它只是没有捕获 /proc/enhanceio 树下的任何文件。/proc/enhanceio/**/*
/proc/enhanceio/**/**
当我尝试上述模式时,为什么 filestat 插件的 SUPER GLOB 模式根本不起作用?
如何使 filestat 插件捕获 /proc 树下的所有文件?
PS/proc/enhanceio/data_cache/*
:如果我想config
在该目录下(仅在该级别)捕获文件,我知道给予将起作用。
python-2.7 - telegraf - exec 插件 - aws ec2 ebs volumen info - 指标解析错误,原因:[缺少字段]或遇到错误:[无效数字]
机器- CentOS 7.2或Ubuntu 14.04/16.xx
电报版本:1.0.1
Python版本:2.7.5
Telegraf 支持一个名为:exec的 INPUT 插件。首先请参阅那里的README文档中的示例 2 。我不能使用 JSON 格式,因为它只使用数值作为指标。根据文档:
所以,这个想法很简单,你在 exec 插件部分指定一个脚本,它应该吐出一些有意义的信息(在我的例子中是JSON - 或- influx数据格式,因为我有一些包含非数字值的指标)你会想要在一个很酷的仪表板中的某个地方捕捉/显示,例如此处显示 的Wavefront 仪表板::
基本上,人们可以使用这些指标、标签、这些指标的来源来找出有关内存、cpu、磁盘、网络、其他有意义的信息的各种信息,并在发生意外情况时使用这些信息创建警报。
好的,我想出了这个可用的 python 脚本:
此脚本将与 AWS EC2 EBS 卷对话并输出它可以找到的所有值(通常是您在 AWS EC2 EBS 卷控制台中看到的)并将该信息格式化为有意义的 CSV 格式,我将其重定向到 .csv 日志文件。 我们不想一直运行 python 脚本(AWS API 限制/成本因素)。
因此,一旦创建了 .csv 文件,我就创建了这个小的 shell 脚本,我将在Telegraf 的 exec 插件部分中设置它。
/tmp/aws-vol-info.sh
Telegraf exec 插件中设置的Shell 脚本为:
使用 exec 插件 ( ) 创建的 Telegraf 配置文件/etc/telegraf/telegraf.d/exec-plugin-aws-info.conf
:
我调整了 .py(用于生成函数的 Python 脚本)以生成以下三种类型的输出格式(.csv 文件),并想在启用配置文件( /etc/ telegraf /telegraf. d/catch-aws-ebs-info.conf)并重新启动telegraf
服务。
格式 1:("
每个值都用双引号括起来)
在电报目录上测试telegraf
配置给了我以下错误。
命令:$ telegraf --config-directory=/etc/telegraf --test --input-filter=exec
格式 2:(不带任何"
双引号)
在测试 Telegraf 的 exec 插件配置时出现相同的错误:
格式 3:(此格式的值中没有任何"
双引号和空格字符)。
_
用字符替换空格。
仍然没有工作,得到同样的错误:
格式 4:如果我按照此页面遵循流入线协议: https ://docs.influxdata.com/influxdb/v1.2/write_protocols/line_protocol_tutorial/
我收到此错误:
我怎样才能摆脱这个错误并让 telegraf 与 exec 插件(运行 .sh 脚本)一起工作?
其他信息:
Python 脚本将每天运行一次/两次(通过 cron),而 telegraf 将每 1 分钟运行一次(运行 exec 插件 - 运行 .sh 脚本 - 它将对 .csv 文件进行分类,以便 telegraf 可以以流入数据格式使用它) .
ruby-on-rails - Ruby on Rails:使用 Telegraf 获取 Prometheus 指标
我有一个安装了Prometheus 客户端和Telegraf守护程序的 RoR 应用程序,其中Prometheus 输入插件在我要监视的实例上工作。
据我了解,我需要某种导出器中间件来收集指标并使用HTTP 端点Prometheus::Client.registry
公开它们。/metrics
我真正不明白的是如何将来自不同环境(例如,来自 rake 任务和应用程序的运行时代码)的所有指标传递到同一个中间件Prometheus::Middleware::Exporter.new(registry)
实例的同一个注册表(它是一个实例变量) ?Prometheus::Middleware::Exporter
此外,urls = ["http://localhost:3000/metrics"]
例如,用于 Telegraf 的 Prometheus 输入插件的配置是否可以在 EC2 实例上工作?
谢谢你的建议。
tail - 如何使用 Telegraf 跟踪远程日志文件
嗨,我是 Telegraf 和 Influxdb 的新手。我知道我们可以使用 Telegraf 跟踪(监视)本地文件(在安装 Telegraf 的同一台机器上),并使用 Telegraf 的 [[inputs.tail]] 和 [[outputs.influxdb]] 插件将输出发送到 Influxdb。
但我想跟踪一个日志文件,该文件位于安装 Telegraf 的不同服务器上。
一种方法是在日志文件所在的服务器上安装 Telegraf:但我不能这样做,因为该服务器无法将数据发送到 Influxdb 。它无权访问存在 Influxdb 的服务器。
所以我必须使用中间服务器才能将数据发送到 InfluxDb。
那么有没有办法跟踪远程文件或任何其他方式。欢迎任何类型的建议。
influxdb - telegraf 输入命令 cmd
我想每 60 秒运行一次 python 脚本并将输出发送到 Influxdb。python 脚本嵌入并从 Windows 批处理文件中调用。
虽然批处理文件和 python 脚本运行良好,但我无法通过 TELEGRAF 运行它
这是我来自电报配置文件的输入和输出快照
我有一个库存的 Influxdb 和 Telegraf 版本。我没有安装任何插件。
我错过了什么吗?
phusion - telegraf 磁盘输入不写入 phusion/baseimage 中的输出
刚刚使用了 telegraf 和 influxdb 以及其他一些插件。但是 [[inputs.disk]] 的输出不会发送到 influx-database,尽管 telegraf-cli 会打印系列:
涌入内:
电报配置:
Telegraf v1.3.5 (git: release-1.3 7192e68b2423997177692834f53cdf171aee1a88)
InfluxDB v1.3.2 (git: 1.3 742b9cb3d74ff1be4aff45d69ee7c9ba66c02565)
//编辑:当然:
如果我再次添加其他输入,例如 [[inputs.diskio]],它们会立即出现在数据库中。