背景
AWS向けはマニュアルや第三者の投稿がたくさん見つかりますが、GCP向けはあまり見つからなかったのでQiitaに落としておきます。
一応、Sumologicの公式サイトでかなり丁寧なマニュアル(*1)が用意されているのですが、ところどころつまづいたので備忘も兼ねて。
構成
こんなことを実現します。
手順
①GCEのVMインスタンスのログをStackdriver Loggingにストリーミングする
GCPではエージェントもマニュアル(*2)も用意されていて、デフォルトのままで基本的な動作はするので、簡単!
捕捉することもないので、ここでの解説は割愛します。
②Pub/Subにエクスポートする
Stackdriver Loggingでは、今回のようにPub/Subを介したサードパーティとのつなぎ込みや、BigQueryで利用するために、ログデータをエクスポートする機能が用意されています。詳細は公式ドキュメント(*3)を。
エクスポート先やフィルタを、「シンク」にて定義することでエクスポートが開始されます。
GCPコンソールのログビューアで、エクスポートしたい情報を表示している状態(GCE VMインスタンスのログを表示中とか)で、「エクスポートを作成」することで、表示中のログ群でフィルタしたシンクを定義することができます。
予め作成しておいたPub/Subを指定することもできますが、初回であればシンク作成時にPub/Subトピックを新規に作成する方が、必要なロールも自動生成してくれるため、おすすめです。
ここまでで、Pub/Subトピックにログがエクスポートされるようになっているはずです。
③Sumologicでコレクターを追加する
ここからが、本題。Sumologicのマニュアル(以降、「Sumologicマニュアル」と記載)(*1)を片手に進めます。
先に書いた通り、Sumologicマニュアルがかなり丁寧なため、ここでは詳細には書かずに、留意点を捕捉する形で記載します。
まずは、Sumologicコンソールでの作業になります。
手順6.のFieldは省略可能。
手順7.で最初は「Copy URL」でなく「Create URL」ボタンが表示されていると思います。
一度、「Create URL」ボタンを押下することで、マニュアルどおり「Copy URL」が表示されます。
「Steps to add the Source’s URL as an allowed domain in GCP:」と記載されているところから、しばし、GCPコンソールの作業に移ります。
手順d.で、「Domain」という表記で僕は混乱しましたが、ドキュメント記載どおり、手順7.でコピーしたURLを貼り付けでOKです。
手順g.でHTMLファイルをダウンロードします。ファイルに記載された文字列(google-site-verification: 〜)を確認します。
ここで、Sumologicコンソールでの作業に戻ります。
手順g.で確認した情報を入力します。ファイル名はそのままファイル名です。フルパスでなくてOKです。
必要に応じて、オプション設定をし、Saveします(〜手順11.)。
GCPコンソール(ウェブマスターセントラル)に戻り、Verifyします。
ウェブマスターセントラルの「3. Confirm」は無視して大丈夫なようです。(ここで僕は結構迷いました)
④Pub/Subサブスクリプションの設定
若干、GCPコンソールのUIは変わっていますが、ほぼSumologicマニュアルのとおりに進められます。
サブスクリプションIDは任意のもので大丈夫です。
動作確認
以上にてSumologicでGCPのログを解析できるようになりました。
こんな感じでログを参照できるかと思います。
_sourceCategory="gcp" and _collector="GCP"
まとめ
個人的にはAWS向けのマニュアルの方がわかりやすかったです。
ただ、これは今後改善されそうに思います。
1回やっちゃえば後は流用できるので大きな問題ではないかと。
機会があれば、Azureでも試してみます。
参照
(*1) https://help.sumologic.com/07Sumo-Logic-Apps/06Google/Google_Cloud_Functions/Collect_Logs_for_the_Google_Cloud_Functions_App
(*2) https://cloud.google.com/logging/docs/agent/installation
(*3) https://cloud.google.com/logging/docs/export