elastic系をお勉強する必要が出てきたので少しずつ検証しながら書いておこうかと思います。
で今日は、Beat兄弟の中のWinlogbeatを動かしてみたいと思います。先日、建てたWindows Server 2019にインストールします。(手順は公式サイトの内容ですすめます)
ステップ1:Winlogbeatをインストールする
① ダウンロードページからWinlogbeat zipファイルをダウンロードします。
② 展開したフォルダをC:\ Program Filesにコピー。
③ winlogbeat- <version>ディレクトリーの名前をWinlogbeatに変更します。
④ PowerShellプロンプトを管理者として開きます(PowerShellアイコンを右クリックし、[管理者として実行]を選択します)。
⑤ PowerShellのプロンプトで、次のコマンドを実行してサービスをインストールします。
PS> cd 'C:\Program Files\Winlogbeat' PS> .\install-service-winlogbeat.ps1
ステップ2:Winlogbeatの設定
デフォルトのコンフィグを抜粋して記載します。
① event_logsセクションで、監視するイベントログを指定します。 デフォルトでは、アプリケーションログ、セキュリティログ、およびシステムログを監視するようにWinlogbeatが設定されています。
#======================= Winlogbeat specific options ========================== # event_logs specifies a list of event logs to monitor as well as any # accompanying options. The YAML data type of event_logs is a list of # dictionaries. # # The supported keys are name (required), tags, fields, fields_under_root, # forwarded, ignore_older, level, event_id, provider, and include_xml. Please # visit the documentation for the complete details of each option. # https://go.es.io/WinlogbeatConfig winlogbeat.event_logs: – name: Application ignore_older: 72h – name: Security – name: System
② 出力を設定します。 Winlogbeatはさまざまな出力をサポートしていますが、通常はElasticsearchに直接イベントを送信するか、追加処理のためにLogstashにイベントを送信します。出力をElasticsearchに直接送信するには(Logstashを使用せずに)、Elasticsearchインストールの場所を設定します。
#================================ Outputs ===================================== # Configure what output to use when sending the data collected by the beat. #————————– Elasticsearch output —————————— output.elasticsearch: # Array of hosts to connect to. hosts: ["192.168.11.35:9200"] ← Elasticsearchをインストールしているホストを指定 # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"
③ Winlogbeatで提供されているサンプルのKibanaダッシュボードを使用する場合は、Kibanaエンドポイントを構成します。 KibanaがElasticsearchと同じホストで実行されている場合は、この手順をスキップできます。
#============================== Kibana ===================================== # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. # This requires a Kibana endpoint configuration. setup.kibana: # Kibana Host # Scheme and port can be left out and will be set to the default (http and 5601) # In case you specify and additional path, the scheme is required: http://localhost:5601/path # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601 #host: "localhost:5601" host: "192.168.11.35:5601" ← Kibanaをインストールしているホストを指定 #
④ ElasticsearchとKibanaがセキュリティ保護されている場合は、Winlogbeatを設定して起動するコマンドを実行する前に、winlogbeat.yml設定ファイルで認証情報を設定してください。
筆者の環境ではsecurityを有効にしていないので設定はしません。
⑤ 設定ファイルを保存したら、次のコマンドでテストします。
PS C:\Program Files\winlogbeat> .\winlogbeat.exe test config -c .\winlogbeat.yml -e
Config OK と表示されれば、コンフィグの設定は完了です。
ステップ3: Logstashを使用するようにWinlogbeatを構成する。
今回は、Logstashを介さずにElasticsearchへ出力するので、このセクションは割愛。
別の機会に書きます。
ステップ4:インデックステンプレートをElasticsearchにロードする。
Elasticsearchでは、索引テンプレートを使用して、設定およびマッピングを定義します。
Winlogbeatをインストールすれば自動的にテンプレートが読み込まれるようですが、手動でテンプレートを読み込む手順を記載します。
テンプレートを手動でロードするには、setupコマンドを実行します。 Elasticsearchへの接続が必要です。 別の出力が有効な場合、一時的にその出力を無効にし、-Eオプションを使用してElasticsearchを有効にする必要があります。 この例では、Logstashの出力が有効であると想定しています。 Elasticsearch出力がすでに有効になっている場合は、-Eフラグを省略できます。
PowerShellのプロンプトから、Winlogbeatをインストールしたディレクトリに移動し、次のコマンドを実行します。(output.elasticsearch.hostsのアドレスは筆者環境の例なので読みかえてください。
PS C:\Program Files\winlogbeat> .\winlogbeat.exe setup --template -E output.logstash.enabled=false -E'output.elasticsearch.hosts=["192.168.11.35:9200"]'
ステップ5:KibanaのDashboardを設定する。
Winlogbeatには、Kibanaのダッシュボード、ビジュアライゼーション、およびKibanaのWinlogbeatデータを視覚化するための検索が含まれています。ダッシュボードを使用する前に、Indexパターンwinlogbeat- *を作成し、ダッシュボードをKibanaにロードする必要があります。これを行うには、setupコマンド(ここで説明したように)を実行するか、ダッシュボードの読み込みを設定します。
PS C:\Program Files\winlogbeat> .\ winlogbeat.exe setup --dashboards
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
と表示されればOKです。
ステップ6:Winlogbeatを起動する。
さあ、Winlogbeatを起動しましょう。
次のコマンドを使用して、Winlogbeatサービスを起動するか 、管理コンソールGUIからWinlogbeatサービスを起動します。
PS C:¥Program Files¥Winlogbeat> Start-Service winlogbeat
しばらくすると、C:¥ProgramData¥winlogbeat¥Logs¥winlogbeatにログ・ファイルが出力されているはずです。
ステップ7:Kibanaで確認。
KibanaのDashboardでWinlogbeat Dashboardを選択します。
お疲れさまでした。
イベントのフィルタリングやLogstash経由での出力等は、またの機会に。
いじょ。