Azure Container InstanceでSpring Batchのアプリを動かすことをやっています。過去の内容は以下を参照してください。
- Azure Container InstanceでSpring Batchのアプリを動かす(2) - miyohide's blog
- Azure Container InstancesでSpring Batchのアプリを動かす - miyohide's blog
- Azure Container InstanceでSpring Batchのアプリを動かす(3)Azure ファイル共有をマウントする - miyohide's blog
- Azure Container InstanceでSpring Batchのアプリを動かす(4)Azure Container Instance上のアプリを定期実行する - miyohide's blog
今回は、ログをAzure Monitorログ(Log Analytics ワークスペース)に送ることをやってみます。
参考記事
マイクロソフトのドキュメントに参考となる記事があります。その記事を参考にして作業を進めます。
TerraformでLog Analytics ワークスペースを作成する
これまでTerraformで環境を作っていたので、ここでもTerraformで環境を作ります。Log Analytics ワークスペースを作成するには以下のように記述します。
resource "azurerm_log_analytics_workspace" "log" { location = azurerm_resource_group.rg.location name = var.log_analytics_workspace_name resource_group_name = azurerm_resource_group.rg.name }
上記では名前とリソースグループ名、ロケーションだけを指定しています。これだけでも動きますが、細かい設定をするために参考となるドキュメントは以下にあります。
Container Instanceと紐づける
作成したAzure Monitorログ(Log Analytics ワークスペース)とContainer Instanceとを紐づけます。azurerm_container_group
の中でdiagnostics
ブロックの下にlog_analytics
ブロックをつくり、そこでAzure Monitorログ(Log Analytics ワークスペース)のidやキーを指定します。Terraformでの設定例は以下の通り。
data "azurerm_log_analytics_workspace" "log" { name = var.log_analytics_workspace_name resource_group_name = var.app_resource_group_name } resource "azurerm_container_group" "aci" { location = var.app_resource_group_location name = var.container_instance_name os_type = "linux" resource_group_name = var.app_resource_group_name # 省略 # Log Analytics Workspaceの設定 diagnostics { log_analytics { workspace_id = data.azurerm_log_analytics_workspace.log.workspace_id workspace_key = data.azurerm_log_analytics_workspace.log.primary_shared_key } } }
動かしてみる
これで準備は完了。Spring Batchのアプリを動かすと、ログがAzure Monitorログ(Log Analytics ワークスペース)に送られます。プログラムとしてAzure Monitorログ(Log Analytics ワークスペース)に送信ために特別なことは何もしておらず、標準出力に出力された内容がそのままAzure Monitorログ(Log Analytics ワークスペース)に送信されます。
また、上記のドキュメントにも書かれていますが、Azure Monitorログ(Log Analytics ワークスペース)にログが送信されるようになるには最大で10分ほど待つ必要があるので、慌てずにじっくり待ちましょう。
Container Instance起動後、Azure Monitorログ(Log Analytics ワークスペース)を確認するとContainerInstanceLog_CL
の中身を確認すると、以下のようにログが送信されていました。
メッセージを確認したいので、project
演算子を使って時刻とメッセージを確認します。
結果は以下の通り。
プログラムやSpring Batchによるログ出力が確認できました。