1.監視原理
状態モジュールから(--with-http_stub_status_module)モニタ
2. nginxの構成(/etc/nginx/conf.d/default.conf)を変更
監視対象ホストのnginxの設定ファイルに変更され、設定ファイルに以下の(場所)を追加し、nginxの改訂版サービスを再起動することを忘れないでください:
{LOCATION / nginx_status stub_status ON; 192.168.10.100を可能にする;#は、ホストがURLにアクセス許可されていることを示します。http://192.168.10.100/nginx_status ; 192.168.10.2を許可 OFF access_logの; }
3.モニタースクリプトを追加します。
nginxのnginxのサーバーホスト上の監視スクリプトの追加スクリプトを実行可能権限を与えながら、(/etc/zabbix/zabbix_agent.d/nginx_status.shます。chmod + X nginx_status.sh
#!/ binに/ bashの #Scriptは、システム監視のためにnginxのステータスを取得するには HOST = "192.168.10.100" #ipの地址为装有nginxの服务的主机地址 PORT = "80" 機能のping { | / sbinに/ pidof nginxのを トイレ-l } {アクティブ機能 カールは/ usr / binに/に"http:// $のHOST:$ PORT / nginx_status /" 2>を/ dev / null | | grepの'アクティブ' awkの'{印刷$ NF}' } 機能読ん{ は/ usr / binに/に"http:// $のHOST:$ PORT / nginx_status /"カール2>を/ dev / null | grepの'読書' | awkの{$ 2を印刷} ' } {書き込み機能 は/ usr / binに/ ":// $のHOST:HTTP $ PORT / nginx_status /"カール2>を/ dev / null | grepの'ライティング' | awkは'{$ 4印刷します}' / usr / binに/に"http:// $のHOST:$ PORT / nginx_status /"カール2>を/ dev / null | grepの'ウェイティング' | awkの{$ 6印刷} ' } 関数は{受け入れ は/ usr / binに/ ":// $のHOST:HTTP $ PORT / nginx_status /"カール2>を/ dev / nullを| awkのNR == 3 | awkの{$ 1印刷} ' } 機能扱わ{ の/ usr / binが/カールは"http:// $のHOST:$ PORT / nginx_status /" 2>を/ dev / null | awkのNR == 3 | awkの{$ 2を印刷} ' } {機能要求 は/ usr / binに/に"http:// $のHOST:$ PORT / nginx_status /"カール2>を/ dev / nullを| awkのNR == 3 | awkの{$ 3印刷} ' } $ 1
4.テストは、アクセスを検出します
[ルート@ ZABBIXサーバ-センター alertscripts]#カールhttp://192.168.10.100/nginx_status #ipのアドレスnginxのサーバーのホストアドレス :. 1アクティブ接続 サーバーが処理受け入れ要求 1. 1. 1。 読書:0書き込み:0:待機中1
検出スクリプトテスト
nginxの状態に関するいくつかの概念:
nginxのは、処理されているアクティブリンク数アクティブな接続の数、重要な サーバーnginxのは、今どのように多くの接続の合計を扱っ始めます。 nginxのは、今握手を合計成功を数回作成を開始受け入れます。 nginxのは、総リクエストを複数回処理された要求を処理していました。 読書nginxのは、クライアントの数のヘッダー情報を読み取ります。 書き込みnginxのは、クライアントのヘッダカウント情報に戻りました。 待機nginxのは、オープン、次のリンクが要求コマンドを待っている存在に処理されています。 キープアライブの場合には、この値を待ってアクティブ- (読み取り+書き込み)に等しいです。 リクエスト損失=(数ハンドシェーク-接続を)見ることができ、この状態表示要求が失われることはありません。
[ルート@ ZABBIXサーバーセンターがalertscripts]#SHをnginx_status.shアクティブ 1 [ルート@ ZABBIXサーバーセンターがalertscripts]#SHが読み取りnginx_status.sh 0 [ルート@ ZABBIXサーバーセンターをalertscripts]#SHをnginx_status.sh書き込み 1 受け付けnginx_status.sh [ルート@ ZABBIXサーバ中心部alertscripts]#SHを 20
6. nginxののサービス(/etc/zabbix/zabbix_agentd.conf)を持つホスト上のzabbix_agentd.confの設定ファイルを変更します。
UnsafeUserParameters = 1:レビュー:1に等しいUnsafeUserParameters
7. /etc/zabbix/zabbix_agentd.d/ディレクトリに入れZABBIXプロファイルを、追加のプロファイルnginx_status.confを作成する(/etc/zabbix/zabbix_agentd.confエージェントプロファイルは、他のキーで定義されているディレクトリが含まれています)
[*] UserParameter = nginxの、/etc/zabbix/zabbix_agentd.d/nginx_status.sh $ 1:追加 のパスの後に#がスクリプトの場所を監視することです
8.再起動ZABBIXエージェントサービス
[ansible制御zabbix_agentd.d @ルート]#systemctl再起動ZABBIX-agent.service
ZABBIXサーバテストサーバー9.、取得したデータが正常であるか否か
[ルート@ ZABBIXサーバーセンター/]#zabbix_get -s 192.168.10.100 -p 10050 -k nginx.status [ピング] 1 [ルート@ ZABBIXサーバセンター/]#zabbix_get -s 192.168.10.100 -p 10050 - k個のnginx.status [要求] 2304 [ルート@ ZABBIXサーバセンター/]#zabbix_get -s 192.168.10.100 -p 10050 -k nginx.status [受け入れる] 6285 [ルート@ ZABBIXサーバセンター/]#1 zabbix_get - S 192.168.10.100 -p 10050 -k nginx.status [取り扱い] 6286
7.インターフェイス設定監視テンプレートZABBIXを入力します。
(1)テンプレートを作成します。
(2)アプリケーションのセットを追加します。
(3)監視項目を作成します。
(4)複数の監視エントリを作成します。
(5)トリガーを作成するには:実行可能な状態nginxののリアルタイム監視をトリガー、nginxのは、一度マシンをダンプし、アラームが発生します。
(6)グラフィックスを作成します:
nginxのサービスを搭載した8ホストテンプレート
9.チェックモニタグラフィック
10.値の先頭が比較的小さい場合は、AB簡単なストレステスト(主に要求)を使用して、値の変化を見ることができ、グラフィックスを表示するに助長されていません
[ルート@のZABBIXサーバ-センター/]#AB 1000年-c 1000年-n http://192.168.10.100:80/nginx_status
[ルート@ ZABBIXサーバ-センター/]#AB -n 1000年-c 1000年http://192.168.10.100:80/nginx_status :これはApacheBench、バージョン2.3 <1430300 $ $リビジョン>である 著作権1996アダムTwiss、ゼウス・テクノロジー株式会社、http://www.zeustech.net/ Apache Software Foundationの、http://www.apache.org/にライセンス ベンチマーク192.168.10.100(我慢して) 完成した100件のリクエスト が完了し200件のリクエスト が完了し300点の要求 400個の要求が完了した 500を完了リクエスト 600件のリクエストが完了し 700件のリクエストが完了し 800件のリクエストが完了し 900件のリクエストが完了し 1000個の要求完了 1000要求の完成 nginxの/ 1.17.1:サーバーソフトウェアを 192.168.10.100:サーバーのホスト名を サーバーポート:80 ドキュメントパス:/ nginx_status 文書の長さ:106バイト 同時実行レベル:1000 のテストにかかった時間:0.331秒 完全な要求:1000 の要求を失敗しました:819 (接続:0、受信:0、長さ: 819、例外:0) エラーを書く:0 転送合計:253092バイト HTML転送:109092のバイト 毎秒要求:3016.63 [#/秒(平均) リクエスト当たりの時間:331.496 [MS](平均) リクエスト当たりの時間:0.331 [ MS(つまり、すべての同時要求を横切って) 転送速度:745.59 [バイト/秒]は受信しました 接続時間(ミリ秒) 分を意味する[+/- SD]メジアン最大 接続:3 31 15.1 26 69 処理:26 90 68.1 62 253 待機:1 90 68.2 62 253 合計:72 121 64.4 91 282 要求の割合が一定時間内に配信(MS) 50%91 66%103 75%109 80%113 90%239 95%280 98%282 99%282 100%282(最長要求)