監視下のApache 2。 Webサーバーシステムの負荷監視

監視下のApache 2



エントリー


Apache Webサーバーの監視について、インターネット上ですでに多くの投稿を書いています。 Google検索バーに「apache load monitoring」などのフレーズを入力すると、検索結果に最も有用なmod_statusモジュールが示されます。 また、perl拡張機能と組み合わせたこのモジュールのさらに優れた有用性についても。 また、これらのperl拡張機能にも少しパッチを適用すると、一般にスーパーシステムが取得されます。 しかし、そのようなシステムをセットアップしても、システム管理者は原則としてそこで停止することはありません。サーバー全体、次に各ホスト、そしてスクリプトの正確さについてのロード履歴がすでに必要です。 そのため、後で、以前のように、および負荷の分散方法を比較することができました。
そしてここで、Apache Webサーバーのモジュールmod_performance役立ちます。


それでは、レビューに取り掛かりましょう


このモジュールとは。 これは、Linux用の通常のApache 2.xモジュールです。 ドキュメントから:

これはどういう意味ですか? また、Webサーバーが受信した要求によって消費されるリソースの量を追跡できるという事実。 次の情報を保存するたびに:
  1. 要求が受信された仮想ホスト。
  2. 要求されているファイル。
  3. リクエストURI
  4. CPU負荷(%);
  5. メモリ使用量(%);
  6. 要求処理時間。

そして、蓄積された統計-分析することができます。 SQLiteは、保存と分析のためのデータベースとして使用されます。
リソース使用状況分析ツールとして、mod_statusやperl拡張機能のように使用されるのはスコアボードではなく、glibtopです。
このモジュールを使用すると、正規表現を使用してルールによってフィルター処理された、特定のすべてのリクエストを完全に追跡できます。 より正確には、モジュールは常に正規表現を含むフィルターに対応する要求のみを処理すると言われます。

蓄積されたデータを表示する方法


このモジュールは、データを表示および分析するための2つのインターフェースを提供します。1)グローバル。 2)いわゆるホストごと。
各インターフェイスはハンドラーに接続されます。

ユーザーステータス-ホストごと
パフォーマンスステータス-グローバル

インターフェイスへのアクセスは、mod_statusモジュールのように構成されます。

 <場所/パフォーマンスステータス>
    注文許可、拒否
     Sethandlerパフォーマンスステータス
     1.1.1.1から許可
 </場所>


グローバルインターフェイスを使用すると、すべての仮想ホストの累積データを表示および分析できますが、ホストごとのインターフェイスでは、たとえばホストtest.test.test / user-statusを呼び出した場合、インターフェイスが接続されているホストに関する情報のみを表示および分析し、表示されたすべての統計を表示しますこのホストのみに関係します。 他のホストの統計は表示されません。

グローバルモジュール管理インターフェイスは、次の図に示すようになります。
メインフォームmod_performance

メインフォームの図では、フィールドを確認できます。
モード -データ表示モード。
期間 -日、データの表示または分析の期間。現在の日付の始まりから始まります。
期間開始 -YYYY-MM-DD hh:mm:ss形式で指定された期間の始まり。
期間の終わり -形式YYYY-MM-DDで指定された期間の終わりhh:mm:ss。
期間の開始、期間の終了が設定されている場合、この場合、これらのパラメーターによって制限されるデータが表示され、期間フィールドは無視されます。 それ以外の場合、分析されるセクションは[期間]パラメーターによって設定されます。
ホスト名(SQL) -フィルター、指定されたホストのデータのみを表示します。 呼び出し構文は、SQLのlike構文に似ています。 つまり 「%test」を設定すると、「test」で終わるすべてのホストが選択されます。
スクリプト名(SQL) -前のパラメーターと同様に、呼び出されたスクリプトの名前のみが分析されます。
URI(SQL) -前のパラメーターと同様に、リクエストURIのみが解析されます。
グラフモード(Y / N) -グラフィックスまたはテキストで表示します。

サンプルデータ出力は次のようになります。
蓄積された情報のテキスト出力

写真の例に示されているホストは完全にテスト済みであり、実際のホストと一致する場合は謝罪します。
グラフィック表示モードを次の図に示します。
グラフィカル出力

分析モード


分析なしで出力を表示-分析せずに収集された情報を表示し、ホスト、スクリプト、およびURI(グラフィックモードおよびテキストモード)でフィルタリングします。
最大%CPU-最大値%CPU(フィルタリングを含む)のレコードのみを表示します。
最大メモリ% -最大値が%メモリ(フィルタリングを含む)のレコードのみを表示します。
最大実行要求時間 - 実行時間の最も長いスクリプトを出力します。
ホスト要求統計 - ホストへの呼び出しの統計を降順で並べ替えて表示します(フィルターを含む合計の%)。
実行履歴画面(期間開始を使用) -指定した時間に実行中のクエリのリストを計算できます
ドメインごとのリクエスト数 -降順(パーセントではなく数量)でソートされたホストへの呼び出しの統計を表示します。
ホストごとの平均使用量 -各ホストごとの平均サーバー負荷を表示します(%CPUの合計、%MEMORYの合計、スクリプト実行量、期間の平均%CPU、平均%メモリ使用量、平均スクリプト実行時間)。
詳細には触れず、一部のモードを無人のままにします。

モジュールのインストール方法


ここでは、rpmシステムのインストール例を示します。 すべてのアクションはルートとして実行する必要があります。
1)アセンブリに必要なパッケージをインストールします。

  yum install httpd-devel apr-devel libgtop2-devel sqlite-devel gd-devel 


2)ソースコードの一時パックを作成します。

  mkdir〜/ my_tmp
 cd〜/ my_tmp 


3)モジュールのソースコードをダウンロードし、アーカイブを解凍して、解凍したフォルダーに移動します。

  wget http://lexvit.dn.ua/utils/getfile.php?file_name=mod_performance_tar201104233487.gz -O mod_performance.tar.gz
 tar zxvf mod_performance.tar.gz
 cd mod_performance / 


4)モジュールを組み立てます:

 作る 


5)警告に注意を払いません。 主なことは、エラーがないことです。 すべてがうまくいった場合:

 インストールする 

または
  cp .libs / mod_performance.so <コピー先のパス> 


Apacheを構成する


設定は、標準のApacheインストール用に実行されます。つまり、モジュールは/ etc / httpd / modulesディレクトリにあり、/ etc / httpd / conf.d /ディレクトリが存在し、/ ect / httpd / conf / httpd.confに接続されます。
1)モジュール構成ファイルを作成します。

  /etc/httpd/conf.d/mod_performance.confにタッチします 


2)挿入する:

 LoadModule performance_moduleモジュール/ mod_performance.so

 <IfModule mod_performance.c>
 PerformanceHistory 5
パフォーマンス有効
 PerformanceMaxThreads 80
 PerformanceScript \ .php
 PerformanceStackSize 1
パフォーマンスUseCanonical On

 <場所/管理ステータス>
注文許可、拒否
 Sethandlerパフォーマンスステータス
 1.1.1.1から許可
 </場所>
 </ IfModule>


3)ファイルを保存し、Apacheを再起動します。

 サービスhttpdの再起動 


構成ファイルは単なる例です。 すべてのパラメーターは、特定のサーバーに一致する必要があります。
上記のモジュール構成により、PHPスクリプトへのリクエストを追跡できます。
すべての構成パラメーターの説明は、モジュールの資料に記載されています。

現時点では、モジュールは、Apache + mod_fcgid、Apache + mod_cgidサーバーの構成または別のデーモンが要求を処理する構成の要求を追跡できません。

これでモジュールのレビューは完了です。

Source: https://habr.com/ru/post/J119011/


All Articles