コラム
Azure MonitorでAzure Database for PostgreSQLのログ監視を行う
-
TAG
Azure -
UPDATE
2021/05/10
はじめに
こんにちは。BTCクラウドCoEの松波です。 今回はAzure Database for PostgreSQLのログ監視をAzure Monitorで実施してみたいと思います。
ログをAzure Monitorに送信する
Azure Database for PostgreSQLのログは、デフォルト設定ではAzure Monitorに連携されないため、明示的に送信するよう設定する必要があります。 ログの転送は、Azure Database for PostgreSQL画面の「診断設定」メニューから実施します。宛先として3つの中から選ぶことができますが、Azure MonitorはLog Analyticsと統合されているため、Log Analyticsワークスペースを選びます。
なお、デフォルト設定では、PostgreSQLのログは短期保管用ログストレージに出力される仕様となっており、最大容量は1GBまで、保管期間は最大7日間となってます(※1)。 ログの保管期間としてはかなり短いので、仮に監視要件が無かったとしてもいずれかの宛先に転送した方が良さそうです。 ちなみに、Log Analyticsなどへの転送を行う場合は、logging_collectorをオフに設定して短期保管用ログストレージへの出力をオフにすることが推奨されてます。(※1)
Azure Monitorでのクエリ
Azure Monitorに送られたログは、Log Analyticsやモニターの画面からクエリを実行することで、参照可能です。クエリ言語はSQLチックなKusto Query Language、略してKQLです。余談ですが、Share PointでもKQLを使いますが、SharePointの方はKeyword Query Languageの略称で別物です。
まず、ログの内容を見るために簡単なクエリを実行してみます。 PostgreSQLのログはAzure Monitor上で、Category==”PostgreSQLLogs”として扱われるため、クエリでそのように指定します。
AzureDiagnostics
| where Category == "PostgreSQLLogs"
クエリを実行すると、該当のログが画面に表示されます。
ログの内容を見てみると、ログ生成の時刻、ログレベル、ログメッセージがそれぞれTimeGenerated、errorLevel_s、Messageにマッピングされていることがわかります。 例えば、直近10分以内のログレベルFATALのものを抽出するようなクエリは以下のようになります。
AzureDiagnostics
| where Category == "PostgreSQLLogs"
| where errorLevel_s == "FATAL"| where TimeGenerated > ago(10min)
アラート通知
上記クエリで検知された場合、指定のメールアドレスに通知するとします(実際にはFATALをすべてを検知対象とするとログイン時のパスワード間違いなどもすべて検知してしまうので、もう少しチューニングは必要です)。メール通知には、Azure Monitor アラートの機能を使います。ここでは詳細は割愛しますが、クエリの画面で「新しいアラートルール」という項目をクリックして、メール送信するためのアクショングループを指定することで設定可能です。
なお、アラート通知メールからはログメッセージがわからないため、Azure Portalでログの詳細を確認する必要があります。
おわりに
ログ監視の基本的な手順を記載しました。今回はAzure Database for PostgreSQLを題材にしましたが、他サービスでも同様のことができますので是非試してください。
※1 https://docs.microsoft.com/ja-jp/azure/postgresql/concepts-server-logs
-
PICK UP
ピックアップ
-
ピックアップコンテンツがありません
-
RANKING
人気の記事
-
-
1
望雲彼方に ~クラウド移行その2(インフラエンジニ…
望雲彼方に ~クラウド移行その2(インフラエンジニア編)~
2020/06/12
-
2
Infrastructure as Codeを理解…
Infrastructure as Codeを理解する(第2回)AWS Clou…
2020/11/27
-
3
マルチアカウントで構成管理情報の自動収集を行う(A…
マルチアカウントで構成管理情報の自動収集を行う(AWS)
2021/06/14
-
4
ECSを理解する(第2回)
ECSを理解する(第2回)
2020/12/02
-
5
AWSのその構成、一緒に見直してみませんか vol…
AWSのその構成、一緒に見直してみませんか vol.1
2023/01/15
-
-
ARCHIVE
アーカイブ
-
- July 2024 (1)
- January 2024 (1)
- December 2023 (2)
- June 2023 (2)
- May 2023 (1)
- April 2023 (1)
- March 2023 (2)
- February 2023 (2)
- January 2023 (1)
- December 2022 (2)
- October 2022 (2)
- September 2022 (2)