実運用を想定したAlibaba CloudのLogService構成を考えてみる~ログ検索編②~
今回は、Alibaba Cloudの【LogService】の検索編②を投稿します。
本記事では、Apache設定で収集したログを閲覧・検索していきます。
Apacheのアクセスログについて
Apacheのアクセスログはhttpd.conf
にてLogFormat
をデフォルト設定のまま使用している場合は、下記のような形式で出力されます。
111.1.1.1 - -[02/Jul/2019:16:42:49 +0800] "POST /web/jsrpc.php?output=json-rpc HTTP/1.1" 200 63 "http://47.1.1.1/web" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
収集したログの検索については、シンプルモードでの検索と同様の手順で実施可能です。
LogtailConfigで定義したApache設定を使用すると、このようなログに対して、
アクセス元、status毎での集計や数値として定義されているデータの集計が可能です。 なお、集計を実施するためには、インデックスを設定する必要があります。 そのため、本記事では、ログ確認⇒インデックス設定⇒ログの集計の順に実施します。ログ確認
Logstore
の一覧が表示されます。
この中から確認対象のLogstore
を選択します。
ここでは、web1-logstore
のログ使用モード
配下にある検索
をクリックします。
ログ検索画面内に収集したログが表示されます。
(参考)![img](https://raw.githubusercontent.com/sbcloud/help/master/content/usecase-LogService/LogService_images_26006613403075200/20190823150344.png "img")
Apache設定にて収集した場合は、大きく分けて生ログ
、ログ収集元ホスト情報
、Logtailconfigにて設定したApacheキーにて生ログから抽出した値
が表示されます。
Apacheキー名は、LogtailConfig作成時に定義しております。
インデックスの設定
LogServiceにて取得したログの集計を行う場合は、インデックスの設定を実施する必要があります。
ここでは、Apacheキー名で抽出した値を集計するためにApacheキーをインデックスとして設定します。
インデックスについての詳細な説明はこちらの公式ドキュメントをご参照下さい。
以下、手順です。
集計したい
キー名
を入力します。
ここでは、下記の値を入力します。
__source__
__tag__:__hostname__
__tag__:__path__
__tag__:__user_defined_id__
__topic__
http_user_agent
remote_addr
request_method
request_protocol
request_uri
response_size_bytes
status
time_local
キーに対する
データ型
を入力します。
ここでは、数値として取り扱う可能性があるものをlong
それ以外をtext
としました。クエリ発行時に ④ で定義した
本記事では、使用しません。キー
を別名で検索したい場合にします。大文字と小文字を区別したい場合に使用します。
本記事では、使用しません。ログ収集時、トークン内の値でログを区切って収集することが可能です。
デフォルト設定では、下記のトークンで区切られます。
, '";=()[]{}?@&<>/:\n\t
なお、本記事では不要のため、空白
とします。取得した値を集計し、カウントしたい場合は、有効にします。
本記事では、有効
とします。下記のポップアップが表示されたら
OK
をクリックします。
設定反映後に取得したログから集計が可能となります。
※インデックス設定前に取得したログについては、集計の対象外となります。
Rawデータ
のクイック解析
の箇所に設定したキー
が表示されていることを確認します。
ログの集計
インデックスにて設定したキー毎にログの集計を実施します。
ここでは、過去1週間のアクセス元毎での集計を例に手順を記載していきます。
アクセス元のみを集計
インデックスの設定後、数日間ログを流し続け、ログを正常に受信していることを確認した後、集計を実施します。
以下、手順です。
Logstore画面にて、検索対象とする時間帯を選択します。
ここでは、1週(相対)
とします。生ログに記載されているアクセス元のグローバルIPアドレスが自動で集計されて表示されます。
GUI上では、
パーセンテージ
でアクセス元の割合が表示されております。
〇〇%の箇所もしくはバーにマウスを合わせるとアクセス数
が表示されます。クエリ
が自動生成されます。発行されたクエリの全量がデータソースタブに反映されます。
グラフ
タブに自動で遷移します。グラフの種類の中から
チャートプレビュー
が自動選択されます。グラフは、様々な形式で使用することが可能です。
使用可能なグラフの全量については、こちらの公式ドキュメントをご参照下さい。
下記の画面は、横棒グラフ
を選択した場合の表示結果です。
グラフについては、ダッシュボード化することも可能です。
ダッシュボード化については、次回以降に記載します。ログのダウンロードについては、画面上に出力されているクエリの結果をダウンロードすることや
生ログをダウンロードすることが可能です。
ログをダウンロードについても、次回以降に記載します。
アクセス元をstatusで絞って集計
ここでは、アクセス元をstatusで絞って集計します。
以下、手順です。
アクセス元を集計するため、
status
右のボタンをクリックします。status
200
で絞るため、値をクリックします。クエリ
が自動生成されます。再度
remote_addr
右をクリックし、status200
で絞り込んだアクセス元を表示します。クエリが自動発行されます。
クエリの全量がデータソースタブに反映されます。
status
で絞り込まれた集計結果が表示されます。
このように、あらかじめ検索条件を絞り込んで集計・グラフ化することも可能です。