วิธีการส่ง log จากเครื่อง Windows ไปยัง syslog server ด้วย nxlog
ก่อนหน้านี้เราใช้งาน Solarwind syslog เพื่อทำการส่ง log ของ Windows ไปยัง syslog server กันมาแล้ว มาคราวนี้มาเปลี่ยนไปใช้ Nxlog กันบ้างครับ
Nxlog Community Edition เป็นตัวฟรีสำหรับการส่ง log ไปในรูปแบบต่างๆไม่ว่าจะเป็น Syslog, CSV, GELF, JSON, XML, Windows EventLog และ even custom formats อื่นๆที่แล้วแต่เราจะสร้างขึ้นมา
วิธีการติดตั้งแสนง่ายครับ
1. download nxlog community edition จาก https://nxlog.co/products/nxlog-community-edition
2. เมื่อติดตั้งเสร็จแล้วให้ทำการสร้าง configuration เป็นดังนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# for 32bit #define ROOT C:\Program Files\nxlog # for 64bit define ROOT C:\Program Files (x86)\nxlog Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log # Include fileop while debugging, also enable in the output module below #<Extension fileop> # Module xm_fileop #</Extension> <Extension json> Module xm_json </Extension> <Extension syslog> Module xm_syslog </Extension> <Input internal> Module im_internal Exec $Message = to_json(); </Input> <Input eventlog> #Uncomment im_mseventlog for Windows XP/2000/2003 #Module im_mseventlog # Uncomment im_msvistalog for Windows Vista/2008 and later Module im_msvistalog # Exec $Message = to_json(); ReadFromLast True #Query <QueryList>\ # in case you want to specific type of event that you want to send. #<Query Id=”0">\ #<Select Path=”Security”>*</Select>\ #<Select Path=”System”>*[System/Level=4]</Select>\ #<Select Path=”Application”>*[Application/Level=2]</Select>\ #<Select Path=”Setup”>*[System/Level=3]</Select>\ #<Select Path=”Windows PowerShell”>*</Select>\ #<Select Path=”Microsoft-Windows-Sysmon/Operational”>*</Select>\</Query>\ #</QueryList> </Input> <Output syslogserver> Module om_tcp Host syslog-server-address Port 514 Exec to_syslog_ietf(); # Exec $raw_event =~ s/([.*])//g; $raw_event = replace($raw_event, '{', '[CUSTOMER_TOKEN@41058 tag="windows"] {', 1); </Output> <Route 1> Path eventlog => syslogserver </Route> |
3. ทำการ restart nxlog service จากนั้นก็ตรวจสอบที่ฝั่ง syslog-ng server ได้เลยครับ