AWSのログをSplunkで分析してみよう
by
濱田孝治
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AWSのいろんなログを Splunkで分析しよう︕︕
Slide 2
Slide 2 text
2 ⾃⼰紹介 濱⽥孝治(ハマコー) •AWS事業本部コンサルティング部 ソリューションアーキテクト •好きなAWSサービス •Fargate、ECS、EKS •@hamako9999
Slide 3
Slide 3 text
3 コンテナジャーニー
Slide 4
Slide 4 text
4 コンテナ環境徹底⽐較
Slide 5
Slide 5 text
5 @hamako9999
Slide 6
Slide 6 text
6 #GOJAS_JP
Slide 7
Slide 7 text
7 登壇のきっかけ
Slide 8
Slide 8 text
8 あるひこんなニュースが⾶び込んできた きたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /
Slide 9
Slide 9 text
9 勢い余って これ、超すごいアップデートやん 早速試してみるで︕︕
Slide 10
Slide 10 text
10 ふと気づく Splunk ⼀切触ったことない
Slide 11
Slide 11 text
11 ブログを書いた
Slide 12
Slide 12 text
12 ⼭⽥さんからメッセージが来た︕ きたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /
Slide 13
Slide 13 text
13 ⼀つ感じたことがある Splunkド初⼼者が AWS連携試していて 率直に感じた事
Slide 14
Slide 14 text
14 情報 あんまりないなぁ
Slide 15
Slide 15 text
15 奮い⽴つ ⾃分なりにまとめて 登壇することで きっとお役に⽴てるだろう︕
Slide 16
Slide 16 text
16 しゃべる事、しゃべらない事 ・AWSにおけるSplunkの 構成 ・SplunkとAWS連携の基 礎 ・Splunk⾃体の⾼度なログ 分析 ・他のログ分析ソリューション との⽐較
Slide 17
Slide 17 text
17 Agenda • AWS環境へのSplunk構築⽅法 • SplunkのAWS連携サービスの概説 • AWSデータ連携パターンとその解説
Slide 18
Slide 18 text
18 AWS環境へのSplunk構築⽅法
Slide 19
Slide 19 text
19 Splunkの構築⽅法は⼤きく分けて3つ ① EC2を構築し、⾃分でインストールする ② AWS Marketplaceから、Splunk Enterpriseを起動 する ③ AWS クイックスタートから、Splunk Enterpriseを 起動する
Slide 20
Slide 20 text
20 ①EC2を構築し、⾃分でインストールする • Installation Manualからインストール • Installation Manual • Dockerバージョンも有り • Deploy and run Splunk Enterprise inside a Docker container • 1台だけだったら、なんとかいけそう
Slide 21
Slide 21 text
21 ①EC2を構築し、⾃分でインストールする • HA構成 • High availability deployment: Indexer cluster • これを全て構築するのは ⼤変そう… • 取っ掛かりには敷居が⾼ い
Slide 22
Slide 22 text
22 ②AWS Marketplaceから、Splunk Enterpriseを起動する • 予めSplunk Enterpriseインストール済みのAMIが⽤意されているの で、セットアップがめっちゃ楽 • EC2のパブリックIPにポート8000で接続 • usernameとpassword⼊⼒で即利⽤可能 • HA構成不要で1台で良いのであれば、有⼒な選択肢 • BYOLなのでライセンスは別途⽤意する必要有り
Slide 23
Slide 23 text
23 ③AWS クイックスタートから、Splunk Enterpriseを起動する • CloudFormationを駆使して、パラメータを指定するだけで、 Splunk EnterpriseのHA構成を実現するサービス • 最新バージョンは2019年5⽉ • デプロイメントガイドが充実 • 指定パラメータも豊富で様々な構成に対応 • プロダクション環境で利⽤可能なHA構成をサクッと構築可能
Slide 24
Slide 24 text
24 ③AWS クイックスタートから、Splunk Enterpriseを起動する
Slide 25
Slide 25 text
25 リソースのサイジングと料⾦の把握 Splunkを利⽤する上で必要なEC2のサイジング(CPU、メモリ、ディス クの容量の⽬安)や、関連リソースの料⾦は、下記資料を参考に実施 https://docs.splunk.com/Documentation/AddOns/released/AWS/Sizingandcost
Slide 26
Slide 26 text
26 SplunkのAWS連携サービスの概説
Slide 27
Slide 27 text
27 SplunkをAWS連携で主要なAdd-on, App • Splunk Add-on for Amazon Web Services • 様々な種類のAWSからのデータインターフェースを提供する • Splunk Add-on for Amazon Kinesis Firehose • Firehose経由でSplunkにデータを取り込む • Amazon GuardDuty Add-on for Splunk • GuardDutyのデータをインプット • イベント検知後、アラームを起こすなど • Splunk App for AWS • AWSから取得したログのダッシュボードを提供
Slide 28
Slide 28 text
28 SplunkをAWS連携に必要なAdd-on, App • Splunk Add-on for Amazon Web Services • 様々な種類のAWSからのデータインターフェースを提供する • Splunk Add-on for Amazon Kinesis Firehose • Firehose経由でSplunkにデータを取り込む • Amazon GuardDuty Add-on for Splunk • GuardDutyのデータをインプット • イベント検知後、アラームを起こすなど • Splunk App for AWS • AWSから取得したログのダッシュボードを提供 今⽇のメインはこちら
Slide 29
Slide 29 text
29 AWSデータ連携パターンとその解説
Slide 30
Slide 30 text
30 Splunk Add-on for Amazon Web Services
Slide 31
Slide 31 text
31 Splunk Add-on for Amazon Web Services • AWSの各種データを連携するAdd-on • AWSの各種ログデータの主要なSource-typeに対応
Slide 32
Slide 32 text
32 対応ソースタイプ⼀覧 Data source Source type Config aws:config、aws:config:notification Description aws:description Config Rules aws:config:rule Inspector aws:inspector CloudTrail aws:cloudtrail CloudWatch Logs aws:cloudwatchlogs、aws:cloudwatchlogs:vpcflow CloudWatch aws:cloudwatch Billing aws:billing、aws:billing:cur S3 aws:s3、aws:s3:accesslogs、aws:cloudfront:accesslogs、 aws:elb:accesslogs、aws:cloudtrail Kinesis aws:kinesis SQS aws:sqs
Slide 33
Slide 33 text
33 というわけで ほな、連携設定やってみますかね やるぞやるぞ〜
Slide 34
Slide 34 text
34 正直感じた なんか、いっぱいある︕ なんか、怖い どれにすればいいの︖
Slide 35
Slide 35 text
35 連携設定のパターン Source Typeは複数あり、連携設定パターンも複数 • CloudWatch • CloudWatch Logs • Generic S3 inputs • Incremental S3 inputs • SQS-based S3 inputs
Slide 36
Slide 36 text
36 CloudWatch(Metrics) • CloudWatch Metricsの 内容をSplunkに転送 • APIGateway, Application LoadBarancer, Billing, EBS, EC2, ELB, Lambda, RDS, S3
Slide 37
Slide 37 text
37 CloudWatch(Metrics)(設定画⾯) メトリクスで送信する値のフィルタ条件やディメンションを 設定可能
Slide 38
Slide 38 text
38 CloudWatch Logs • CloudWatch Logsの内 容をSplunkに転送
Slide 39
Slide 39 text
39 CloudWatch Logs(設定画⾯) ロググループ名と フィルタリング⽤ の正規表現を指定 可能
Slide 40
Slide 40 text
40 Generic S3 inputs 「汎⽤S3⼊⼒」 • バケット内の全てのオブジェクトをリストし、S3バ ケットから未収集のデータを取得 • 各ファイルの変更⽇を調査 • バケット内のオブジェクトの数が多い場合、めちゃ くちゃ遅い
Slide 41
Slide 41 text
41 Generic S3 inputs 構成 • SplunkがS3からファ イルを取得
Slide 42
Slide 42 text
42 Generic S3 inputs(設定項⽬)
Slide 43
Slide 43 text
43 Incremental S3 inputs 「インクリメンタルS3⼊⼒」 • ファイル名に含まれる⽇時情報をチェックポイント レコードと⽐較 • バケットから取得されていないオブジェクトのみを 取得 • 汎⽤S3⼊⼒に⽐べて、パフォーマンスはだいぶ向上
Slide 44
Slide 44 text
44 Incremental S3 inputs 構成 • SplunkがS3からファ イルを取得
Slide 45
Slide 45 text
45 Incremental S3 inputs(設定項⽬)
Slide 46
Slide 46 text
46 SQS-based S3 inputs 「SQSを介したS3⼊⼒」 • 現在の推奨⽅式 • ほぼリアルタイムで、S3に新しく作成されたレコー ドをSQSに送信、Splunk側から取得 • 過去に発⽣したイベントは通知なし • SNSを介さなかったSQSも収集されない
Slide 47
Slide 47 text
47 SQS-based S3 inputs 構成 • S3バケットへ時系列 データ格納 • S3からSNSへイベン ト通知 • SNSのサブスクリプ ションにSQS指定 • SplunkはSQSを Subscribeしてデータ を取得
Slide 48
Slide 48 text
48 SQS-based S3 inputs 構成 SNSのサブスクリプションはクロスアカウント指定できるた め、複数AWSアカウントの同⼀種類のログを1つのSQSから 取得することも可能 アカウントA アカウントB アカウントC アカウントZ
Slide 49
Slide 49 text
49 SNSからSQSへのクロスアカウント設定 https://dev.classmethod.jp/cloud/aws/cross-account-sns-sqs-integration/
Slide 50
Slide 50 text
50 SNSからSQSへのクロスアカウント設定 https://dev.classmethod.jp/cloud/aws/cross-account-sns-sqs-integration/
Slide 51
Slide 51 text
51 SNSからSQSへのクロスアカウント設定 https://dev.classmethod.jp/cloud/aws/sns-topic-should-be-placed-behind-sqs-queue/
Slide 52
Slide 52 text
52 SQS-based S3 inputs 構成(⼤規模) • heavy forwarderのインスタン スをAuto Scaling groupで構 成 • launch configurationでheavy forwarderのbootstrapスクリ プトをインストール • CloudWatch Alarmに ApproximateNumberOfMess ageVisibleを指定 • Auto Scalingのトリガーに設定
Slide 53
Slide 53 text
53 SQS-based S3 inputs (設定項⽬)
Slide 54
Slide 54 text
54 その他インプットデータ 下記のようなサービス固有のものは個別に設定していく • Billing • Config Rules • Description • Inspector
Slide 55
Slide 55 text
55 (おまけ) Splunk App for AWS
Slide 56
Slide 56 text
56 Splunk App for AWS AWSの各種データのダッシュボードを提供
Slide 57
Slide 57 text
57 Splunk App for AWS https://dev.classmethod.jp/cloud/aws/splunk-app-for-aws/
Slide 58
Slide 58 text
58 Splunk App for AWS https://dev.classmethod.jp/etc/create_dashboard_splunk_cloud/
Slide 59
Slide 59 text
59 まとめ
Slide 60
Slide 60 text
60 まとめ AWS環境へのSplunk構築は、Market PlaceかQuickStartを使う のがはやい AWSの各種データからSplunkへデータ転送する⽅法は複数ある ・各サービスネイティブなものは、そのまま転送設定する ・S3格納の時系列データは、以下の2種類から選択 ・ Incremental S3 inputs ・ SQS-based S3 inputs
Slide 61
Slide 61 text
61 Splunkで楽しいエンジニアライフを 濱⽥孝治(ハマコー) @hamako9999