Nagios3によって監視されるようにローカルネット構成をすでに設定しています。 Nagios3がIP192.168.1.52に設定されたDebianサーバーのHTTP監視サービスで警告を報告するという問題を発見しました。このサーバーには、アプリケーション開発用の個別の仮想ホストと一括仮想ホストがあります。このステータスメッセージが表示されます:
HTTP警告:HTTP/1.1404が見つかりません
Nagiosツールを使用して確認しました。 servernameは、Apache構成で使用したvhostサーバー名の名前です。
/ usr/lib/nagios/plugins/check_http -H servername -I 192.168.1.52
このステータスメッセージの受信:
HTTP OK HTTP/1.1 200OK-0.504秒で37900バイト| time = 0.503946s ;;; 0.000000 size = 37900B ;;; 0
しかし、私がこのようにチェックすると:
/ usr/lib/nagios/plugins/check_http -I 192.168.1.52
警告と同じステータスメッセージが表示されるので、そのサーバーのvhostを認識しないため、Nagiosが完全に適切に設定されていないと思います。check_httpサービスが示すようにどうあるべきか。
その警告を修正するにはどこを見ればよいですか?
人。助けてくれてありがとう。でもあなたの答えをチェックする前に自分で答えを見つけました。ごめんなさい!
これを解決するために、commands.cfgファイルに次のようなカスタムコマンドを作成しました。
コマンドを定義する{
command_name custom_check_http command_line $USER1$/check_http -H $HOSTNAME$ -I $HOSTADDRESS$
}
$ USER1 $の目的についてはよくわかりませんが、$ USER1 $がないとクラッシュし、ボンドの制限が127になります。
ホスト定義は、pQdが書いたものと同様に、Host_nameとaddressですでに正しく書かれています(情報が不足していることをお詫びします!)。
ホストを定義する{
Host_name SERVERNAME alias SERVERNAME_ALIAS address 192.168.1.52 ...
}
最後に、services_nagios2.cfgファイルでのサービスの定義は、デフォルトのものと同じくらい単純です。
サービスを定義する{
hostgroup_name http-servers service_description Apache check_command custom_check_http use generic-service notification_interval 0 ; set > 0 if you want to be renotified
}
この質問をする前に、変数$ HOSTNAME $と$ HOSTADDRESS $の使用に気づいていませんでした。助けてくれてありがとう。
nagiosでサービスをどのように定義しますか?
これは次のようになります。
define command{
command_name my_check_http
command_line $USER1$/check_http -H$ARG1$ -I $HOSTADDRESS$
}
define Host{
use generic-Host
host_name something
alias something
address 192.168.1.52
# ...
}
define service{
use generic-service
Host_name something
check_http_args!nameofvhost
# ...
}
Webサーバーの1つで「同じ」問題が発生しました。そして、それは私たちのウェブサイトの更新が行われた後に現れました。また、IISのヘッダーも変更されたため、エラーが表示され始めました。
解決策:サーバー名をWebサイト名に変更しました。 「サーバー名」から「site.com」
Nagiosをバイパスし、Nagiosホストのコマンドラインからwgetを使用して、Nagiosに送信しているURLを確認します。
wget http://192.168.1.52/
wget http://servername/
上記のことから、最初のコマンドは失敗しますが、2番目のコマンドは機能すると思います。これにより、仮想サーバー名が別のIPアドレスに解決されていると思います。試してみてください
Dig servername
確認するために。
Nagiosの一般的なデバッグのヒントは、-vオプションを試すことです。これは、ほとんどのプラグインが詳細な出力を提供するために実装しています。 capture_pluginスクリプト は、プラグインがNagiosで実行されているときにデバッグ出力をキャプチャするのに非常に役立ちます。
Services.cfgで、IPの代わりにサーバー名を確認するか、http応答の代わりにポートを確認してください。
後者の例:
check_command check_tcp!80