ApacheのログをAzureのLogAnalyticsに送る
環境
さくらのVPS
OS:CentOS Linux release 7.3.1611 (Core)
Apache:2.4.6
ゴール
CentOS7サーバのApacheのログを、AzureのOMSで検索する。
前提
Azureにアカウント作成していること(サブスクリプションは無料でもOK)
LinuxサーバにOMSAgentをインストールし、OMSとLinuxが接続されていること。接続されていない場合、下記リンクを参考に準備して下さい。
OMSAgentのApacheモジュールのインストールと設定
omsagentがインストールされるときにサーバにApacheが検出された場合は、Apacheのパフォーマンス監視プロバイダーが自動的にインストールされます。 このプロバイダーは、パフォーマンス データにアクセスするために Apacheに読み込む必要のある モジュールに依存しています。 このモジュールは、次のコマンドを使用して読み込ませます。
1 |
$ sudo /opt/microsoft/apache-cimprov/bin/apache_config.sh -c |
パフォーマンス カウンターの定義
portal画面から「対象のOMS」→「詳細設定」→「Data」→「Linuxパフォーマンスカウンター」でパフォーマンスカウンターを構成して下さい。
|
OMSAgentのApacheの設定ファイルを編集
workspace idを対象のOMSのidに変更して下記コマンドを実施して下さい。
1 2 |
$ sudo cp /etc/opt/microsoft/omsagent/sysconf/omsagent.d/apache_logs.conf /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/ $ sudo chown omsagent:omiusers /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/apache_logs.conf |
今回、OMSに収集して欲しいApacheのログは「/usr/local/apache2/logs/access_log」と「/usr/local/apache2/logs/error_log」なので、pathの値を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Apache Access Log <source> ... path /usr/local/apache2/logs/access_log #/var/log/apache2/access.log /var/log/httpd/access_log /var/log/apache2/access_log ... </source> # Apache Error Log <source> ... path /usr/local/apache2/logs/error_log #/var/log/apache2/error.log /var/log/httpd/error_log /var/log/apache2/error_log ... </source> |
ファイル編集後、OMSAgentを再起動します。
1 |
$ sudo /opt/microsoft/omsagent/bin/service_control restart |
再起動後、OMSAgentがエラーを出していないか確認します。
1 |
$ tail /var/opt/microsoft/omsagent/<workspace id>/log/omsagent.log |
LogAnalytics
LogAnalyticsにApacheのログが出力されるまで12時間ほどかかりました。
LogAnalyticsでApacheのアクセスログすべてを出すクエリは次のものです。
1 |
ApacheAccess_CL |
エラーログの場合
1 |
ApacheError_CL |