Syslog用にサーバ機器を買いたくないけどWindowsServerのログ用のSyslog Serverを構築したいと引き合いがあったので、ぱっと思いついた閃きの最安構成を考えてみました。業務利用は考慮していないのであしからず。
全体機器構成
今回はSyslogサーバとして、QNAP製NASを利用します。NASをファイルサーバとして利用している企業はあると思いますがQNAP NASにはSyslogサーバとしての機能もあります。
Windows ServerのログとCisco L3Switchのログ(ついでに)をSyslogサーバとして設定したQNAPに送り込む構成となります。
図にするとこんな感じです。
用意した機器
・Syslog server =QNAP TS-431XU-RP(QTS 5.0.1)
・Windows Server2022
・Cisco Catalyst 3750(L3 Switch)
今回のゴール
Windows Serverのログ(EventViewの内容)とCisco L3SwitchのログがQNAP Syslog管理画面で閲覧できるようにする。
具体的にはこんな感じでログを表示させたいと思います。
決して見やすログ情報ではないので、送信側でチューニングしてください...
前提条件・免責事項
・ログ解析や機器監視などの運用を想定した構成ではなく、とりあえずSyslogを溜めて、データを閲覧できるだけです。※業務利用するならちゃんとしたSyslogソフト製品を購入しましょう。
・Windowsの標準機能ではSyslogの送信機能がないので、NXLogをインストールして利用します
・Syslogを受信できる環境の構築(受信側)がメインで、どのようなログを送信するか(送信側)は最低限の設定だけです
手順
① QANPでSysloサーバ機能の有効化と受信ポートの設定
② Windows ServerにNXLogをインストール、Syslog送信設定
③ CiscoスイッチでSyslog送信設定
④ QNAP側でSyslogの確認
やってみた
① QANPでSysloサーバ機能の有効化と受信ポートの設定
QNAP WebUIにログインし、「コントロールパネル」の「アプリケーション」内の「Syslogサーバー」をクリックします。
デフォルトだと「Syslogサーバーを有効にする」にチェックが入っていないので、チェックを入れてポート番号を入力します。※デフォルトは514
QNAP側設定は以上です。
② Windows ServerにNXLogをインストール、Syslog送信設定
以下サイトからNXLogをインストールします。
Enterprise版(有料版)とCommmunity Edition(無料版)がありますが無料版を選択します。
インストール設定は特に何も変更することなく、「はい」を連打して、進めてください。
デフォルトだとC:\ProgramFilesにフォルダができ、その中のconfフォルダの中にnxlog.confが作成されます。
nxlog.confがNXLogの設定ファイルですのでこのファイルをテキストで開き、中身を修正していきます。※修正する前にバックアップは取得しましょう
今回の環境では以下のように修正しました。
# NXLog Community Edition configuration file
#
# For more information see "C:\Program Files\nxlog\conf\nxlog.conf"
# or latest version online at https://nxlog.co/docs/nxlog-ce/nxlog-reference-manual.html
# If you experience problems, see https://nxlog.co/community-forum
#### DEFINE ####
define ROOT C:\Program Files\nxlog
define CERTDIR %ROOT%\cert
define CONFDIR %ROOT%\conf
define LOGDIR %ROOT%\data
define LOGFILE %LOGDIR%\nxlog.log
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %LOGFILE%
#### EXTENSION ####
<Extension exec>
Module xm_exec
</Extension>
<Extension json>
Module xm_json
</Extension>
<Extension syslog>
Module xm_syslog
</Extension>
<Extension charconv>
Module xm_charconv
AutodetectCharsets shift_jis, utf-8
</Extension>
<Extension fileop>
Module xm_fileop
<Schedule>
Every 1 week
<Exec>
file_cycle('%LOGFILE%', 4);
</Exec>
</Schedule>
</Extension>
#### INPUT SECTION ####
<Input input_application>
Module im_msvistalog
Query <QueryList><Query Id="0"><Select Path="Application">*</Select></Query></QueryList>
<Exec>
$Message = to_json();
$Hostname = hostname();
</Exec>
</Input>
<Input input_security>
Module im_msvistalog
Query <QueryList><Query Id="0"><Select Path="Security">*</Select></Query></QueryList>
<Exec>
$Message = to_json();
$Hostname = hostname();
</Exec>
</Input>
<Input input_system>
Module im_msvistalog
Query <QueryList><Query Id="0"><Select Path="System">*</Select></Query></QueryList>
<Exec>
$Message = to_json();
$Hostname = hostname();
</Exec>
</Input>
#### PROCESSOR SECTION ####
<Processor buffer_memory>
Module pm_buffer
Type Mem
MaxSize 128000
WarnLimit 16000
</Processor>
#### OUTPUT SECTION ####
<Output output_syslog>
Module om_udp
Host 192.168.XX.XX ←ここにNASのIPアドレス
Port 514 ←デフォルトではポート番号514
<Exec>
$SourceName = 'NXLog';
$SyslogFacility = 'local0';
$SyslogSeverityValue = '6';
to_syslog_ietf();
</Exec>
</Output>
#### ROUTE SECTION ####
<Route route_application>
path input_application => buffer_memory => output_syslog
</Route>
<Route route_security>
path input_security => buffer_memory => output_syslog
</Route>
<Route route_system>
path input_system => buffer_memory => output_syslog
</Route>
修正が終わったらサービスを再起動させましょう。何かしらの理由で再起動できない場合はnxlog.confの記載内容がおかしいので見直しましょう。
③ CiscoスイッチでSyslog送信設定
Syslog送信に関わる部分だけ抜粋でコマンドを記載します。
Cisco(config)#logging buffered 512000
Cisco(config)#logging host 192.168.XX.XX ←NASのIPアドレス
Cisco(config)#logging trap informational ←syslogサーバに送信する際に「informational」を指定
Cisco(config)#logging facility local5 ←syslogサーバに送信する際にfacility-typeを「local5」に指定
Ciscoから手動でSyslogを送信してみます。
Cisco#send log 3 test
④ QNAP側でSyslogの確認
QNAP WebUIにログインし、「コントロールパネル」-「アプリケーション」で「Syslogサーバー」のSyslogビューアをクリックすると蓄積されたログを見ることができます。
おわりに
QNAPを利用すればサーバ用のハードウェアを購入せずにSyslogサーバを構築できるので、お安く構築できます。ただログ検索や分析などは激ムズ(ログが見にくい)なので本当にログデータを蓄積するだけになります。ログは重要!
参考にしたサイト