Tuesday 6 June 2017

MikroTik เก็บ Log การใช้งานด้วย Syslog Server

บทความในวันนี้เราจะพูดถึงเรื่องการเก็บ Log ใน MikroTik ด้วย Syslog Server นะคัรบ เรามาเริ่มทำความรู้จักกับ Syslog กันก่อนครับ Syslog คือมาตราฐานกลางของการเก็บ Log โดยตัว Syslog Server นั่นสามารถเก็บ Log ได้จากหลายอุปกรณ์ แล้วเรายังสามารถนำ Log ที่ได้มามาเข้าโปรแกรมพวก Analyze เพื่อแสดงผลออกมาเป็นรายงานในรูปแบบต่างๆ ได้ด้วยคัรบ เรื่องบทความการเอา Syslog มาทำเป็นรายงานเดียวไว้บทความหน้านะคัรบ


ในวันนี้เราจะมาดูวิธีการทำกันคัรบ ขั้นแรกเลยเราต้องมีเครื่อง Server ที่เป็น Linux ก่อนนะครับในที่นี้ผมจะใช้ตัว Ubuntu Server 16.04.2 LTS ดาวโหลดได้ที่นี้ครับ ในบทความนี้จะไม่กล่าวเรื่องการติดตั้ง Ubuntu นะครับเราจะเริ่มตอนติดตั้ง Syslog-ng package เลยคัรบ

ขั้นตอนแรกให้ # apt-get update กับ # apt-get upgrade ก่อนเลยคัรบ เพื่อนให้ update repository กับ upgrade package ในเครื่องครับ

# sudo apt-get update
# sudo apt-get upgrade



จากนั่นให้ติดตั้ง Syslog-ng Package 
# sudo apt-get install syslog-ng


เมื่อติดตั้งเสร็จเรียบร้อยแล้วให้ไปแก้ Configuration file ที่ /etc/syslog-ng/syslog-ng.conf แล้วเพิ่ม code ตามที่ใส่ไว้ในรูป

# sudo nano -c /etc/syslog-ng/syslog-ng.conf

# MikroTik - Syslog
source s_mikrotik { udp(port(514)); };


# MikroTik - Syslog
destination d_mikrotik { file("/var/log/mikrotik.${YEAR}${MONTH}${DAY}.log"); };


# MikroTik - Syslog
filter f_mikrotik { host("192.168.88.1"); };


# MikroTik - Syslog
log { source(s_mikrotik); destination(d_mikrotik); filter(f_mikrotik); };


ทำการ Start Service และตรวจดู Status ของ Syslog Service
# sudo service syslog-ng restart
# sudo service syslog-ng status


ตรวจเชคดูว่า UDP Port 514 ทำงานแล้วหรือยัง
#  netstat -na | grep 514


ทดลองทำการส่ง Message เข้าไปยัง Syslog Server
# logger -n 192.168.6.136 -t TEST -P 514 Hello Syslog Server

แสดงข้อมูลใน Syslog File
# tail -f /var/log/mikrotik.20170606.log


จากนั่นทำการตั้งค่าใน MikroTik ให้ส่ง Log มาที่ Syslog Server ที่เมนู Winbox => System => Logging



จากนั่นเมื่อกลับมาดูที่ Syslog File ใน /var/log ก็จะเห็ฯมี Log โผล่เข้ามาแล้ว


สำหรับใครกล้วกรณี Log เต็มหรือเราต้องการเก็บแค่ 90 วันล่าสุดก็ทำเพิ่มในส่วนของ Log Rotate ด้วยครับดังนี้

# nano /etc/logrotate.d/syslog-ng

แล้วเพิ่ม Code ส่วนด้านล่างลงใน Config File คัรบ

/var/log/*.log {
 daily
 rotate 90
 missingok
 compress
 notifempty
 missingok
 sharedscripts
 /etc/init.d/syslog-ng restart
 endscript
# invoke-rc.d syslog-ng reload > /dev/null
}

เพียงเท่านี้เราก็มี Syslog Server ไว้ใช้งานละคัรบ วันนี้จบละคัรบ

=============================
ห้างหุ้นส่วนจำกัด อินดี้ ไอที โซลูชั่น
Line: indyitgroup หรือ @indyit
Tel: 089-6494533

4 comments:

  1. Thank you so much.

    ReplyDelete
  2. ถ้ากรณีที่ไม่ใช้ microtik ใช้แค่ raspberry pi ที่ลง syslog ไว้จะได้ไหมครับ
    แล้วต้อง config อะไรเพิ่มไหมครับ

    ReplyDelete
  3. แสดงข้อมูลใน Syslog File
    # tail -f /var/log/mikrotik.20170606.log ผม ใส่ปีคศเดือนวัน 20210615 ปัจจุบันลง แต่ พอกด enter
    ฟ้องไม่เจอไฟล์ หรือ directory ครับ ติดตรงนี้ครับ

    ReplyDelete
    Replies
    1. ผมทำตามทุกบรรทัด ได้หมด ครับ copy วาง เหมือนกัน

      Delete