当記事では、Windows Server DNSのデバッグログをLogStare Collector(以下、LSCと記載)にて収集する方法についての説明を記載します。
目次
更新履歴
2021/02/25 新規公開しました。
2022/03/17 「DNSログの送信方法」におけるokurun.jarのコマンド内容を変更しました。
2022/03/23 タイトルを「Windows ServerのDNSログをLSCにて収集する方法」から「Windows Server DNSのデバッグログをLSCにて収集する方法」に変更しました。LSC転送時のオプションとして、ヘッダオプションを「Y」から「N」に変更しました。
2022/04/07 「Windows Server DNSのデバッグログ活用事例」という記事へのリンクを追加しました。
概要
ログフォワーダー「okurun.jar」を利用してWindows Server DNSのデバッグログをsyslogとして発信し、LSCにて受信します。「okurun.jar」の入手先及び概要については、以下の記事をご参照ください。
ログフォワーダー「okurun.jar」について
前提条件
- 「okurun.jar」はjavaにて動作します。OpenJDK等事前にWindowsへインストールし環境変数の設定等を実施してください。
- Windows環境におけるjavaの環境変数設定については説明しません。
- 当記事の記載内容は下記環境にて実施したものです。
- 当記事の手順はすべて管理者権限にて実施しています。
Windows
OS | WindowsServer 2019 |
JAVA | OpenJDK15 |
LSCサーバ
LSCバージョン | 2.0.1 |
OS | CentOS7 |
メモリ | 4GB |
CPU | 2コア |
JAVA | OpenJDK14 |
設定(Windows側)
Windows ServerのDNSデバッグログの設定
- DNSマネージャを開き、ログを収集したいDNSサーバーを右クリックして「プロパティ」を押下します。
- 「デバッグのログ」タブを選択します。
- 「デバッグのためにパケットのログを記録する」にチェックを入れます。
- ログに出力したい内容を任意に選択し、ログの出力先を設定したい場合、「ログファイル」>「ファイルのパスと名前」にパスを入力の上、「OK」を押下します。「ログファイル」>「ファイルのパスと名前」が空欄の場合、デフォルトで「C:Windows\System32\dns\dns.log」にログが出力されます。
※「そのほかのオプション」>「詳細」にチェックを入れますと詳細な通信記録がログに出力されますが、1イベントに対して1行内で通信記録が完結せず、複数行に渡ってログが記録されます。1行ごとにsyslogとして送信する「okurun.jar」の仕様上、「詳細」の場合正常にメッセージを受信出来ません。
- ログが出力されていることを確認します。
「okurun.jar」の準備
- Windowsの任意のディレクトリに「okurun.jar」を配置します。当記事では、C:temp配下に配置します。
DNSデバッグログの送信方法
- コマンドプロンプトを開き、「okurun.jar」を配置したディレクトリに移動します。
C:UsersAdministrator>cd /temp C:temp>
- 「okurun.jar」を実行します。当記事では、C:Windows\System32\dns配下のdns.logが「okurun.jar」の対象となるログファイルです。当記事では、LSC(172.23.61.59)にudp/514でファシリティ「SYSLOG」プライオリティ「INFO」にて転送する場合のコマンドを記載します。※LSCへ転送する場合は、ヘッダオプションはNにしてください。
C:temp>javaw -jar okurun.jar C:\Windows\System32\dns\dns.log UTF-8 udp 172.23.61.59 514 INFO SYSLOG N Y
- 上記コマンド実行後、バックグラウンド上で「okurun.jar」が起動します。
「okurun.jar」の停止方法
- フォワーダーはtaskkillコマンドにて停止します。まず、タスクマネージャにて「okurun.jar」のプロセスIDを確認します。※列「コマンドライン」を表示させると探しやすいです。
- 停止したい「okurun.jar」のプロセスIDを確認し、コマンドプロンプトよりtaskkillコマンドにて停止します。
# taskkill /pid 3296
- タスクマネージャにて停止した「okurun.jar」のプロセスIDが存在しないことを確認します。
DNSデバッグログメッセージサンプル
- DNSデバッグログメッセージについて説明します。
- 「dns.log」のログメッセージ形式を下記に示します。※実際のログファイル内の記述を参考にしています。
{date} {time} {Thread ID} {Context} {Internal packet identifier} {UDP/TCP indicator} {Send/Receive indicator} {Remote IP} {Xid (hex)} {Query/Response} {Opcode} {Flags (hex)} {Flags (char codes)} {ResponseCode} {Question Type} {Question Name}
- 実際のログメッセージを下記に例示します。※フィールド「Question Name」に含まれる(数字)は続くドメインの文字数を表しています。
2021/05/13 0:06:42 15F8 PACKET 000002308D8FED90 UDP Rcv xxx.xxx.xxx.xxx 22f5 Q [0001 D NOERROR] A (3)xxx(9)xxxxxxxxx(3)xxx(0) 2021/05/13 9:27:03 0C08 PACKET 000002308C55CD10 UDP Rcv xxx.xxx.xxx.xxx b61b R Q [0080 NOERROR] A (3)xxx(13)xxxxxxxxxxxxx(3)xxx(0) 2021/05/13 11:25:22 0600 PACKET 00000230908C6C80 UDP Snd xxx.xxx.xxx.xxx db79 R Q [8081 DR NOERROR] A (3)xxx(6)xxxxxx(3)xxx(0)
設定(LSC側)
基本設定
- 「okurun.jar」にて転送されたメッセージを「SYSLOG収集」にてLSCで受信します。「SYSLOG収集」につきましては、以下の記事をご参照ください。
SYSLOG収集 - 「SYSLOG収集」にて利用されるポート番号はデフォルトでtcp/udp共に514となっています。「okurun.jar」にてポート番号を514以外に設定した場合、環境設定より「SYSLOG収集」にて利用されるポート番号を変更することで514以外のポートで「SYSLOG収集」が可能となります。環境設定につきましては、以下の記事をご参照ください。
LogStare Collector における環境設定について
活用事例
収集したログの活用事例として以下の記事がございます。
Windows Server DNSのデバッグログ活用事例
以上でWindows ServerのDNSのデバッグログをLogStare Collectorにて収集する方法についての説明は終了となります。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。