0

sensu クライアントがあり、チェック スクリプトの 1 つでその PATH をデバッグすると、次のように表示されます。

/sbin:/usr/sbin:/bin:/usr/bin:/etc/sensu/plugins:/etc/sensu/handlers

この PATH を sensu 用にカスタマイズするにはどうすればよいですか。たとえば、/usr/local/bin を PATH の最後に追加したいので、次のようになります: /sbin:/usr/sbin:/bin:/usr/bin:/etc /sensu/plugins:/etc/sensu/handlers:/usr/local/bin

私は多くの方法を試しましたが、成功しませんでした.

  1. sensu ユーザーの SHELL を (デフォルトの /bin/false ではなく) /bin/bash に設定し、次の行を使用して、sensu ユーザーのホーム ディレクトリ /opt/sensu の下に .bashrc|.profile を追加します。export PATH=$PATH:/usr/local/bin
  2. /etc/default/sensu を編集し、この行を追加しますPATH=$PATH:/usr/local/bin
  3. https://sensuapp.org/docs/latest/clientsを読んで、/etc/default/sensuに設定USER=ec2-userし、sensu クライアントを再起動した後、sensu クライアント プロセスが ec2-user によって実行されていることがはっきりとわかりますが、驚くべきことに、 、PATH は ec2-user と同じではありません

上記の 1、2、および 3 はすべて機能しませんでした。python で記述されたチェック スクリプトでは、次の行があります。

from subprocess import call, Popen, PIPE
import os
import sys
import shlex

import platform
print os.environ["PATH"]

proc = Popen(['which', 'python'],
        stdout=PIPE,
        stderr=PIPE)
out, err = proc.communicate() #does not return until the process has terminated.
print(out)
print(err)
#print(platform.__dict__)
print(platform.python_version())

proc = Popen(['whoami'],
        stdout=PIPE,
        stderr=PIPE)
out, err = proc.communicate() #does not return until the process has terminated.
print(out)
print(err)
sys.exit(0)

出力は次のとおりです。

/sbin:/usr/sbin:/bin:/usr/bin:/etc/sensu/plugins:/etc/sensu/handlers
/usr/bin/python   
2.6.6 
ec2-user

Pythonチェックスクリプトに次の行を書きましたが、更新してください。

proc = Popen(['bash','--login', '-x'], stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
print(out)
print(err)

私はそれが出力されたのを見ました:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/etc/sensu/plugins:/etc/sensu/handlers:/usr/local/sbin:/usr/local/bin

しかし、他の出力は驚くべきことに.... "which python" -> /usr/bin/python, "python --version" -> 2.6.6

助けを求める....

4

2 に答える 2

0

次の行を追加します

  • export PATH=$PATH:/usr/local/bin

/etc/sysconfig/sensu-client」に。存在しない場合はファイルを作成します。クライアントを再起動すると、パスが更新されます。

于 2016-07-28T09:57:57.437 に答える
0

それで、PATHを追加しようとしますか/etc/default/sensu

PATH=$PATH:/usr/local/bin

https://github.com/sensu/sensu-build/blob/master/sensu_configs/upstart/sensu-client.conf#L30

. /etc/default/sensuそれを機能させます。

于 2015-09-30T00:00:30.210 に答える