LoginSignup
4
3

More than 3 years have passed since last update.

Azureのログの長期保存について

Last updated at Posted at 2020-04-20

きになったのでしらべた備忘録です。

Logを大体Loganalyticsに放り込んでいるがLoganalyticsは最大2年保持されるがそれ以降は消えてしまう。でも3年保存したいまたは過去のやつは1年過ぎたら見ることもあまりないがとっておく必要はあってコストを抑えたいなどの需要に対応できるといいかなと。

最終保存場所

最終的にBlobに投げつけておけば安いし勝手には消されないであろうしライフサイクルが定義できるのでいいのでは。
https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-lifecycle-management-concepts?tabs=azure-portal

blobまで運ぶ方法

1.RunbookかLogicAppsでクエリかけたやつをBlobに出す
https://cloudsteady.jp/post/11347/
https://qiita.com/Aida1971/items/c9fcb979084aae9fd890

2.StreamAnalyticsでEventHubをかましてからBlobに置く
https://devlog.arksystems.co.jp/2016/08/03/820/
https://azure-recipe.kc-cloud.jp/2015/12/streamanalytics-1/

AzureリソースからEventHubかます方法はこのへんからたどることができそうなきがする。
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/stream-monitoring-data-event-hubs
そもそも外部のlog分析ツールと連携するのにEventHubを使うのが一般的みたいな感じなのかな。

LogicAppsでクエリかけてblobに置くのを試した

longtermlogretain-logicapps1.jpg

上記画像でしている内容は以下のとおり。
・スケジュールコネクタで一日おきに動く
・前日の日付を関数で出す
 formatDateTime(addDays(utcNow(), -1), 'yyyy-MM-dd')
・長期保存するテーブルのリストを配列にする

longtermlogretain-logicapps2.jpg

上記の画像でやってる内容は以下のとおり。

・配列をループ処理する
  ・保存するファイル名のデータ作成
  ・Loganalyticsに接続し現在読み込まれたテーブルのログを指定された日付の始まりから終わりまで取得
| where TimeGenerated between(datetime(\"datetime(\"@{outputs('filename-date-create')} 00:00:00.000\") .. datetime(\"datetime(\"@{outputs('filename-date-create')} 23:59:59.999\"))
  ・LoganalyticsからとってきたデータをCSVにする
  ・CSVをBlobの指定した場所に指定した日付のファイル名(ループの先頭でつくったデータ)で出力する

実行すると以下のようにblobに出力される。

longtermlogretain-logicapps3.jpg

LogicAppsだと途中で圧縮とかはコネクタがないなと思った(エンコードはあった)けど、AutomationだとPowerShellいけるのでどうにかなるのかもしれない(ためしてない)。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3