Elastic Stackでシステムの情報を可視化してきたが、これまでWindowsに全く触れてこなかった。「がとらぼ」の中の人がWindowsを排斥してるので身近に常時動いているWindowsが無いというのもあるんだけど。
先日、別の用事でWindowsをインストールした端末があるのだが、ハードディスクをまだ消去していなかったので以前から気になっていたWinlogbeatをインストールして試してみた。
Winlogbeatのインストール
ブラウザで https://www.elastic.co/downloads/beats/winlogbeat を開く。
Winlogbeatをダウンロードする。32/64bit用を適切に選択。(2018年9月10日現在の最新版は6.4.0)
- winlogbeat-6.4.0-windows-x86_64.zip (64bit用)
- winlogbeat-6.4.0-windows-x86.zip (32bit用)
ダウンロードしたZIPファイルを解凍する。
winlogbeat-6.4.0-windows-x86_64 のようなフォルダ名を winlogbeat-6.4.0 のように変更する。バージョンは都度適切に。またはバージョン無しの winlogbeat にするとか。
そのフォルダを C:\Program Files 下に移動する。
設定ファイルの C:\Program Files\winlogbeat-6.4.0\winlogbeat.yml を編集する。改行コードを弄れるテキストエディタで開くこと。最初からあるwinlogbeat.ymlを編集するならWindowsのメモ帳は不可。
1 2 3 4 5 | output.elasticsearch:
hosts: ["192.168.1.240:9200"] #elasticsearchが稼働しているホスト
または
output.logstash:
hosts: ["192.168.1.240:5044"] #LogStashが稼働しているホスト
|
elasticsearchに送るかLogstashに送るかとちらかを有効にする。
もちろん、どちらもSSL/TLSでの接続であればその設定も要る。それぞれの設定行付近にSSL用の設定サンプルがあるのでわかる筈。
elasticsearchに直接出力するのが良いか、LogStashに出力して加工してからelasticsearchに送る方が良いかは考え方によると思う。手軽さでは前者だが、今回はWindowsのイベントログということなのでelasticsearchに送るデータ量が多すぎるとか無駄なイベントログが多いということであれば後者にする方が良いかもしれない。今回はとりあえずの導入なので前者で。
PowerShellを管理者権限で起動する。- スタートボタンを左クリック→Windows PowerShell→Windows PowerShellを右クリック→管理者として実行する
- スタートボタンを右クリック→Windows PowerSHell (管理者)

cd "C:\Program Files\winlogbeat-6.4.0" winlogbeatのディレクトリに移動する。 Set-ExecutionPolicy Unrestricted 実行ポリシーを変更 質問にはy[Enter] .\install-service-winlogbeat.ps1 サービスとして登録するスクリプトの実行 Set-ExecutionPolicy Restricted 実行ポリシーを戻す 質問にはy[Enter] Start-Service -Name winlogbeat -PassThru winlogbeat サービスを開始 exit PowerShell終了
「サービス」でwinlogbeatが「実行中」で、スタートアップの種類が「自動」になっていることを確認する。(PowerShellのサービス関連コマンドレットを知らないとか信用していないという場合)
winlogbeatがelasticsearchにイベントログデータを送るまで暫く待つ。またはWindowsを再起動したりログアウト・ログインをするなどしてイベントログを出力させる。
Kibanaでインデックスパターンを登録
Kibanaを開く。
ManagementからIndex Patternsを選択。
今回はこれまでに無かった winlogbeat-* というインデックスが作られる筈なので新規のインデックスパターンを登録する。(次)
[Create Index Pattern]をクリック。
中段のIndex patternのテキストボックスに winlogbeat-* を入力する。その下にSuccess! Your Index pattern matches 数字 Index.と表示される。さらに winlogbeat-6.4.0-2018.09.10など、その日(今日)のwinlogbeatのインデックスを含む1つ以上がリスト表示されること。存在しない場合はwinlogbeatからデータが送られてきていないし、次のボタンが押せない。
[ > Next step]をクリック。
winlogbeatから送信されてくるデータの中でタイムスタンプであるフィールド名を指定する。ここは、これまで同様に @timestamp をプルダウンメニューで選択する。
[Create Index pattern]をクリック。これでインデックスパターンの登録完了。
Kibanaでイベントログを可視化
Kibana左列の Discover を選択。右列のインデックスパターンの選択で winlogbeat-* を選択。これでwinlogbeatから送られてきたデータを見ることができる。右上の「表示する時間の範囲」を適切に選択しないと表示されないこともあるので必要に応じて変更。上の画像では直近15分になっているのでデータ(イベントログ)が1つしか表示されていない
表示する時間の範囲を1時間に拡げてみた。およそ170個ほどのイベントログがあった。
リモートでWIndowsの「イベントログ」を見ているような感じ。
Visualizeで何か可視化したいなと思ったので適当に指定してみた。今回は新規作成で「Data Table」を使用。
使用するインデックスパターンは winlogbeat-* を選択。
MetricにCountを指定。
Buckets(バケット・バケツ)は先ず「Split Rows」を選択。
Aggregationに「Terms」を選択。Fieldに「event_id」を選択。
下部の[Add sub-buckets]をクリック。「Split Rows」を選択。
Sub Aggregationに「Terms」を選択。Fieldsに「source_name」を選択。
下部の[Add sub-buckets]をクリック。「Split Rows」を選択。
今度はイベントの種類毎にテーブルを分けたいので「Split Table」を選択。
Sub Aggregationに「Terms」を選択。Fieldsに「log_name」を選択。
指定が終わったら、上部にある (Apply Changes)を押す。右列にデータの入ったテーブルが表示される筈。指定が間違っていなくてNo result found になるなら右上の「表示する時間の範囲」を変更してデータ(イベント)の発生している時間を含む時間帯にする。
とりあえず、何かKibanaのVisualizeで表示せんことには話にならんだろということで、対象時間にイベントの種類別にどんなイベントが発生したか件数表示するようにしてみた。しかし、じゃあこれで何がわかるかというと正直なところ何もわからない、というか全くもって役に立つ情報ではない。これではWinlogbeatを入れた意味がない。
次回はイベントログで役に立つ情報を取得して視覚化したい(予定)。
- Tiny 11をMicrosoftと通信させない名前解決変更
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (後編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (中編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (前編)
- Metricbeatで収集したメトリクスデータをKibanaで可視化する
- Kibanaを操作する前にユーザーを作成する
- Metricbeat 8.6.0のインストールと設定
- Elastic Stack 8系をFreeBSDにインストール
- マイクロソフト PCマネージャというアプリを触ってみた
- Windows 11のシステム要件を満たさないPCでWindows11の大型アップデートを適用
- Windows 11でWindows Updateの自動更新を停止する
- Windows 11でWindows Updateによる更新を手動で停める (後編)
- Windows 11でWindows Updateによる更新を手動で停める (前編)
- Windows 11のシステム要件を満たさないPCでWindows10からWindows11にアップグレード
- WindowsでもUnbound (Remote controlの準備)
- Windows 11リリース (例のごとくシステム要件を満たさないPCにインストール)
- Androidスマホ画面をWindowsで表示 (ワイヤレスディスプレイ プロジェクション)
- Windows 11上で「このPCは現在、Windows 11システム要件を満たしていません」
- MS公式誰でもDLできるWindows 11 インサイダー版を古いPCにインストールと休止無効化設定
- Windows IMEで半角/全角キーの割り当てをIMEオフだけに変更(Linuxも)
- Windows 11システム要件に満たないPCにISOファイル無改造でインストール
- Windows 11上で「このPCではWindows 11を実行できません」
- Windows 11を9年前の超非力なノートPCにインストールしてみた
- 情報セキュリティ Windows 10でUSBメモリの自動実行を不可にする
- 情報セキュリティ Windows 10でUSBメモリの読み書きを不可にする
- Windows 10を旧型ノートPCにクリーンインストールしてみた
- Elastic Stack 6.4.2への更新 FreeBSD ports用メモ
- DVDFab 11がリリースされた
- WinlogbeatでWindowsイベントログを可視化 後編
- WinlogbeatでWindowsイベントログを可視化 中編