s-oomoriです。
この記事は「Oracle Cloud Infrastructure Advent Calendar 2020」12月2日の記事として書かれています。
今回は昨年からLA(限定版)で評価させていただいていて、今年GA(正式版)されたLoggingサービスについてご紹介します。
GAされたらネットワークやLBのログ等も取得できるようになっていたりと、一気に機能が増えてビックリしました!!
参考:LAのときのブログはこちらです。(この時は機能が少なかったです)
公式リリースノート:Loggingリリースノート
公式ドキュメント:ドキュメント
【1】実装内容について
ある案件で、Object Storageのアクセスログを取得する要件があり仕様を満たせず困ってましたが、Loggingサービスを使うことによって取得することができます。
また、Loggingサービス用のストレージに各種ログが格納され、毎月最初の10GBは無料で、以降は1GB単位の課金(本日時点で$0.05=6円)となります。
1ヶ月アクセスログを取得したところ800GBも溜まっていたため、次のように実装しました。
- Object Storageのホスティング提供しているバケットのアクセスログ(Readログ)を取得
- Loggingでは1ヶ月だけログを保存(保持):バケット作成時に有効化するようなチェックも実装されましたが今回は別途設定してみます。
- Loggingでログ設定する際に、Archive Storage出力先もチェック一つ入れるだけで自動設定されますが、今回は手動で作成します。
- 別途、Object StorageにLoggingで取得したログを常時エクスポート:該当バケットをArchive Storage(毎月1GBあたり$0.0026=0.312円)として用意
- エクスポート先のログは3ヶ月間だけ保持し、3ヶ月過ぎた場合は自動削除
【2】Object Storage準備
1.Object StorageにWEB公開用のバケットを作成し、index.htmlをアップロードしておきます。
※このときの参考URL= https://objectstorage.ap-tokyo-1.oraclecloud.com/n/cloudii/b/web/o/index.html
2.Object Storageにログエクスポート先のArchive Storageバケットを作成します。
3.「web-log-archive」バケット画面-左メニューの「ライフサイクル・ポリシー・ルール」-「ルールの作成」から、90日より古くなったバケット内のオブジェクトを自動削除するよう設定します。
4.参考:作成するときに、下記のようなエラーが表示される場合は権限不足ですので、下記URLを参照して必要なポリシーを設定してください。
【3】Logging設定
1.OCIコンソールから「ロギング」-「ログ」を選択します。
3.下図のように値を入力/選択し「ログの有効化」を選択しログを作成します。
- 青枠の「オブジェクト・ストレージ(レガシー)への自動アーカイブを有効にします」にチェックをいれて作成すれば、事前に用意したArchiveStorageバケットが一緒に作成されます。
- ロググループは今回間違えて事前に用意しておいたvnc-logグループに作成してしまいましたが、新規でグループを作成するか、「DefaultGroup」を選択してください。
- ログの保持期間は1ヶ月〜最大6ヶ月まで選択可能です。
4.Logging設定後、実際にObject Storageに用意したindex.htmlにアクセスしてみて、少し待つとログが格納されているのを確認します。
5.次にArcheve Storageバケットに出力する設定を追加します。「ロギング」-「サービス・コネクタ」-「コネクタの作成」を選択します。
6.下図のように値を入力/選択します。
- 入力すると青枠のように自動でポリシー作成してくれるボタンが表示されますので「作成」を選択します。
- 自動でポリシーが作成されたら「作成」を選択します。
- ポリシー名は後で任意の名前に変更したほうが管理しやすいと思います。
7.作成したサービスコネクタの詳細でActiveになっていることを確認できます。
- 7分ごとにアーカイブされると思いますので、この後index.htmlに何回かアクセスしてログを出力させておいてください。
- Archive Storageへの出力確認は時間を置いて確認してください。アクセスが多い場合はそれなりに時間がかかります。
8.Archive Storageバケットにログがエクスポートされていることを確認します。
↓ gzでログが格納されます!!
【4】まとめ
今までOCIで取得できなかったログも今回のLoggingサービスで取得できるようになり助かりました。応用すればもっと有用なアーキテクチャーを考えられますのでまずは触ってみると良いです。
現在は他にOSログ収集等も評価中です。
今後は他のOCIサービス、特にWAFとか、、、、もLoggingで取得できるように早期実装を期待してます!!