メインコンテンツまでスキップ
Sumo Logic Japanese

Apache Tomcat のログの収集

この手順では、ログを Apache Tomcat から Sumo Logic に収集する方法について説明します。

ログ タイプ

Apache Tomcat 用 Sumo Logic アプリケーションでは、3 つのタイプのログを使用します。

コレクタの設定

インストール済みコレクタを設定します。

ソースの設定

  1. ローカル ファイル ソースを設定します。
  2. 以下のソース フィールドを設定します。
    1. Name (名前)。(必須) 名前は必須です。必要に応じて説明を入力します。
    2. File Path (ファイル パス)。通常は /var/log/tomcat7 です。
    3. Source Category (ソース カテゴリ)。(必須) [Source Category (ソース カテゴリ)] メタデータ フィールドは、ソースを整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照してください。
  3. [Advanced (詳細)] セクションを設定します。
    1. Enable Timestamp Parsing (タイムスタンプ パースの有効化)。true
    2. Time Zone (タイムゾーン)。デフォルトではログは UTC で記録されます。
    3. Timestamp Format (タイムスタンプ フォーマット)。自動検出。
  4. [Save (保存)] をクリックします。

フィールド抽出ルール

Apache Tomcat のアクセス ログ

| parse regex "(?<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}? )" 
| parse regex "\"(?<method>\D{1,7}? )" 
| parse regex "\"\D{1,7} (?<url>\S{1,2048}? )" 
| parse regex "\" (?<status>\d{3}? )" 
| parse regex "\" \d{3} (?<time_taken>\d{1,}? )" 
| parse regex "\" \d{3} \d{1,} (?<bytes_sent>\d{1,}?)"

ログ メッセージのサンプル

10.255.145.54 - - [11/Jan/2017:19:48:09 +0000] "POST /sample/post/v1/Document HTTP/1.1" 200 52080 "-" "Apache XYZ  2.7.10" 114 http-abc-8080-abc-170

10.171.131.162 - - [11/Jan/2017:19:48:09 +0000] "GET /this/is/a/urlgetList?_dc=14841645219073&objectUuid=&companyUuid=&showDistributionList=false&page=1&start=0&limit=25&sort=%5B%7B%22test%22%3A%22p.test%22%2C%22direction%22%3A%22ASC%22%7D%5D HTTP/1.1" 200 11111 

"https://example.notarealhostname.com/Contracts/user.do?appUserUuid=7e12ac65-41b9-449b-b483-425a9e29a244" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 280 http-nio-8080-exec-223

クエリのサンプル

応答タイプ

_sourceCategory=Tomcat/*
| parse regex "(?<remote_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?<user>\S+)\s+(?<hostname>[\S]+)\s+\[" nodrop
| parse regex "(?<remote_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?<local_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?<user>\S+)\s+(?<hostname>[\S]+)\s+\[" nodrop
| parse regex "\s+\[(?<date>[^\]]+)\]\s+\"(?<method>\w+)\s+(?<uri>\S+)\s+(?<protocol>\S+)\"\s+(?<status_code>\d+)\s+(?<size>[\d-]+)" nodrop
| parse regex "\"\s+\d+\s+[\d-]+\s+(?<timetaken>[\d-]+)"
| if(status_code matches "2*", "successes", "Others") as status
| if(status_code matches "3*", "redirects", status) as status 
| if(status_code matches "4*", "client_errors", status) as status
| if(status_code matches "5*", "server_errors", status) as status
| count by status | sort by _count

  • この記事は役に立ちましたか?