Slide 1

Slide 1 text

実践で学んだ Log Analytics Global Azure Bootcamp 2018@Tokyo 2018/04/21 小田島 哲也

Slide 2

Slide 2 text

自己紹介 • 小田島 哲也 (おだしま てつや) • パーソルプロセス&テクノロジー株式会社 • Azure 導入コンサル、技術支援 • Office 365 もやるよ • そもそも .NET (主に C#) デベロッパー • Qiita https://qiita.com/tetsuya-ooooo • ET ソフトウェアデザインロボットコンテスト 実行委員会 http://www.etrobo.jp/ • 本部技術委員 兼 東京地区技術委員長 (組み込めないけど) • 「ET ロボコンランキングサイト」の中のひと (各大会の競技結果の全国ランキング) http://etroboranking.azurewebsites.net/ • 新たなインフラ案件 (審査系システム) に着手 2

Slide 3

Slide 3 text

はじめに • 本セッションは、2018 年 3 月 31 日現在の情報を基に作成して います。 • 個人的な意見が多少あり、マイクロソフト公式情報ではない部分も 含まれています。あくまで参考情報として捉えてください。 • 主に Windows 仮想マシン (ARM) を対象としたナレッジを共有 しようと思います。 3

Slide 4

Slide 4 text

アジェンダ • 事例プロジェクトの紹介 • Log Analytics の概要 • 便利な管理ソリューションあれこれ • Log Analytics を利用する上で念頭に置くこと • ログデータを検索してみよう • カスタム ビューを作ってみよう • まとめ 4

Slide 5

Slide 5 text

事例プロジェクトの紹介 某地方自治体様向け Azure RemoteApp ~ RDS on Azure

Slide 6

Slide 6 text

自治体に求められる情報セキュリティ対策 地方公共団体における情報セキュリティポリシーに関するガイドライン http://www.soumu.go.jp/denshijiti/jyouhou_policy/ 日本年金機構の情報漏えい事故 (2015 年) を受けて、総務省は各自治体に対して、 2017 年 7 月までに以下の 2 点を実施するように通達 ① 庁内ネットワークの 3 分割、および適切な強靭化の実施 ② 市区町村でそれぞれ持っているインターネット接続口を都道府県レベルで集約し、 集中的に高度なセキュリティ対策を実施 • 「セキュリティクラウド」の構築 6 マイナンバー 利用事務系 • 住基台帳 • 税 • 社会保障 LGWAN (統合行政 ネットワーク) 接続系 • 人事給与 • 庶務事務 • 文書管理 インターネット 接続系 • 情報収集 • メール • Web ページ作成

Slide 7

Slide 7 text

某地方自治体様向け 強靭化 I プロジェクト (2016/10 ~ 12) • "インターネット接続系" 環境を Azure 上に構築 • 同時に Office 365 (Exchange Online) も導入 • ユーザー 4,300 名 • 2016/11 末までに導入必至だったが、 プロジェクトが頓挫 ⇒ 急遽依頼 • 超短期間で環境を用意するため、 Azure RemoteApp (ARA) ※を採用 ⇒ あくまで暫定対応として構築 ※ARA は 2017/08でサービス終了 7

Slide 8

Slide 8 text

某地方自治体様向け 強靭化 II プロジェクト (2017/05 ~ 08) • 暫定対応から恒久対応へ、Azure IaaS で "リモート デスクトップ サービス (RDS)" 環境を構築 • ユーザー 4,300 名、平日日中帯に 1,100 名 (≒25%) が業務に支障 なく利用できる環境を構築 ⇒ 国内最大規模の RDS 環境!! • 2017/08 で ARA サービス終了 ⇒ 納期厳守!! 待ったナシ!! • 同時進行で、 セキュリティクラウドを 2017/07 までに導入 ⇒ 歩調は乱すな!! 8 セッションホスト 28 台 合計 43 台が稼働中 ARA 環境を撤去

Slide 9

Slide 9 text

なぜ Log Analytics を採用したか? • (諸事情で) サーバーなどを監視する仕組みが利用できない • Azure 環境内で完結したい • ランニングコストの予算内であれば、提案時に示したサービス以外の ものを使っても良い 9 Azure Log Analytics と Azure Monitor (Alerts etc.) 導入

Slide 10

Slide 10 text

Log Analytics の概要 10

Slide 11

Slide 11 text

Log Analytics とは • Log Analytics はログデータを収集、検索、分析機能を提供する プラットフォーム 対象コンピューターにエージェント (Microsoft Monitoring Agent) をインストール するだけ • Windows も Linux も、Azure もオンプレミスも対応 11 Windows Linux Azure オンプレミス その他クラウド Hyper-V VMware 物理サーバー ログ Azure Log Analytics

Slide 12

Slide 12 text

まずはワークスペースを作成 • Azure ポータル > リソースの作成 > 新しいワークスペースの作成 https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-quick-create-workspace 12

Slide 13

Slide 13 text

取り扱えるデータソース データソース 説明 Windows イベント ログ Windows コンピューター上のイベント ログから収集された イベント Windows パフォーマンス カウンター Windows コンピューターから収集されたパフォーマンス カウンター Syslog Linux コンピューターの Syslog イベント Linux パフォーマンス カウンター Linux コンピューターから収集されたパフォーマンス カウンター IIS ログ IIS ログ (W3C 形式) カスタム ログ Windows エージェントまたは Linux エージェント上の、 ログ情報を含んだテキスト ファイル https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-data-sources ※管理ソリューションは、上記とは別に、接続されたソースからデータを収集してレコードを作成する 13

Slide 14

Slide 14 text

データソースの構成 • Azure ポータル > Log Analytics ワークスペース > 詳細設定 > データ 14 今回は以下のログを指定 • Application • Operation Manager • System 今回は初回の設定時に表示 された全パフォーマンス カウンターを指定して、 300 秒間隔で送信

Slide 15

Slide 15 text

ログ検索→アラート作成 (OMS ポータル) クリック https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-alerts-creating 期待 (正常) 値を取得する クエリを指定 [時間枠]はクエリを実行する 対象範囲 (〇分前~現在) 好ましくないクエリ 結果の条件を指定 15 今後は Azure Monitor でアラート を一元管理

Slide 16

Slide 16 text

OMS から Azure にアラートを拡張 • すべてのアラートをAzure ポータルで一元管理 • メリット • OMS でのアラート数の上限「250 件」が撤廃 • すべての種類のアラートを一元管理 • サービス正常性 • メトリック • アクティビティ ログ • Application Insights • Log Analytics • アクショングループを使って、各アラートに 複数のアクションが指定可 • メール送信 • SMS • 音声通話 • Webhook • Azure Automation Runbook など https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend 16

Slide 17

Slide 17 text

カスタム ビュー作成 • Log Analytics ワークスペース上にオリジナルのビューを作成 https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-view-designer クリック タイル ダッシュ ボード 視覚化 パーツ 17

Slide 18

Slide 18 text

管理ソリューション • 特定の問題点に関するメトリック (測定基準) を提供するロジックや データの視覚化、データの取得ルールをパッケージ化したもの • 追加するだけで使える、不要になったら削除、とてもカンタン • どこから入手できるの? • Azure Marketplace > Monitoring + Management > Management Solutions https://azuremarketplace.microsoft.com/en-us/marketplace/apps/category/monitoring- management?subcategories=management-solutions • OMS ポータル > ソリューション ギャラリー • Azure クイック スタート テンプレート → "OMS" で検索 https://azure.microsoft.com/ja-jp/resources/templates/?term=OMS • ものによっては、Log Analytics ワークスペースとAutomation アカウントの関連 付けが必要 https://docs.microsoft.com/ja-jp/azure/operations-management-suite/operations-management-suite-solutions https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-add-solutions 18

Slide 19

Slide 19 text

便利な管理ソリューションあれこれ ※あくまで個人の感想です

Slide 20

Slide 20 text

Active Directory 正常性チェック (AD Health Check) Windows Server Active Directory を定期的に評価 https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-ad-assessment 20

Slide 21

Slide 21 text

エージェントの正常性 (Agent Health) ログデータを送信しているエージェントと応答していないエージェント を効率的に把握 https://docs.microsoft.com/ja-jp/azure/operations-management-suite/oms-solution-agenthealth 21

Slide 22

Slide 22 text

マルウェア対策評価 (Antimalware Assessment) マルウェアによって侵害されているマシンや保護が不十分なマシンを特定 ※事例プロジェクトの環境では、VM 拡張機能 "Microsoft Antimalware" を利用している https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-malware 22

Slide 23

Slide 23 text

更新の管理 (Update Management) 更新プログラムやマルウェア対策定義ファイルの適用状況を把握 ※事例プロジェクトの環境では、WSUS と併せて利用している https://docs.microsoft.com/ja-jp/azure/operations-management-suite/oms-security-getting-started#update-assessment 23

Slide 24

Slide 24 text

更新プログラムの管理 (Update Management) • 更新プログラムの適用状況の確認、スケジュール実行 • Windows も Linux も、Azure もオンプレミスも利用可能 • Azure Automation の一機能として → Log Analytics ワークスペースと Automation アカウントの関連付けが必要 • メリット/デメリット • 複数のコンピューターに対して Azure ポータルから 更新プログラムの適用状況や適用スケジュールを 管理できる • コンピューター内では、Microsoft Monitoring Agent、 Hybrid Runbook Worker、Windows Update といった 機能を使用して動作しているため、問題発生時の トラブルシューティングはこれら機能ごとにそれぞれ 対応する必要がある 適用状況 分析 https://docs.microsoft.com/ja-jp/azure/automation/automation-update-management Hybrid Runbook Worker Microsoft Monitoring Agent Automation Log Analytics 24

Slide 25

Slide 25 text

更新プログラムの管理 (Update Management) 更新プログラムの適用状況の確認 https://docs.microsoft.com/ja-jp/azure/automation/automation-update-management 未適用な VM 適用済み VM 未適用な更新 プログラム 25

Slide 26

Slide 26 text

更新プログラムの管理 (Update Management) 更新プログラム適用のスケジュールと実行結果 https://docs.microsoft.com/ja-jp/azure/automation/automation-update-management 作業に かかった時間 • 対象コンピューター • 更新プログラムの重要度 • 特定更新プログラムの除外 • スケジュール • 作業時間の上限 26

Slide 27

Slide 27 text

更新プログラムの管理 (Update Management) 更新プログラム適用の実行結果 https://docs.microsoft.com/ja-jp/azure/automation/automation-update-management 仮想マシン > 操作 からも確認可 27

Slide 28

Slide 28 text

Azure Backup の状態 (OMS Monitoring solution for Azure Backup) Backup ジョブの実行結果、ストレージの使用状況を確認 https://azure.microsoft.com/ja-jp/blog/oms-monitoring-solution-for-azure-backup-using-azure-log-analytics/ 28

Slide 29

Slide 29 text

ハイッ!ここ大事! Log Analytics を利用する上で念頭に置くこと

Slide 30

Slide 30 text

ログデータが検索 "できる" までの流れ https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-alerts#considerations リソースから ログデータ収集 各エージェントから送信される ログデータの間隔は、各データ ソースで決まっている ログデータ検索 インデックス処理 収集されたログデータを 検索可能にするための処理 通常、この処理は 1 分以内に完了 負荷状況によっては、時間 (数分 程度?) がかかる場合もある インデックス処理が完了して、 はじめて検索可能となる 30

Slide 31

Slide 31 text

ログデータを検索してみよう 31

Slide 32

Slide 32 text

• Advanced Analytics ポータル https://portal.loganalytics.io/ – IntelliSense (自動補完) – タブ形式のエディタ – 利用できるデータのタイプやその中 の属性が一覧表示 ログデータの検索はどこでできるの? • Azure ポータル > Log Analytics ワークスペース > ログ検索 OMS ポータル > ログ検索 と同じ UI クリック https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-log-search-portals 32

Slide 33

Slide 33 text

クエリの基本構文 • テーブル名 | コマンド① | コマンド② … • テーブル名 • Event … Windows イベントログ • Syslog … Linux の Syslog • Perf … パフォーマンス カウンター • Heartbeat • Update • コマンド • ログデータを絞り込む条件 • ソート、上位 N 件、集計 (件数、最大、最小、平均) などのアクション 管理ソリューションが作成したレコードも検索可能 https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-log-search https://docs.loganalytics.io/index パイプ パイプ 33

Slide 34

Slide 34 text

クエリの基本構文 (例 1) 例:Windows イベントログ 名前に「RDS-RP」が含まれるコンピューターで警告のイベントログを 過去 12 時間分収集し、ログ日時の降順で表示する Event // テーブル名 : Windows イベントログ | where Computer contains “RDS-RP“ // コンピューター名に「RDS-RP」が含む | where EventLevelName == “Warning” // イベントレベルが警告 | where TimeGenerated >= ago(12h) // 過去 12 時間以内のもの | sort by TimeGenerated desc nulls last // ログ日時の降順でソート 34

Slide 35

Slide 35 text

クエリの基本構文 (例 2) 例:Windows パフォーマンス カウンター 名前に「RDS-RP」が含まれるコンピューターの CPU 使用率を過去 1 日分 収集し、コンピューターごと、かつ 1 時間ごとに平均値を集計して、 折れ線グラフで表示する Perf // テーブル名 : パフォーマンス カウンター | where Computer contains “RDS-RP“ // コンピューター名に「RDS-RP」が含む | where CounterName == “% Processor Time” // CPU 使用率 | where TimeGenerated > ago(1d) // 過去 1 日分 | summarize avg(CounterValue) by Computer, bin(TimeGenerated, 1h) // 1時間ごとの CPU 使用率の平均値 | render timechart // 折れ線グラフ (タイムチャート) で表示 35

Slide 36

Slide 36 text

クエリの基本構文 (例 3) 例:複数の検索を合成 利用時間が最も長いユーザーを上位 10 件表示する SecurityEvent | where EventID == 4624 | project Computer, Account, TargetLogonId, logonTime=TimeGenerated | join kind = inner ( SecurityEvent | where EventID == 4634 | project TargetLogonId, LogoffTime=TimeGenerated ) on TargetLogonId | extend Duration = LogoffTime - logonTime | project-away TargetLogonId | top 10 by Duration desc 36 Windows へのログオン の記録 (EventID=4624) と、 ログオフの記録 (EventID=4634)を join ログオン時間とログオフ 時間の差=利用時間が 最も長い順に10件を表示

Slide 37

Slide 37 text

クエリの基本構文 まずはサンプルクエリを実行してみて、それを参考に作っていきましょう https://docs.loganalytics.io/docs/Examples/Log-Analytics-Examples 37

Slide 38

Slide 38 text

[Demo] Advanced Analytics ポータルで ログデータを検索してみよう

Slide 39

Slide 39 text

カスタム ビューを作ってみよう

Slide 40

Slide 40 text

カスタム ビュー • 作る前に決めること • どのログデータを使って、どんな情報を伝えたいか (表示する) • カスタム ビューの構成 • タイル Log Analytics ワークスペース > 概要 に掲載される 視覚的な概要を表示するパーツ https://docs.microsoft.com/ja-jp/azure/ log-analytics/log-analytics-view-designer-tiles • 視覚化パーツ 1 つまたは複数のログデータ検索に基づくデータの 視覚化を表すパーツ https://docs.microsoft.com/ja-jp/azure/ log-analytics/log-analytics-view-designer-parts • ダッシュボード タイルをクリックすると表示されるページ、1 つまたは複数の視覚化パーツで構成 タイル ダッシュ ボード 視覚化 パーツ https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-view-designer 40

Slide 41

Slide 41 text

カスタム ビューを作ってみよう (タイル編) • カスタム ビューは [ビュー デザイナー] で作る • Azure ポータル > Log Analytics ワークスペース にある [ビュー デザイナー] をクリック • やること ① ギャラリーからタイルを 選択 ② ビューの名前、説明など を入力 ③ 実行するクエリを入力 41 例:数値タイルの場合 →数値を返すクエリを入力

Slide 42

Slide 42 text

カスタム ビューを作ってみよう (ダッシュボード編) • やること ① ギャラリーから視覚化パーツを選択 例:折れ線グラフとリスト ② 各部位の項目と実行するクエリを入力 42 [折れ線グラフ] →テキスト、間隔 (X)、数値 (Y) のレコードを返すクエリ を入力 [リスト] →テキストと数値のレコード を返すクエリを入力 ※上位 10 件まで表示 [ナビゲーション クエリ] →視覚化パーツ内をクリック するとログ検索(既定)に遷移 そのログ検索で実行するクエ リを入力

Slide 43

Slide 43 text

[Demo]カスタムビューを作ってみよう

Slide 44

Slide 44 text

まとめ

Slide 45

Slide 45 text

まとめ • なんと言っても、ログデータはタダで手に入る • コンプライアンス的に保管している…だけとなっていませんか? • ログデータを分析すれば Next Action が見出せます! (きっと) • 「ログデータが検索できるまでの流れ」を把握した上で、 Log Analytics を使いましょう • ログデータの送信間隔は、データソースによってまちまち • ログデータを検索可能にするためのインデックス処理 • ログデータを見える化することで伝えるが伝わるに変わる • まずはログデータの検索からチャレンジ! 45

Slide 46

Slide 46 text

[Appendix] OMS から Azure へアラート を拡張してみた

Slide 47

Slide 47 text

OMS から Azure へのアラート拡張 (1/6) • OMS ポータル > 設定 > アラート • [Extend into Azure] をクリック https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 47

Slide 48

Slide 48 text

OMS から Azure へのアラート拡張 (2/6) • [Next] をクリック https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 48

Slide 49

Slide 49 text

OMS から Azure へのアラート拡張 (3/6) • アラートに対する変更内容 (アクショングループとアクション) が示される • [Next] をクリック https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 提案された 変更内容 49

Slide 50

Slide 50 text

OMS から Azure へのアラート拡張 (4/6) • [Finish] をクリック • 新しいアクショングループとアラートの関連付けが実施される https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 50

Slide 51

Slide 51 text

OMS から Azure へのアラート拡張 (5/6) • バックグラウンドで OMS アラートを Azure へ拡張する処理が実施中 • Azureへの拡張完了後、これらの アラートは Azure ポータルで管理することとなる https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 51

Slide 52

Slide 52 text

OMS から Azure へのアラート拡張 (6/6) • OMS ポータル > 設定 > アラート で編集操作を行うと、 Azure アラートの編集画面に遷移される https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-alerts-extend-tool 52

Slide 53

Slide 53 text

[Appendix] その他の参考文献

Slide 54

Slide 54 text

その他の参考文献 • 【Tech Summit 2017】DEP007 新しく生まれ変わった Azure Log Analytics と Azure Security Center によるITインフラの分析と保護 https://youtu.be/RixW-Z2rFCU • アラートの webhook アクションについて • MSOMS のアラートをMicrosoft Teams に投げる | Unlimited Root http://www.projectsr.net/wp/?p=5474 • ログ アラート ルールの webhook アクション https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitor-alerts-unified-log- webhook • OMS Log Analytics で アラート webhook アクションを作成して、メッセージを Slack に送信する https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-alerts-webhooks • Azure の監視サービスの新たな購入方法をご紹介 https://blogs.technet.microsoft.com/mssvrpmj/2018/04/09/introducing-a-new-way-to-purchase- azure-monitoring-services/ • 2018 年 4 月より、料金モデルが「ノード単位」からデータ収集量に基づく「GB 単位」に変更 • 既に「ノード単位」で利用している場合は引き続き利用可能 54