utilisant: Telegraf v1.0.1Telegraf - inputs.procstat Plugin procstat - README.md doc - exe, pid_file, nom d'utilisateur modèle de ligne de commande
documentation du plug-in Telegraf de procstat: https://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat
Ma config personnalisée fichier:
/etc/telegraf/telegraf.d/my_custom_process_service-telegraf.conf contient:
[[inputs.procstat]]
exe = "."
prefix = "service_process"
[[inputs.procstat]]
pid_file = "/var/run/jenkins/jenkins.pid"
prefix = "service_process"
La configuration ci-dessus fonctionne bien selon la syntaxe. Cela me donnera des mesures avec le nom de la métrique commençant: procstat.service.process.xx.xx
(selon si vous convertissez _
avec un caractère .
) -ou simplement procstat.service_process.x.x
métriques.
Pour attraper tout processus en cours d'exécution sur la machine en utilisant exe = "."
(il fera une opération et pgrep "."
) pour trouver tous les processus en cours d'exécution sur la machine en donnant process_name=<processes>
valeurs; -OR utilisant, pid_file = /var/run/jenkins/jenkins.pid
(REMARQUE: à condition que vous ayez l'autorisation READ pour l'utilisateur qui exécute le service telegraf
) pour les processus qui s'exécutent derrière Java/autres wrappers; Si vous donnez pid_file = /var/run/jenkins/jenkins.pid
et si Jenkins fonctionne sous l'utilisateur jenkins
et /var/run/jenkins dossier n'a pas au moins "r-x
" accès + lire "r
" accès sur le fichier pid lui-même, alors il va jeter et erreur sur "autorisation refusée".
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'
Question:
Est-il possible Telegraf de fonctionner en mode SUDO
(si possible)? si je n'ai pas l'accès r-x/r
pour lire le fichier PID d'un processus et en supposant qu'il y a beaucoup de tels processus (fonctionnant derrière Java/Wrapper, donc exe=xxxx
ne fonctionnera pas dans de tels cas), alors je dois utiliser la méthode pid_file = ...
, alors comment puis-je avoir Telegraf travailler avec cette méthode pid_file
pour obtenir la process_name
comme jenkins
ou nexus
etc.
PS: Faire chmod -R 775_or_755 /var/run
sur chaque hôte peut ne pas être possible.
Si j'autorise 755 dans le dossier/var/ran/jenkins et 644 dans le fichier jenkins.pid, l'erreur d'autorisation disparaîtra. Après ceci j'ai essayé d'employer la métrique: procstat.service.process.cpu.usage
contre le processus jenkins
(c'est-à-dire process_name="jenkins"
) mais il ne trouve pas jenkins
comme sa valeur. Ai-je manqué quelque chose?
Raccourcissement mon poste un peu et a ouvert un autre poste pour mon autre question. Est-ce une question légitime maintenant ou encore trop large? –