การทำ Centralized Log server ด้วย Linux + Rsyslog + LogAnalyzer

ระบบการจัดเก็บข้อมูลการใช้งาน network แบบง่ายๆ นั้น ผมใช้ Debian Linux เป็นตัวแม่ข่ายในการทำระบบ โดยมี Rsyslog ทำหน้าที่รับข้อมูล Log จากระบบต่างๆ ลงใน MySQL database เมื่อมีการจัดเก็บข้อมูลแล้ว ก็ใช้ LogAnalyzer ทำหน้าที่ในการรายงานข้อมูลต่างๆ

ระบบ Linux โดยปกติทั่วๆ ไป จะมีการติดตั้ง Rsyslog 5.x มาด้วย เพื่อเก็บข้อมูล log ต่างๆ ของระบบ Linux เอง Rsyslog 5.x นั่นไม่รองรับรูปแบบคำสั่งใหม่ ดังนั้นแนะนำให้ upgrade เป็นเวอร์ชั่น 7 หรือ 8 ในตัวอย่างนี้ใช้ v.8.10

ค่าปริยาย (default) Rsyslog จะเก็บข้อมูล log ในรูปแบบของ text file ซึ่งอาจจะไม่สะดวกในการพัฒนาต่อยอด ในตัวอย่างนี้ก็จัดเก็บข้อมูล log ไว้ใน MySQL database

ระบบที่แสดงใน blog นี้ใช้ภายใต้ Virtual Box

สิ่งที่ต้องมี

  • Linux server
  • Internet connection

ขั้นตอนการติดตั้งระบบ

  1. ทำการติดตั้ง Apache2 webserver, MySQL server และ PHP5 บน Debian โดยมีคำสั่งดังต่อไปนี้apt-get update
    apt-get install apache2
    apt-get install mysql-server
    apt-get install php5 php5-mysql
  2. ทำการอัพเกรด Rsyslog โดยมีขั้นตอนดังนี้
    • ก่อนอื่นต้องทำการเพิ่มแหล่งโปรแกรมก่อน โดยการแก้ไขไฟล์ /etc/apt/sources.list โดยการเพิ่ม 3 บรรทัดนี้ไว้ด้านล่างของไฟล์

      # Adiscon repository
      deb http://debian.adiscon.com/v8-stable wheezy/
      deb-src http://debian.adiscon.com/v8-stable wheezy/
    • จากนั้นทำการเพิ่ม PGP key ของ Rsyslog ก่อนด้วยคำสั่งapt-key adv --recv-keys --keyserver keys.gnupg.net AEF0CF8E
    • แล้วจึงทำการ update และติดตั้ง Syslog ด้วยคำสั่งต่อไปนี้apt-get update
      apt-get install rsyslog rsyslog-mysql
  3. เมื่อทำการติดตั้ง Rsyslog เป็นที่เรียบร้อย ก็ทำการตั้งค่าต่างๆ ใน /etc/rsyslog.conf สำหรับ
    • รับข้อมูล log จากระบบอื่น โดยการเอา # ที่ 2 บรรทัดนี้ออก$ModLoad imudp
      $UDPServerRun 514
    • รับข้อมูลมาแล้ว ก็ให้เก็บไว้ใน MySQL$ModLoad ommysql
      *.* :ommysql:localhost,dbname,dbuser,dbpassword
  4. ถึงขั้นตอนนี้ Rsyslog ก็พร้อมที่จะรับข้อมูล log จากระบบต่างๆ ผ่านทาง UDP port 514 ให้ทำการ restart service ด้วยคำสั่งservice rsyslog restart
  5. ทำการตั้งค่าระบบต่างๆ ให้ส่งข้อมูล log ไปยัง log server ตัวอย่าง Mikrotik ตามภาพประกอบ
    mt-logging  mt-logging-actionmt-logging-rule
  6. ทำการติดตั้ง LogAnalyzer เพื่อทำการดูรายงานข้อมูล log ต่างๆ
    • ดาวน์โหลดโปรแกรมจาก http://loganalyzer.adiscon.com/downloads/ แล้วทำการแตกไฟล์

      wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.3.tar.gz
      tar -xzvf loganalyzer-4.1.3.tar.gz
    • เมื่อแตกไฟล์เรียบร้อย ก็ทำการย้ายโฟลเดอร์ loganalyzer-4.1.3/src ไปไว้ใน www พร้อมเตรียม config.php ด้วยคำสั่งดังนี้

      mv loganalyzer-4.1.3/src /var/www/loganalyzer
      cd /var/www/loganalyzer
      touch config.php
      chmod 777 config.php
    • จากนั้นให้เปิด web browser แล้วใส่ ip address ตามด้วย /loganalyzer/install.php เพื่อดำเนินการตั้งค่าของ loganalyzerhttp://192.168.1.250/loganalyzer/install.php
    • ก็ดำเนินการตามคำสั่งบนจอ พร้อมกด Next จนเสร็จ

 

อ้างอิง

  • http://www.rsyslog.com/doc/v8-stable/
  • http://www.rsyslog.com/video-tutorials/
  • http://loganalyzer.adiscon.com/doc/install.html

Comments are closed