【登壇】SplunkミートアップでAWS連携の基礎について喋ってきた #GOJAS_JP
先日、FargateのログドライバーにSplunkが対応し、「えらいこっちゃやで!」とブログ書きました。
【祝】FargateでログドライバーにSplunkが利用可能になりました! | DevelopersIO
気づいたら、その1ヶ月後、Splunkミートアップで喋っている自分がいました。この業界、スピード感やばいな。
Splunkド初心者が、いろいろ苦労しながらAWS連携部分の基礎をまとめてみたので、普段AWS触っていてSplunkにも興味があるかたは、是非見ていただければと思います。
(祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 Splunk マツリダワッショイ |_|_| し'´J
超綺麗で豪華なミートアップ会場の様子
イベントページはこちら。
【GOJAS Meetup-11】 GOJAS Meetup Summer Special - Go Japan Splunk User Group | Doorkeeper
会場は、セガサミーホールディングス・TUNNEL TOKYO 。ものすごい広くて綺麗で、ディスプレイがめちゃくちゃでかくて驚きました。
会場全体、超広々としており。
何故か、ワープする入り口があったり。
発表時の様子。このディスプレイの大きさですよ。どないなっとんねん、これ。
というわけで、張り切って登壇させていただきました。
登壇資料
発表内容
登壇のきっかけ
AWS FargateがSplunkに対応したというニュースがきっかけです。Splunkをそれまで全く触ったことがなかったので、いろいろ調べながら書いてみたブログがこの2つ。
- 統合ログ分析ソリューションSplunkの凄さを公式チュートリアルで体感する | DevelopersIO
- SplunkのAWS統合サービス「Splunk App for AWS」を試してみた | DevelopersIO
そうすると、全く面識がなかった山田さんから、こんなメッセージが飛んできました。
この男気!というわけで、今自分はここにいるわけです。宜しくおねがいします。
今日のAgendaです。
- AWS環境へのSplunk構築方法
- SplunkのAWS連携サービスの概説
- AWSデータ連携パターンとその解説
AWS環境へのSplunk構築方法
AWS環境へSplunk構築する方法は、大きく分けて3つです。
- EC2を構築し、自分でインストールする
- AWS Maketplaceから、Splunk Enterpriseを起動する
- AWS クイックスタートから、Splunk Enterpriseを起動する
「1. EC2を構築し、自分でインストールする」
普通に、EC2インスタンスを立ててインストールする方法です。そんなに詰まる要素は無いと思います。
「2. AWS Maketplaceから、Splunk Enterpriseを起動する」
Marketplaceから起動する方法です。
予めSplunk Enterpriseインストール済みのAMIが用意されているので、セットアップがめっちゃ楽です。とりあえずHA構成など不要で1台で良いのであれば、有力な選択肢ですね。
「3. AWS クイックスタートから、Splunk Enterpriseを起動する」
AWS クイックスタートもあります。
CloudFormationを駆使してパラメータを指定して、AWSのベストプラクティスに基づいたHA構成を実現できます。こんな雰囲気です。すばらしい。
ガイドも30ページぐらいあって非常に充実しているので、本格的なプロダクション環境で利用するための構成もすぐに作ることができるので、一度試してみることをおすすめします。
SplunkのAWS連携サービスの概説
Splunkに対して、AWS側からデータ連携する方法は複数あります。
- 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から取得したログのダッシュボードを提供
で、本日メインでお話するのは、「Splunk Add-on for Amazon Web Services」です。
AWSデータ連携パターンとその解説
Source Typeは複数あり、連携設定パターンも複数あります。
- CloudWatch
- CloudWatch Logs
- Generic S3 inputs
- Incremental S3 inputs
- SQS-based S3 inputs
CloudWatch
CloudWatch Metricsの内容をSplunkに転送します。転送するメトリクスのフィルタ条件やディメンションも設定可能。
CloudWatch Logs
CloudWatch Logsの内容をSplunkに転送します。設定は転送対象のLogGroupを指定するだけで非常に簡単。ただし、SourceTypeが全てCloudWatchLogsになるので、アプリケーションログの種類ごとに区別が必要であれば、利用には注意が必要。
Generic S3 inputs
バケット内の全てのオブジェクトを都度リストし各ファイルの変更日を調査し、未収集のデータを取得。バケット内のオブジェクトの数が多い場合、めちゃくちゃ遅くなる。
Incremental S3 inputs
ファイル名に含まれる日時情報をチェックポイントレコードと比較して、バケットから取得されていないオブジェクトのみを取得。Generic S3 inputsに比べてだいぶ高速
SQS-based S3 inputs(推奨)
現在の推奨方式。ほぼリアルタイムで、S3に新しく作成されたレコードをSQSに送信し、Splunk側から取得。
SNSのサブスクリプションはクロスアカウント指定できるため、マルチアカウント(開発〜検証〜本番)の各ログを統一ログ分析基盤アカウントに一括集約することも可能。
SNS→SQSのクロスアカウント接続や、SNSとSQSの連携に関わる情報は、以下のページを参照。
また、大規模構成では、以下のようにCloudWatch AlarmにApproximateNumberOfMessagesVisible
のしきい値を設定したAuto Scalingでheavy fowaderのインスタンスを指定する方法もあり。
まとめ
- AWS環境へのSplunk構築は、Market Placeかクイックスタートを使うのが早い
- AWSの各種データからSplunkへデータ転送する方法は複数ある
- 各サービスネイティブなものはそのまま転送
- S3格納の時系列データは、Incremental S3 inputs、または、SQS-based S3 inputsから選択
つぶやき(twitter)の数々
当日のハッシュタグ、#GOJAS_JPで、流れていたツイートをいくつか紹介します。ツイ廃としては、イベントのハッシュタグが盛り上がっているのを見るのは、すごい楽しい。
かっちょいー会場ができました!#GOJAS_JP pic.twitter.com/yC6lKKZiis
— GOJAS (@GOJAS_JP) June 21, 2019
株式会社サイバーエージェント リードエンジニア 牧垣様による「ハイブリッドクラウドに対応したログ集約・解析プラットフォームのためのHEC活用法」セッション始まりました‼︎ #GOJAS_JP #splunk pic.twitter.com/cLeWR4Z7zo
— きつねうどん (@Ki2neudon) June 21, 2019
クラスメソッド濱田様のセッションが始まりました!#splunk #GOJAS_JP pic.twitter.com/6KyWJiN3aI
— GOJAS (@GOJAS_JP) June 21, 2019
クラスメソッド株式会社 ソリューションアーキテクト 濱田様による「AWSのい〜〜〜ろんなログをSplunkで一括分析しよう!」が始まりました! #GOJAS_JP #splunk pic.twitter.com/uz1SeGzoik
— きつねうどん (@Ki2neudon) June 21, 2019
オフィス強すぎるw#gojas #GOJAS_JP pic.twitter.com/4FvOJqPDa4
— マシュー(Matthew) (@matthew_sec) June 21, 2019
セガサミーホールディングス株式会社 佐藤様、株式会社ブロードバンドセキュリティ 宮城様による「UF を一括バージョンアップしてみた(仮)」が始まりました!こちらは残念ながら写真撮影、内容のSNS公開が感じなのです。内容凄い私よりなのに悔しい! #GOJAS_JP #splunk
— きつねうどん (@Ki2neudon) June 21, 2019
やりたい放題Ninjaの時間がやってまいりました#splunk #GOJAS_JP pic.twitter.com/dh4ebXPhnx
— GOJAS (@GOJAS_JP) June 21, 2019
「来たぜ Splunk 7.3!!! どんなモンなのか教えておくんなまし、旦那!!!」の発表の様子。
さすが小松原さん、発表前から役作りしてた。意識高い。
(´-`).。oO (マスクごしで聞き取りづらかったけどw#GOJAS_JP pic.twitter.com/Zwi8EKZcEQ
— かつさんど (@Ca23d) June 21, 2019
今日のGOJAS 今まで参加してた時よりすごい収穫あったなー。やはり積極的にコミュ取るの大事だし、スペシャリストに敵う技術を身につけないとな。改めて色々情報交換するの大事だと思った。感&謝。技術ネタ提供できるよう頑張ろ! #GOJAS_JP
— sprunner (@sprunner55) June 21, 2019
まとめ「あったけぇ、来て良かった」
一言、そんな感想です。
セッションでも話しましたが、最初山田さんから登壇依頼があったときは正直ひよりました。「まじか、俺、なんかしゃべることあるのかな…」と。AWSのことなら、なんぼでもしゃべることはあるんですが、Splunkはド素人でしたからね。
率直に言って、Splunkの設定に関する情報、特にAWS連健周辺については、現状非常に情報が少なく感じます。そんな中、自分が試している途中で感じた詰まった点や苦労した点を初心者目線で解説して共有できれば、来てくれた人の役に立つのかなと思って、登壇を引き受けさせてもらいました。その目的はなんとか達成できたのかなと思ってます。
会場がめちゃくちゃ豪華で喋っててごっつ楽しかったですね。また、ヤフー株式会社 山田さんをはじめ、Splunkの中の人やコミュニティの方々といろいろ話ができたのも良かったです。お誘いありがとうございました。飯も美味かった… なんと生ビールまであったし。
期待してた!!!1kgチーズピザ!!!しかも3枚!! #GOJAS_JP #splunk pic.twitter.com/SEIuQKRMFb
— きつねうどん (@Ki2neudon) June 21, 2019
今日も豪華なご飯ありがとうございます! #GOJAS_JP pic.twitter.com/JLdSdfrKvu
— msnr (@MASA89434701) June 21, 2019
まだまだ自分にはノウハウ不足していますが、AWS環境におけるログ分析のバリエーションとして、Splunkの今後の進化を追いつつけてみようと思います。Splunkに興味を持たれた方は、Go Japan Splunk User Groupに参加されてみてはいかがでしょうか。今後も継続的にイベントが開催されるようです。
それでは、今日はこのへんで。濱田(@hamako9999)でした。