LoginSignup
2
2

More than 1 year has passed since last update.

【Oracle Cloud】OCI Loggingのカスタム・ログでApacheのアクセスログを取り込んでみた

Last updated at Posted at 2021-05-25

はじめに

Oracle CloudのOCI Loggingでは、カスタム・アプリケーションや他のクラウド・プロバイダのログを取得することができる、カスタム・ログという機能があります。
今回は、カスタム・ログを用いてApacheのアクセスログをOCI Loggingに取り込む方法を紹介します。

Apacheの設定

Oracle CloudのComputeインスタンスを作成します。今回、OSはCentOS 7で作成しました。
yumでApacheをインストールし、Apacheを起動します。

//Apacheのインストール
$ sudo yum -y install httpd

//Apacheの起動
$ sudo systemctl start httpd

index.htmlファイルを作成します。

$ sudo sh -c 'echo "test for custom log" > /var/www/html/index.html'

今回はログを確認できればよいので、curlでhttp://localhost:80にアクセスします。

$ curl http://localhost:80
test for custom log

Apacheのアクセスログは、/var/log/httpd/access_logに出力されます。
先ほどcurlでアクセスした際のログが出力されていることを確認します。

/var/log/httpd/access_log
::1 - - [25/May/2021:14:54:31 +0000] "GET / HTTP/1.1" 200 20 "-" "curl/7.29.0"

Apacheのアクセスログのフォーマットは、/etc/httpd/conf/httpd.confで確認できます。

/etc/httpd/conf/httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

OCI Loggingの設定

ログの出力が確認できたので、OCI Loggingの設定を行なっていきます。

まず、動的グループを作成します。動的グループ内のインスタンスがログ収集の対象になります。
メニューの「アイデンティティとセキュリティ」→「アイデンティティ」→「動的グループ」→「動的グループの作成」をクリックします。
image.png

今回はコンパートメント内のインスタンスをログ収集の対象にしたいので、
ルールにinstance.compartment.id = 'コンパートメントOCID'を入力し、「作成」をクリックします。
image.png

次にログ・グループを作成します。
image.png

ログ・グループの名前を入力し、「作成」をクリックします。
image.png

ログ・グループの作成が完了したら、カスタム・ログの設定を行っていきます。
「カスタム・ログの作成」をクリックします。
image.png

カスタム・ログ名を入力し、「カスタム・ログの作成」をクリックします。
image.png

エージェント構成を設定していきます。

image.png

image.png
ここでは下記の2項目を設定していきます。

ホスト・グループの選択

グループタイプ:動的グループ
グループ:作成した動的グループを選択

※動的グループを選択すると、ロギング・サービスの使用を許可するポリシーを作成するボタンが表示されるので、クリックしてポリシーを作成します。

ログ入力の構成

入力タイプ:ログ・パスを選択
名前の入力:任意の名前を設定
ファイル・パス:Apacheのアクセスログのパス/var/log/httpd/access_logを設定
高度なパーサー・オプション:APACHE2を選択

※パーサー・オプションはAPACHE2以外も用意されています。詳細は下記ドキュメントの「ログ入力およびパーサー
」をご覧ください。
https://docs.oracle.com/ja-jp/iaas/Content/Logging/Concepts/custom_logs.htm
image.png

ここまででエージェント構成の設定が完了したので、「カスタム・ログの作成」をクリックします。

ログの確認

ログ収集が行われていることを確認します。作成したログ名をクリックします。
image.png

画面下部の「ログの探索」に、取得したログが表示されます。
表示されない場合は、「時間によるフィルタ」を長めに設定してみてください。(デフォㇽトは5分に設定されています)
また、ログの時間はUTCとして取り込まれています。
image.png

ログが正しくパースされて取り込まれていることが分かります。

  "logContent": {
    "data": {
      "agent": "curl/7.29.0",
      "code": 200,
      "host": "::1",
      "method": "GET",
      "path": "/",
      "size": 20,
      "tailed_path": "/var/log/httpd/access_log"
    }

まとめ

無事に、カスタム・ログでApacheのアクセスログをOCI Loggingに取り込むことができました。

参考リンク

https://docs.oracle.com/ja-jp/iaas/Content/Logging/Concepts/custom_logs.htm
https://qiita.com/k_kane/items/8e9457ffcecb6f7d6e1b

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2