Telegraf не может собрать метрики дескриптора файла procstat ни на каком процессе, кроме telegraf - PullRequest
0 голосов
/ 23 мая 2019

Кто-нибудь знает способ решения проблемы с правами доступа всего телеграфа при запуске procstat?(моя цель - получить открытые файловые дескрипторы для пары процессов / сервисов). Когда я запускаю его, приток не будет собирать информацию о файловых дескрипторах pgrep_serviceprocess_num_fds, что мне и нужно.

telegraf config:

[[inputs.filestat]]
  files = ["/var/run/*/*.pid","/var/run/*.pid"]
[[inputs.procstat]]
  user = "root"
  #pid_file = "/var/run/grafana/grafana-server.pid"
  #systemd_unit = "sshd.service"
  prefix = "pgrep_serviceprocess"
[[outputs.influxdb]]
  url = "http://localhost:8086"
  database = "file"

При работе от имени пользователя telegraf он фактически не может собрать какие-либо данные:

[root@grafana ~]# sudo -u telegraf bash -c 'telegraf -test -config /etc/telegraf/telegraf.d/file.conf' | grep sshd | sed 's/,/\n/g'
2019-05-23T19:26:43Z I! Starting Telegraf 1.10.3
> procstat
host=grafana.bugfocus.com
process_name=sshd
user=root pgrep_serviceprocess_cpu_time_guest=0
pgrep_serviceprocess_cpu_time_guest_nice=0
pgrep_serviceprocess_cpu_time_idle=0
pgrep_serviceprocess_cpu_time_iowait=0
pgrep_serviceprocess_cpu_time_irq=0
pgrep_serviceprocess_cpu_time_nice=0
pgrep_serviceprocess_cpu_time_soft_irq=0
pgrep_serviceprocess_cpu_time_steal=0
pgrep_serviceprocess_cpu_time_stolen=0
pgrep_serviceprocess_cpu_time_system=0.01
pgrep_serviceprocess_cpu_time_user=0.01
pgrep_serviceprocess_cpu_usage=0
pgrep_serviceprocess_involuntary_context_switches=9i
pgrep_serviceprocess_memory_data=0i
pgrep_serviceprocess_memory_locked=0i
pgrep_serviceprocess_memory_rss=4456448i
pgrep_serviceprocess_memory_stack=0i
pgrep_serviceprocess_memory_swap=0i
pgrep_serviceprocess_memory_vms=115462144i
pgrep_serviceprocess_num_threads=1i
pgrep_serviceprocess_voluntary_context_switches=46i
pid=4399i 1558639604000000000

Запустить telegraf от имени пользователя root, и я получаю метрики pgrep_serviceprocess_num_fds просто отлично,Но, конечно, при запуске telegraf он будет работать как пользователь telegraf.Мне кажется странным, что модуль procstat практически бесполезен для сбора данных файловых дескрипторов ... если только вы не запускаете telegraf как root (плохо) или не добавляете магию ACL.

[root@grafana ~]# telegraf -test -config /etc/telegraf/telegraf.d/file.conf | grep sshd | sed 's/,/\n/g'
2019-05-23T19:28:46Z I! Starting Telegraf 1.10.3
> procstat
host=grafana.bugfocus.com
process_name=sshd
user=root pgrep_serviceprocess_cpu_time=0i
pgrep_serviceprocess_cpu_time_guest=0
pgrep_serviceprocess_cpu_time_guest_nice=0
pgrep_serviceprocess_cpu_time_idle=0
pgrep_serviceprocess_cpu_time_iowait=0
pgrep_serviceprocess_cpu_time_irq=0
pgrep_serviceprocess_cpu_time_nice=0
pgrep_serviceprocess_cpu_time_soft_irq=0
pgrep_serviceprocess_cpu_time_steal=0
pgrep_serviceprocess_cpu_time_stolen=0
pgrep_serviceprocess_cpu_time_system=0.01
pgrep_serviceprocess_cpu_time_user=0.01
pgrep_serviceprocess_cpu_usage=0
pgrep_serviceprocess_involuntary_context_switches=9i
pgrep_serviceprocess_memory_data=643072i
pgrep_serviceprocess_memory_locked=0i
pgrep_serviceprocess_memory_rss=4456448i
pgrep_serviceprocess_memory_stack=135168i
pgrep_serviceprocess_memory_swap=0i
pgrep_serviceprocess_memory_vms=115462144i
pgrep_serviceprocess_nice_priority=20i
pgrep_serviceprocess_num_fds=5i
pgrep_serviceprocess_num_threads=1i
pgrep_serviceprocess_read_bytes=5218304i
pgrep_serviceprocess_read_count=36691i
pgrep_serviceprocess_realtime_priority=0i
pgrep_serviceprocess_rlimit_cpu_time_hard=2147483647i
pgrep_serviceprocess_rlimit_cpu_time_soft=2147483647i
pgrep_serviceprocess_rlimit_file_locks_hard=2147483647i
pgrep_serviceprocess_rlimit_file_locks_soft=2147483647i
pgrep_serviceprocess_rlimit_memory_data_hard=2147483647i
pgrep_serviceprocess_rlimit_memory_data_soft=2147483647i
pgrep_serviceprocess_rlimit_memory_locked_hard=65536i
pgrep_serviceprocess_rlimit_memory_locked_soft=65536i
pgrep_serviceprocess_rlimit_memory_rss_hard=2147483647i
pgrep_serviceprocess_rlimit_memory_rss_soft=2147483647i
pgrep_serviceprocess_rlimit_memory_stack_hard=2147483647i
pgrep_serviceprocess_rlimit_memory_stack_soft=8388608i
pgrep_serviceprocess_rlimit_memory_vms_hard=2147483647i
pgrep_serviceprocess_rlimit_memory_vms_soft=2147483647i
pgrep_serviceprocess_rlimit_nice_priority_hard=0i
pgrep_serviceprocess_rlimit_nice_priority_soft=0i
pgrep_serviceprocess_rlimit_num_fds_hard=4096i
pgrep_serviceprocess_rlimit_num_fds_soft=1024i
pgrep_serviceprocess_rlimit_realtime_priority_hard=0i
pgrep_serviceprocess_rlimit_realtime_priority_soft=0i
pgrep_serviceprocess_rlimit_signals_pending_hard=14968i
pgrep_serviceprocess_rlimit_signals_pending_soft=14968i
pgrep_serviceprocess_signals_pending=0i
pgrep_serviceprocess_voluntary_context_switches=46i
pgrep_serviceprocess_write_bytes=4374528i
pgrep_serviceprocess_write_count=7509i
pid=4399i 1558639727000000000
...