2017-01-10 11 views
0

使用: https://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstatTelegraf - README.mdドキュメント - - procstatプラグインinputs.procstat exeファイル、pid_file、コマンド・ライン・パターンのユーザー名

私のカスタム設定:Telegraf v1.0.1デベロッパー

Telegrafは、プラグインのマニュアルを参照して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 = "."(これはpgrep "."操作を実行します)を使用してマシン上で実行中のプロセスをキャッチすると、マシン上で実行されているすべてのプロセスがprocess_name=<processes>の値になります。 -OR、pid_file = /var/run/jenkins/jenkins.pid(注意:Java /その他のラッパーの背後で実行されるプロセスに対して、telegrafサービスを実行しているユーザーに対してREAD権限を持っている場合) pid_file = /var/run/jenkins/jenkins.pidを指定し、Jenkinsがユーザjenkins/var/run/jenkinsフォルダに少なくとも "r-x"のアクセス権がなく、pidファイル自体に "r"アクセス権がない場合、Jenkinsがスローします「許可が拒否されました」というエラーが表示されます。

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モード(可能であれば)で実行することは可能ですか?プロセスのPIDファイルを読み込んで、そのようなプロセスがたくさんあると仮定すると、r-x/rのアクセス権がなくても(Java /いくつかのWrapperの背後で実行されているので、exe=xxxxはこのような場合には機能しません)、次に、pid_file = ...メソッド、その後、どのように私はTelegrafがprocess_namejenkinsとして、あるいはその他nexus

PSを取得するため、このpid_file方法で作業することができます:すべてのホスト上でchmod -R 775_or_755 /var/runをやって実現可能ではないかもしれません。

私は/ var/ran/jenkinsフォルダで755許可を与え、jenkins.pidファイルで644を許可すれば、許可エラーは消えてしまいます。この後、メトリック:procstat.service.process.cpu.usageをプロセスjenkins(つまりprocess_name="jenkins")に対して使用しようとしましたが、値としてjenkinsが見つかりませんでした。私は何かが欠けていたか?

+0

は少し私のポストを短縮し、私の他の質問のために別のポストを開けました。これは正当な質問ですか、それともまだ広すぎますか? –

答えて

1

は/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. 
関連する問題