モニタリング 5.25.2
以下は資格情報の設定です。
set httpd port 2812
allow localhost
allow guest:guest read-only
allow @wheel
allow cleartext /opt/monit/htpasswd
理由:
- ローカルホスト〜できるようにするモニターの状態
- ゲスト:ゲスト全員のネットワークアクセスを有効にする(読み取り専用)ゲスト
- @ホイールローカルユーザーグループへのフルWebアクセスを有効にするホイール
- プレーンテキストホストにないユーザーのペアに対して完全なWebアクセスを有効にします。
ドキュメントを読み、設定を「シャッフル」してみましたが(ため息)、一般的な問題を解決する方法がわかりません。次の2つの使用法のうちの1つだけが機能します。
- コマンドラインからの状態の監視
- クライアントコンピュータからのネットワークアクセス(IPアドレスはホスト自体ではありません)
修正する
私は2つの問題を偶然発見しました。
- ローカルホストを許可
これがないと、すべてのクライアントコンピュータがアクセスできますが、モニターの状態動作しません。
「Allow localhost」を使用するとクライアントがブロックされるため、以下も指定する必要があります。
10.0.0.0/8 許可
IMHO これは文書では明確ではありません。
- クライアントコンピュータでテストしています...資格情報を記録してください。
コンピュータから監視にアクセスすると、ブラウザは資格情報をキャッシュするため、これらのテストは誤解を招く可能性があります。
修正する
問題を発見しました。
strace -s 512 -e connect,write /opt/monit/bin/monit status 2>&1 |more
connect(4, {sa_family=AF_INET, sin_port=htons(2812), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
write(4, "POST /_status HTTP/1.0\r\nContent-Type: application/x-www-form-urlencoded\r\nCookie: securitytoken=88521284dfbc7acea0521e16e11356d1\r\nContent-Length: 58\r\n\
r\nformat=text&securitytoken=88521284dfbc7acea0521e16e11356d1", 209) = 209
write(2, "You are not authorized to access monit..."
Cookieを送信する理由は何ですか:securitytoken =?
私たちが定義した構成で
ゲストを許可する:ゲストは読み取り専用
次のようにHTTPリクエストを行うとゲスト資格情報、動作方法:
"GET /_status?format=text HTTP/1.0\r\nAuthorization:Basic Z3Vlc3Q6Z3Vlc3Q=\r\n\r\n"
答え1
チケットを開き、開発者はそれがバグであることを見つけました。
彼らは一生懸命働いています。
https://bitbucket.org/tildeslash/monit/issues/769/monit-status-doesnt-work