Azureでログを蓄積して、可視化するまでの方法で思い悩むことはありませんか?
いや、黙ってAzure Monitor使とけよと言う声も聞こえてきそうな気がしますが、以下のような場合はいろいろな組み合わせに悩まされると思います。
- オンプレの資産を持っている場合(主に育て上げたGrokが存在するなど)
- 別のクラウドで稼働中のシステムを移行したい
- ベンダーロックインを避けたい
本記事では、Azureでのログ収集環境について、私が思いつく範囲で以下のような構成を考えました。
ちなみに、Logstahはfluentdなどの任意のログ収集ツール、ElasticsearchやKibanaは他の可視化ツールで読み替えても構いません。
スマホでは読みづらいと思いますが、星取表も準備してみました
ELK Stack | Cosmos + Grafana | Logstash + 公式Plugin | Azure標準構成 | |
---|---|---|---|---|
おすすめ度 |
辛い |
まだましそう |
結構いい |
安い、早い、楽 |
費用 |
VMコストが高い |
Grafanaの課金がユーザ数依存 |
悪くない |
最も安価 |
管理コスト |
全て自分で管理するので・・・ |
Logstashのみ |
プラグインも公式なので安定 |
Azure Portalで集中管理できて楽 |
汎用性(非ベンダーロック) |
オンプレでも何処でも動く |
ほぼどこでも動く |
可視化部分がAzureに依存 |
Azureから出れなくなる |
セットアップの手間 |
たいへん |
ELKと比べて楽 |
色々とデプロイが必要 |
ほぼ設定レス |
以下は書く実装の説明です。
- 【ELK Stack】Elasticsearch, Logstash, Kibanaを使う
- 利点
- ELK Stackに習熟しているなら自由度が高い
- すべてのクラウドベンダで同じ構成を取れる
- 欠点
- 管理に手間を要する
- 他に比べて総じて高コスト(管理、セットアップ、VM費用:¥3500/vCPU)
- ユースケース:他の環境でELK Stackを使っている
- 利点
- 【Cosmos + Grafana】Logstash + Azure Cosmos DB + Azure Managed Grafana を使う
- 利点
- ELK Stackフルで使うよりもLogstashのみを管理すればよく低コスト
- 欠点
- 全体的に中途半端、できれば避けたほうが良い
- 公式プラグインで済ませようとするとCosmosDBをMongo DB互換で動かす必要があるなど制約がある
- Grafanaがユーザ数毎課金のため注意が必要(¥800/User)
- ユースケース:Grafanaを別の環境で管理している場合
- 利点
- 【Logstash + 公式Plugin】Logstash + Log Analytics or Microsoft Sentinel を使う
- 利点
- まあまあ悪くない
- 公式プラグインで済む構成なため安定性が高い
- 欠点
- 設定がやや面倒
- 特にデプロイにいくつかの手順があり面倒(一度Logstashでサンプルファイルを生成して、それをAzureにアップロードしないといけない)
- ユースケース:既に育て上げたGrokが存在するとき
- 利点
- 【Azure標準構成】Azure Monitor Agent + Log Analytics or Microsoft Sentinel を使う
- 利点
- セットアップが簡単で最も低コスト
- Logstash用にサーバの準備が不要
- 欠点
- がっつりベンダーロックイン
- ユースケース:Azure環境のみを管理する場合
- 利点
需要があればもっと細かい話を書きたいです。