Results 1 to 2 of 2

Thread: การติดตั้ง Centralized log ตาม พรบ.ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์

  1. #1


    หลาย ๆ องค์กรเริ่มจะตื่นตัวกับพรบ.ว่าด้วยการกระทำผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. ๒๕๕๐ ตามมาตรา ๒๖ บัญญัติให้ผู้ให้บริการต้องเก็บข้อมูลจราจรคอมพิวเตอร์ไว้ไม่ต่ำกว่า ๙๐ วัน แต่ไม่เกิน ๑ ปีไปแล้ว วันนี้จะแนะนำวิธีง่าย ๆ ที่จะทำ centralized log เซิร์ฟเวอร์ด้วยตนเอง ด้วยซอฟต์แวร์ open sourceดูสิว่าจะสู้ผลิตภัณฑ์ต่างประเทศราคาหลายแสนได้หรือไม่

    นับเป็นข่าวดีมากที่ผู้เขียนได้ค้นพบซอฟต์แวร์ที่ใช้ทำการวิว ค้นหาข้อมูล เพื่อจะได้ทำรายงานเบื้องต้นได้ใหม่ ชื่อว่า “php syslogviewer” แถมเพิ่งจะอัพเดทล่าสุดเมื่อปีกลาย แจ่มทีเดียว ใครหลายคนอาจเคยได้ยินชื่อ phpsyslog-ng มาก่อน ลืมไปได้เลยครับขี้เหร่มาก



    ซอฟต์แวร์ที่ใช้งาน

    syslog-ng-2.0.0

    phpsyslogviewer-7.2.1

    speedupd-7.3.2



    ผู้เขียนทดสอบโดยติดตั้งบนระบบปฏิบัติการ debian etch 4.0 รันในระบบเวอร์ชอลแมชชีน โดยซอฟต์แวร์ xen opensource ใช้เคอร์เนลเวอร์ชั่น 2.6.18-4-xen-686 นับว่ามีเสถียรภาพสูงมาก ๆ ครับ



    ขั้นตอนที่ 1 เริ่มกันเลยดีกว่า หลังจากติดตั้งโอเอสเรียบร้อยให้ทำการติดตั้งซอฟต์แวร์ syslog-ng-2.0.0 โดยใช้แพ็คเกจของโอเอสเองดังนี้



    # apt-get install syslog-ng



    ขั้นตอนที่ 2 ดาวน์โหลดซอร์สโค๊ดจาก sourceforge ตามลิงค์ข้างล่างนี้

    # wget http://jaist.dl.sourceforge.net/sourceforg...r-7.2.1.tar.bz2

    # wget http://jaist.dl.sourceforge.net/sourceforg...d-7.3.2.tar.bz2


    ขั้นตอนที่ 3 แตกแพ็คเกจออกถ้าใครยังไม่ได้ลงโปรแกรม bzip2 ให้ทำการลงซะก่อนมิฉะนั้นจะแตกไฟล์ออกไม่ได้และทำการติดตั้งชุด lamp สำหรับเครื่องแม่ข่ายซะก่อน ขั้นตอนการติดตั้ง lamp อาจจะใช้เวลาสักนิดนึง หากใครมีประสบการ์ณคงหาทางแก้ปัญหาได้จากเอกสารอื่น เนื้อหาในบทความนี้ผู้เขียนขอเล็งไปที่ซอฟต์แวร์หลัก ๆ ของระบบการจัดการข้อมูลการจราจรคอมพิวเตอร์ ตามพรบ.เป็นหลัก อาจจะทำให้มือใหม่งุดหงิดบ้าง ดังนี้

    # apt-get install bzip2

    # tar xjvf phpsyslogviewer-7.2.1.tar.bz2

    # cd phpsyslogviewer-7.2.1

    # apt-get install mysql-client mysql-server apache2 php5

    # apt-get install php5-mysql php5-ldap php5-cli libapache2-mod-php5



    ขั้นตอนที่ 4 ในโฟลเดอร์ install จะมีสคริปที่ใช้ติดตั้งตารางต่าง ๆ ให้กับฐานข้อมูล เราจะต้องทำการสร้างฐานข้อมูลเสียก่อน มิฉะนั้นจะพบกับข้อผิดพลาดและไม่สามารถรันสคริปดังกล่าวผ่านได้

    # mysql -u root -p

    mysql > create database syslogng;

    mysql > exit;

    # mysql -u root -p syslogng < install/phpsyslogviewer.sql



    ขั้นตอนที่ 5 ปรบมือให้กับตัวเองเราผ่านพ้นขั้นตอนที่ต้องระวังไปขั้นหนึ่ง จากนั้นกำหนดค่าเพื่อสร้างบัญชีรายชื่อผู้ใช้และรหัสผ่านง่าย ๆ ก็ใส่ค่าข้อมูลของผู้ใช้ รหัสผ่าน ชื่อโฮสต์ และ ฐานข้อมูล คิดว่าไม่น่ายาก ดังนี้

    # vi install/newuser.sql.php

    # php install/newuser.sql.php

    # php install/newuser.sql.php | mysql -u root -p syslogng



    ขั้นตอนที่ 6 จัดการเวบไดเรคทอรีเพื่อให้สามารถเรียกดูข้อมูลผ่านเวบบราวเซอร์ ใครที่มีประสบการณ์สร้างเวบไซต์มาก่อน งานนี้กินเรียบครับ ทำตามขั้นตอนได้เลย

    # cp -R htdocs /var/www/phpsyslogviewer

    # vi /var/www/phpsyslogviewer/config.php

    # chown root:www-data /var/www/phpsyslogviewer/config.php

    # chmod 440 /var/www/phpsyslogviewer/config.php





    ขั้นตอนที่ 7 ทดลองเปิดหน้าเวบไซต์ดูหน่อยว่าหน้าตาเป็นอย่างไร ไปที่ http://xxx.xxx.xxx.xxx/phpsyslogviewer


    จะเห็นว่าหน้าตาดูดีทีเดียว


    ขั้นตอนที่ 8 ติดตั้งแพ็คเกจ speedupd-7.3.2 เพื่อเร่งความเร็วให้เอนจิ้นป้อนข้อมูลสู่ฐานข้อมูล mysql ขั้นตอนนี้อาจยุ่งยากนิดหน่อย เพราะต้องทำการคอมไพล์แพ็คเกจด้วยตัวเองใหม่ แต่ไม่เกินความสามารถของเราหรอกครับ ขอย้ำว่าต้องทำนะครับขั้นตอนนี้ มิฉะนั้นใครที่เคยใช้ phpsyslog-ng จะรู้ซึ้งว่าอึดอัดเป็นอย่างไร

    # tar xjvf speedupd-7.3.2.tar.bz2

    # cd speedup-7.3.2

    # apt-get install debhelper cmake libdaemon-dev libconfuse-dev fakeroot

    # dpkg-buildpackage -rfakeroot



    ขั้นตอนที่ 9 หลังจากผ่านขั้นตอนที่ 8 เราจะได้แพ็คเกจตระกูล debian ชื่อว่า speedupd_7.3.0_i386.debให้ติดตั้งแพ็คเกจและกำหนดค่าให้กับไฟล์ speedupd.confดังนี้

    # cd ..

    # dpkg -i speedupd_7.3.0_i386.deb

    # vi /etc/speedupd.conf

    # /etc/init.d/speedupd start



    ขั้นตอนที่ 10 สบายใจไปอีกขั้นหนึ่งครับ ต่อไปเป็นการกำหนดค่าให้กับ syslog-ng ทำการส่งค่าไปเก็บยังฐานข้อมูลทำตามนี้เลยครับ ง่าย ๆ ผู้เขียนตัดวิธีการเก็บข้อมูลการจราจรคอมพิวเตอร์ส่วนอื่นออก เพื่อให้สามารถทำความเข้าใจได้ง่าย ๆ ครับ หากใครมีไฟล์คอนฟิคเก่าอยู่แล้วก็เพิ่มเติมเฉพาะส่วนที่ต้องการเก็บข้อมูลในฐานข้อมูลได้เลยครับ

    # cd /etc/syslog-ng

    # cp syslog-ng.conf syslog-ng.conf.org

    # vi syslog-ng.conf

    options {

    recv_time_zone (+07:00);

    send_time_zone (+07:00);

    sync (0);

    time_reopen (100);

    log_fifo_size (1000);

    long_hostnames (off);

    use_dns (no);

    use_fqdn (no);

    create_dirs (yes);

    chain_hostnames(yes);

    keep_hostname (yes);

    };



    source s_sys {

    file ("/proc/kmsg" log_prefix("kernel: "));

    unix-stream ("/dev/log");

    internal();

    udp(ip(0.0.0.0) port(514));

    tcp(ip(0.0.0.0) port(514) keep-alive(yes));

    };

    destination d_mysql { \

    pipe("/var/log/mysql.pipe" \

    template("INSERT INTO logs \

    (host, facility, priority, level, tag, datetime, program, msg) \

    VALUES ( &#39;$HOST&#39;, &#39;$FACILITY&#39;, &#39;$PRIORITY&#39;, &#39;$LEVEL&#39;, &#39;$TAG&#39;, &#39;$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC&#39;, \

    &#39;$PROGRAM&#39;, &#39;$MSG&#39; );\n") template-escape(yes));

    };



    filter f_kernel { facility (kern); };

    filter f_messages { level(info..emerg) and not (facility(mail) or \

    facility(authpriv) or facility(cron)); };



    log {source(s_sys); filter(f_messages); destination(d_mysql); };

    log {source(s_sys); filter(f_kernel); destination(d_mysql); };



    ขั้นตอนที่ 11 สร้างสคริปเพื่อทำไปน์สำหรับส่งค่าสตรีมจากไปน์สู่ฐานข้อมูล งานนี้เป็น bash สคริปครับทำเสร็จต้องเปลี่ยนสิทธิให้รันได้ด้วยอย่าลืม ฟังดูวุ่นวายแต่ทำจริงง่ายมากครับ

    #vi syslog2mysql.sh

    #!/bin/bash

    if [ ! -e /var/log/mysql.pipe ]

    then

    mkfifo /var/log/mysql.pipe

    fi

    while [ -e /var/log/mysql.pipe ]

    do

    mysql -u root --password=radius syslogng < /var/log/mysql.pipe >/dev/null

    done



    # chmod +x syslog2mysql.sh

    # ./syslog2mysql.sh &

    # /etc/init.d/syslog-ng start



    ทำครบแล้วก็ปรบมือให้ตัวเองครับ ลองมาดูผลงานสิว่าเป็นไงบ้าง เข้าไปหน้าล็อกอินครับ

    จากนั้นป้อนรหัสผู้ใช้พร้อมรหัสผ่านที่ทำไว้ในขั้นตอนที่ 5 ครับ ถ้าหากลืม จากนั้นจะได้หน้าจอต่อไปครับ
    ดูต่อ อยากเห็นเรียลไทม์วิวเวอร์ครับ
    ลองค้นหาดูสิ

    ได้คำตอบตามนี้ครับ

    ดูดีทีเดียวครับ เป็นไงครับ php syslogviewerสู้ซอต์ฟแวร์แพง ๆ จากต่างประเทศได้ไหมอันนี้ต้องพิสูจน์ด้วยตนเองแหละครับ ในส่วนตัวของผู้เขียนดูดีทีเดียวทะเลาะได้กับ kiwi syslog service manager ของวินโดร์ได้ดีเชียวครับ หรือจะใช้สำหรับมอนิเตอร์โปรแกรมจัดส่งข้อมูลการจราจรคอมพิวเตอร์จากอุปกรณ์อื่น ๆ เช่น สวิตช์ เร้าเตอร์ หรือ อุปกรณ์แอคเซสพอยท์ในระบบก็ทำได้ดีครับ ใช้จริงก็ได้ครับ ผู้เขียนว่าคนไทยเก่งครับ สามารถสร้างเครื่องแม่ข่ายเก็บข้อมูลการจราจรคอมพิวเตอร์ ตาม พรบ.ว่าด้วยการกระทำผิดเกียวกับคอมพิวเตอร์ พ.ศ.2550 ได้ด้วยตนเองครับ ก็มันกฎหมายบ้านเรา ก็ทำมันซะเองสิครับ แค่นี้ก็รอดตัวจากมาตรา 26 ปรับตั้งห้าแสนบาทแล้วครับ ที่สำคัญช่วยลดปัญหาการนำเข้าฮาร์ดแวร์ราคาแพงจากต่างประเทศได้ครับ สงสารพี่น้องเกษตรกรไทยครับไม่รู้จะขายข้าวสารกี่เกวียนจะพอจ่ายเงินซื้อ centralized log จากต่างประเทศสักตัว

    ที่มา http://www.tpit.co.th/

    supakitd at yahoo dot com

    บริษัท ไทยพรอสเพอรัสไอที จำกัด

    42/1 ถ.พิทักษ์ชาติ ต.ประจวบคีรีขันธ์

    อ.เมืองประจวบคีรีขันธ์ จ.ประจวบคีรีขันธ์ 77000

  2. #2
    Member
    Join Date
    Jan 2007
    Location
    $home/bin
    Posts
    99


    Wink

    ขอบคุณครับ ใช้ syslog-ng เหมือนกัน

    แต่ตัวดู log บน web มีอีกตัวหนึ่งน่าใช้เหมือนกันครับ คือ php-syslog-ng

    การแสดงผลและคิวรี่ คล้ายๆกับ phpsyslogviewer ดูจากในรูป

    ไม่รู้ว่า phpsyslogviewer มีกราฟหรือเปล่า ของ php-syslog-ng จะมีกราฟด้วย



    Opensource : [url=http://www.mangluck.com]?mangluck[/url]

Similar Threads

  1. Replies: 0
    Last Post: 04-05-2009, 11:11 PM
  2. Replies: 0
    Last Post: 09-10-2007, 08:09 PM
  3. Replies: 0
    Last Post: 23-09-2007, 07:50 PM
  4. Replies: 0
    Last Post: 21-12-2006, 09:08 PM
  5. การติดตั้ง PHP-NUKE
    By Kittipong_kang in forum PHP,ASP,Javascript, Html
    Replies: 1
    Last Post: 06-04-2004, 01:19 AM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •