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