Telegraf - inputs.procstat procstat 插件 - README.md doc - exe,pid_file,命令行模式用户名
Telegraf - inputs.procstat procstat Plugin - README.md doc - exe, pid_file, command line pattern username
使用:Telegraf 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 包含:
[[inputs.procstat]]
exe = "."
prefix = "service_process"
[[inputs.procstat]]
pid_file = "/var/run/jenkins/jenkins.pid"
prefix = "service_process"
根据语法,以上配置工作正常。这将为我提供指标名称开头的指标:procstat.service.process.xx.xx
(取决于您是否将 _
转换为 .
字符) - 或者只是 procstat.service_process.x.x
指标。
使用 exe = "."
捕获机器上 运行ning 的任何进程(它将执行 pgrep "."
操作并)找到机器上的所有进程 运行ning通过给出 process_name=<processes>
值; -OR 使用 pid_file = /var/run/jenkins/jenkins.pid
(注意:前提是您对 运行ning telegraf
服务的用户具有读取权限)对于 运行 在 Java/other 包装器后面的进程;如果你给 pid_file = /var/run/jenkins/jenkins.pid
并且 Jenkins 在用户 jenkins
下 运行ning 并且 /var/run/jenkins 文件夹至少没有“r-x
" access + read "r
" 访问 pid 文件本身,然后它会抛出关于 "permission denied".
的错误
2017-01-10T18:13:30Z E! Error: procstat getting process, exe: [] pidfile: [/var/run/jenkins/jenkins.pid] pattern: [] user: [] Failed to read pidfile '/var/run/jenkins/jenkins.pid'. Error: 'open /var/run/jenkins/jenkins.pid: permission denied'
问题:
Telegraf 是否可以在 SUDO
模式下 运行(如果可能)?也就是说,如果我没有 r-x/r
访问权限来读取进程的 PID 文件并假设有很多这样的进程(运行 宁在 Java/some 包装器之后,所以 exe=xxxx
不会t 在这种情况下工作),然后我必须使用 pid_file = ...
方法,然后我如何让 Telegraf 使用此 pid_file
方法来获得 process_name
作为 jenkins
或 nexus
等
PS:在每个主机上执行 chmod -R 775_or_755 /var/run
可能不可行。
如果我在 /var/ran/jenkins 文件夹中授予 755 权限并在 jenkins.pid 文件中授予 644 权限,权限错误将消失。在此之后,我尝试使用 metric: procstat.service.process.cpu.usage
against process jenkins
(即 process_name="jenkins"
),但它没有找到 jenkins
作为它的价值。我错过了什么吗?
在 /etc/telegraf/telegraf.d/someFile.conf 中添加了以下配置并修复了使用 Ansible's file module
的权限问题:http://docs.ansible.com/ansible/file_module.html
## Telegraf filestat plugin
[[inputs.filestat]]
files = ["/var/run/*/*.pid","/var/run/*.pid"]
## To catch all processs. Better than pattern = "."
[[inputs.procstat]]
exe = "."
prefix = "pgrep_serviceprocess"
##For catching processes by a user.
## Telegraf will use: pgrep -u <user>
[[inputs.procstat]]
user = "vagrant"
prefix = "pgrep_serviceprocess"
[[inputs.procstat]]
user = "telegraf"
prefix = "pgrep_serviceprocess"
[[inputs.procstat]]
user = "root"
prefix = "pgrep_serviceprocess"
## Add more users or template it out in Ansible.
使用:Telegraf 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 包含:
[[inputs.procstat]]
exe = "."
prefix = "service_process"
[[inputs.procstat]]
pid_file = "/var/run/jenkins/jenkins.pid"
prefix = "service_process"
根据语法,以上配置工作正常。这将为我提供指标名称开头的指标:procstat.service.process.xx.xx
(取决于您是否将 _
转换为 .
字符) - 或者只是 procstat.service_process.x.x
指标。
使用 exe = "."
捕获机器上 运行ning 的任何进程(它将执行 pgrep "."
操作并)找到机器上的所有进程 运行ning通过给出 process_name=<processes>
值; -OR 使用 pid_file = /var/run/jenkins/jenkins.pid
(注意:前提是您对 运行ning telegraf
服务的用户具有读取权限)对于 运行 在 Java/other 包装器后面的进程;如果你给 pid_file = /var/run/jenkins/jenkins.pid
并且 Jenkins 在用户 jenkins
下 运行ning 并且 /var/run/jenkins 文件夹至少没有“r-x
" access + read "r
" 访问 pid 文件本身,然后它会抛出关于 "permission denied".
2017-01-10T18:13:30Z E! Error: procstat getting process, exe: [] pidfile: [/var/run/jenkins/jenkins.pid] pattern: [] user: [] Failed to read pidfile '/var/run/jenkins/jenkins.pid'. Error: 'open /var/run/jenkins/jenkins.pid: permission denied'
问题:
Telegraf 是否可以在 SUDO
模式下 运行(如果可能)?也就是说,如果我没有 r-x/r
访问权限来读取进程的 PID 文件并假设有很多这样的进程(运行 宁在 Java/some 包装器之后,所以 exe=xxxx
不会t 在这种情况下工作),然后我必须使用 pid_file = ...
方法,然后我如何让 Telegraf 使用此 pid_file
方法来获得 process_name
作为 jenkins
或 nexus
等
PS:在每个主机上执行 chmod -R 775_or_755 /var/run
可能不可行。
如果我在 /var/ran/jenkins 文件夹中授予 755 权限并在 jenkins.pid 文件中授予 644 权限,权限错误将消失。在此之后,我尝试使用 metric: procstat.service.process.cpu.usage
against process jenkins
(即 process_name="jenkins"
),但它没有找到 jenkins
作为它的价值。我错过了什么吗?
在 /etc/telegraf/telegraf.d/someFile.conf 中添加了以下配置并修复了使用 Ansible's file module
的权限问题:http://docs.ansible.com/ansible/file_module.html
## Telegraf filestat plugin
[[inputs.filestat]]
files = ["/var/run/*/*.pid","/var/run/*.pid"]
## To catch all processs. Better than pattern = "."
[[inputs.procstat]]
exe = "."
prefix = "pgrep_serviceprocess"
##For catching processes by a user.
## Telegraf will use: pgrep -u <user>
[[inputs.procstat]]
user = "vagrant"
prefix = "pgrep_serviceprocess"
[[inputs.procstat]]
user = "telegraf"
prefix = "pgrep_serviceprocess"
[[inputs.procstat]]
user = "root"
prefix = "pgrep_serviceprocess"
## Add more users or template it out in Ansible.