Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2020/01/31 ログ勉強会 「WindowsのWEBサーバログをリアルタイム監視・可視化...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
JunjiKoide
January 31, 2020
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2020/01/31 ログ勉強会 「WindowsのWEBサーバログをリアルタイム監視・可視化してみた」
https://loganalytics.connpass.com/event/157354/
JunjiKoide
January 31, 2020
More Decks by JunjiKoide
See All by JunjiKoide
re:Invent完全攻略ガイド
junjikoide
1
880
エンジニアに定年なし! AI時代にキャリアをReboot — 学び続けて未来を創る
junjikoide
1
430
ラスベガスの歩き方 2025年版(re:Invent 事前勉強会)
junjikoide
0
2.5k
2023/09/14 Fin-JAWS #32 「SIEM on Amazon OpenSearch Serviceを1年運用してわかったこと」
junjikoide
3
820
2021/03/22 Fin-JAWS #20 「AWS認定12冠制覇への道」
junjikoide
0
54
2020/05/04 Fin-JAWS#12 「4/20に発生したAWS障害、何が起きてたの?」
junjikoide
3
690
2020/03/31 JAWS DAYS 2020 オンライン 「最近AWSに移行してよかったと思ったこと」
junjikoide
0
54
2019/12/05 Fin-JAWS#7 「Transit Gateway Multicast」
junjikoide
0
66
2019/6/18 初心者支部 #18 「Direct Connectって何? どうやったら使えるの?」
junjikoide
0
71
Other Decks in Technology
See All in Technology
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
190
RAG を使わないという選択肢
tatsutaka
1
250
AIのReact習熟度を測る
uhyo
2
620
入門!AWS Blocks
ysuzuki
1
140
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
360
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
230
手塩にかけりゃいいってもんじゃない
ming_ayami
0
600
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.2k
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
150
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
150
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
AIはどのように 組織のアジリティを変えるのか?
junki
4
990
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
410
Scaling GitHub
holman
464
140k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
730
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Crafting Experiences
bethany
1
180
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
A Soul's Torment
seathinner
6
2.9k
The SEO Collaboration Effect
kristinabergwall1
1
490
Transcript
Copyright © 2019 QUICK Corp. All Rights Reserved. WindowsのWEBサーバログを リアルタイム監視・可視化してみた
2020/1/31 株式会社QUICK 小出 淳二
2 Copyright © 2019 QUICK Corp. All Rights Reserved. 小出
淳二 Junji Koide ・株式会社QUICK ・コンサルティング営業本部 SREチームリーダー リードエキスパート ・Fin-JAWS運営 ・AWS認定資格10冠 情報安全確保支援士 ・好きな音楽 EDM(ZEDD、Kruwella) ・趣味:海外旅行 行った国60カ国、毎年海外で年越し 2012年末 障害対応w 2013年末 リオデジャネイロ 2014年末 バルセロナ 2015年末 ダナン 2016年末 ルアンパバーン 2017年末 ジャカルタ 2018年末 スリランカの アーユルヴェーダ 2019年末 ガパリビーチ 自己紹介
3 Copyright © 2019 QUICK Corp. All Rights Reserved. アジェンダ
・はじめに ・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
4 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
5 Copyright © 2019 QUICK Corp. All Rights Reserved. 1000台規模のWindowsサーバベースの
システムをAWSに移行しました。 (昨年末完了) SREチームとして実施してきたログに関 しての取り組みをご紹介します。 未だ試行錯誤の段階なので、是非皆さん といろいろ考えながら改善していき、その 結果を共有できればと思ってます。
6 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
7 Copyright © 2019 QUICK Corp. All Rights Reserved. 全体構成図
Corporate data center Direct Connect (TY2) Direct Connect (CC1) AWS Cloud Availability Zone Public subnet Private subnet Public subnet Instances(web) Private subnet Instances(db) Private subnet Instances(web) Private subnet Instances(db) VPC
8 Copyright © 2019 QUICK Corp. All Rights Reserved.
9 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Cloudfrontログ
・ALBログ ・WAFログ(BIG-IP ASM、AWS WAF) ・IISログ ・Windowsイベントログ等
10 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Cloudfrontログ
・ALBログ ・WAFログ(BIG-IP ASM、AWS WAF) ・IISログ ・Windowsイベントログ等 今日はここのお話をします
11 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
12 Copyright © 2019 QUICK Corp. All Rights Reserved. ・諸々のトラブルシューティング
(AWSの障害、リリース時の諸々の ミス、システム外部接続系のトラブル など) ・システムの異常やDDoS攻撃などを 早期(リアルタイムに近い形)に検知 したい ・ユーザのアクセス分析、ユーザへの アクセス分析情報提供サービス
13 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
14 Copyright © 2019 QUICK Corp. All Rights Reserved. ・1日1回、0時過ぎから数時間掛けて数百
台のIISログを収集。集計サーバにて数時間 掛けて日次バッチ処理。 0:30ログ収集開始→11~12時台に完了 ・障害や何らかのインシデント発生時に、 リアルタイムに集計、検索ができない。都 度インフラ担当がWEBサーバからログを収 集・集計し調査(時間と工数かかる)
15 Copyright © 2019 QUICK Corp. All Rights Reserved. ・深夜のログ収集時に監視ネットワークの
トラフィックが大量発生し、末端L2SWの Uplinkが詰まって監視のポーリングをこぼ して誤検知多発 ・UplinkをGiga化したりFE 2本でリンクア グリゲーションしたり、監視強化したり、 ログ担当に流量押さえて送信するよう改造 させたり、インフラ担当(当時私)大変
16 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
17 Copyright © 2019 QUICK Corp. All Rights Reserved. レガシーなログ集計・分析システムは、
そのままリフトw →担当者にAWSの知見ゼロ 協力会社にも AWS詳しい人いない 移行開始まで時間が 無い、などなど、、
18 Copyright © 2019 QUICK Corp. All Rights Reserved. 一応処理時間は短縮されたけど、、
オンプレ 0:30ログ収集開始→11~12時台に完了 AWS 0:30ログ収集開始→8時頃には完了
19 Copyright © 2019 QUICK Corp. All Rights Reserved. でもせっかくクラウドのサービスあるんだ
から今の課題を解決したい SREチーム、よろ!
20 Copyright © 2019 QUICK Corp. All Rights Reserved. いろいろ悩ましい点
目的、予算、体制、要件は・・
21 Copyright © 2019 QUICK Corp. All Rights Reserved. エンドユーザはこれを求めています
お気軽にスモールスタート出来 て、スケールが可能 大規模になっても費用がリーズ ナブルで手間いらず
22 Copyright © 2019 QUICK Corp. All Rights Reserved. IISログ、どうする?
23 Copyright © 2019 QUICK Corp. All Rights Reserved. Datadog
Log Management ・お手軽に利用可能(使っただけ課金) ・でもWEBサーバ全台にDatadog Agent入れると ・Fluentd Aggregatorからプラグインで送れそう ・一旦全ログ送りつけてExclusion Filterで課金対 象をフィルタリングできる ・Alert condition 設定してログ監視も出来そう でも結局ログ量が多くなると高くね?
24 Copyright © 2019 QUICK Corp. All Rights Reserved. SumoLogic
・SaaS楽だし、Datadogよりログに特化してて いいかも え、契約が年間契約?? ・結局ログ量が多くなると高くね?
25 Copyright © 2019 QUICK Corp. All Rights Reserved. Amazon
ES + Kibana ・良さそうだけど、一からお勉強する の大変そうかな ・サイジングではまってる人も見かけ るしな ・何か構築はそれなりに気合いがいり そうだな、どうしようかな・・・
26 Copyright © 2019 QUICK Corp. All Rights Reserved. Athena+QuickSight
・何かAWS最近この構成推してるな ・ログ監視もとりあえずFluentdの filterでなんとか出来そうだし お気軽に出来そうなので一旦これで やってみようかな
27 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
28 Copyright © 2019 QUICK Corp. All Rights Reserved. 構成図
29 Copyright © 2019 QUICK Corp. All Rights Reserved. 設計のポイント
・ログ分析用のアカウントを分離 いろんな人がAthena、Quicksightを使うので、 本番サービス用と分離した。
30 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Fluentd
Aggregatorを設置 Aggregatorはボトルネックや障害ポイントに なるので、WEBサーバ側でフィルターやパース 処理させて直接Firehoseに送信したかったが、 WindowsでのFluentd事例が少なく、ナレッジ がないので、WEBサーバ側で複雑な処理はあき らめてAggregatorへのログ送信に専念させた。 WEBサーバCPU使用率40%時にFluentdはだい たい1~2%を消費。
31 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Aggregatorでログ監視
あるフィールド(TimeTaken)の値をFluentdの filterを使って正規表現で引っかけて、ローカル ログに出力。そのログファイルをZabbixエー ジェントがログ監視しZabbixアラーム通知。
32 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregator
td-agent.conf例(パース処理) IISのアクセスログをパース処理 <filter prod.iis.log> @type parser key_name message <parse> @type regexp keep_time_key true time_key time time_format %Y-%m-%d %H:%M:%S expression /^(?<time>[^ ]* [^ ]*) (?<ssitename>[^ ]*) (?<scomputername>[^ ]*) (?<sip>[^ ]*) (?<csmethod>[^ ]*) (?<csuristem>[^ ]*) (?<csuriquery>[^ ]*) (?<sport>[0-9]*) (?<csusername>[^ ]*) (?<cip>[^ ]*) (?<csversion>[^ ]*) (?<csua>[^ ]*) (?<cscokie>[^ ]*) (?<csreferer>[^ ]*) (?<cshost>[^ ]*) (?<scstatus>[^ ]*) (?<scsubstatus>[^ ]*) (?<scwin32status>[^ ]*) (?<scbytes>[^ ]*) (?<csbytes>[^ ]*) (?<timetaken>[^ ]*) (?<xfowardedfor>[^ ]*)$$/ </parse> </filter>
33 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregator
td-agent.conf例(ヘルスチェックログ除外) # ヘルスチェックログを除外 <filter prod.iis.log> @type grep exclude1 csuristem ^(?=.*healthchk).*$ </filter>
34 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregator
td-agent.conf例 (特定URLに関してTimeTaken値3000以上) # 条件フィルタ設定 <filter prod.iis.log> @type grep regexp1 csuristem ^/xxxx/xxxx/xxxx.asp$|^/xxxx/xxxx/xxxx.asp$|^/xxxx/xxxx/xxxx.asp$|^/xxxx/xxxx/xxxx.asp$|^/xxxx/xxxx/xxxx.asp$ </filter> # TimeTaken監視設定 <filter prod.iis.log> @type grep exclude1 timetaken ^0 </filter> <filter prod.iis.log> @type grep exclude1 timetaken ^[0-9]$ </filter> <filter prod.iis.log> @type grep exclude1 timetaken ^[0-9][0-9]$ </filter> <filter prod.iis.log> @type grep exclude1 timetaken ^[0-9][0-9][0-9]$ </filter> <filter prod.iis.log> @type grep exclude1 timetaken ^[1-2][0-9][0-9][0-9]$ </filter>
35 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregator
td-agent.conf例(ログファイル名固定) # ファイル出力 <store> @type file buffer_path /var/log/td-agent/buffer/prod.timetaken.log.buf symlink_path /var/log/td-agent/logs_current/prod.timetaken.log path /var/log/td-agent/logs/prod.timetaken.log </store> /var/log/td-agent/logs_current/prod.timetaken.logを zabbixでログ監視
36 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregator
td-agent.conf例(別アカウントのFirehose出力) <store> @type kinesis_firehose region ap-northeast-1 delivery_stream_name xxxxxxxxxxxxxxxxxx endpoint https://xxxxxxxxxxxx.firehose.ap-northeast-1.vpce.amazonaws.com <assume_role_credentials> role_arn arn:aws:iam::xxxxxxxxxx:role/xxxxxxxxxxxxxxxxxxxxxx role_session_name xxxxxxxxx external_id xxxxxxxxxxx sts_http_proxy http://xxxxxxxxxxxxxxxxxxx </assume_role_credentials> </store>
37 Copyright © 2019 QUICK Corp. All Rights Reserved. Aggregatorはm5.large。CPU使用率はピーク時
約30%
38 Copyright © 2019 QUICK Corp. All Rights Reserved. ・FirehoseにてParquet形式に変換しS3に出力
Prefix設定は以下の通り。 Buffer size:128MB Buffer interval:60秒 IISログ 1日あたりS3フォルダ容量20~30GB(parquet) 1か月あたり約500~600GB
39 Copyright © 2019 QUICK Corp. All Rights Reserved. CloudwatchでLambdaを定時起動(ALTER
TABLE) from datetime import datetime import boto3 import os def lambda_handler(event, context): dt = datetime.now().strftime("%Y-%m-%d") hour = datetime.now().strftime("%H") s3bucket = os.environ['s3bucket'] s3key = os.environ['s3key'] gluedb = os.environ['gluedb'] gluetable = os.environ['gluetable'] athena = boto3.client('athena') sql = "ALTER TABLE " + gluetable + " ADD IF NOT EXISTS PARTITION (dt='" + dt + "',hour='" + hour + "') location 's3://xxxxxx/firehose/IIS_logs_2/dt=" + dt + "/hour=" + hour + "'" print('sql:' + sql) athena.start_query_execution( QueryString= sql , QueryExecutionContext={ 'Database': gluedb }, ResultConfiguration={ 'OutputLocation': 's3://' + s3bucket + '/athena-output' } )
40 Copyright © 2019 QUICK Corp. All Rights Reserved. Firehose稼働状況
41 Copyright © 2019 QUICK Corp. All Rights Reserved. Athenaでログ検索
42 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
43 Copyright © 2019 QUICK Corp. All Rights Reserved. ・複雑なログ監視要件への対応
背景)インターネット経由の株価データ提供など、顧 客とのシステム外部接続案件が多く、トラブルが多い ので細かい監視が必要 現在)顧客Aのこの文字列が含まれるURLにて Timetaken値が3000以上の場合にSlack通知 今後)今まで出来なかった監視が出来るといろいろ追 加で要件が来ている。 ・何分間の間にxx件検知したら通知 ・Timetaken値3000~5000、5000~10000、 10000以上でSlack通知を分けたい など
44 Copyright © 2019 QUICK Corp. All Rights Reserved. ・エージェント正常稼働の監視
WEBサーバ側のエージェントだんまりとか ・可用性設計 Aggregator障害時お祭り リカバリー手順書整備とか。。。 ・データ欠損はないのか? 一度確認が必要
45 Copyright © 2019 QUICK Corp. All Rights Reserved. ・はじめに
・Windows Webサーバ関連のログって? ・そのログで何がしたいの? ・オンプレ時代の課題は? ・AWSではどうしたの? ・現状のWEBサーバログ分析基盤 ・現状の課題って何? ・今後の対応は?
46 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Amazon
Elasticsearch Service検証・導入 複雑なログ監視要件に頭を抱えていたところ、 リクルートテクノロジーズ日比野さんが「もう この要件はESっしょ!」と。 Messangerでのやり取りが続く・・ 「Logstash、Filebeat軽そうで良さそうなんだけ ど、Windowsでさくさく動く?」 「 Logstash、Filebeat から直接ESに送って Aggregatorみたいな中間サーバなくせない?」
47 Copyright © 2019 QUICK Corp. All Rights Reserved. 「検証したよ~」とメッセージが!!
https://qiita.com/hssh2_bin/items/09087e03f 411b6c5bbbe
48 Copyright © 2019 QUICK Corp. All Rights Reserved. Fluentd
Aggregator にElasticSerachプラグイン をインストール。現状のAthena構成は残したま ま、別アカウントのAmazonESにログを転送す る検証を来週から実施予定。 (AggregatorのCPU負荷を注視) 監視要件はESのアラート設定で要件を満たしそ う。
49 Copyright © 2019 QUICK Corp. All Rights Reserved. 検証構成図
50 Copyright © 2019 QUICK Corp. All Rights Reserved. ・Kinesis
Analystics 一応検証してみる??時間の無駄? 使ってる人どれぐらいいるのかな?
51 Copyright © 2019 QUICK Corp. All Rights Reserved. ご静聴ありがとう
ございました