You are on page 1of 19

PortsProgrammer [syslog-ng] - 1

คู่มือ
ต่ อจากการติดตั้งคู่มือ PHPwifi 1.0 บน CentOS 5 up

การติดตั้งใช้งาน function ปุ่ ม Admin LOG
phpsyslogviewer และ syslog-ng และ mysql เพือ
่ ใช ้งานร่วมกันอย่างสมบูรณ์

บน
PHPwifi 1.0 Authent!cation wifi Hotspot

bz2 จากนัน้ ทาการสร้ างฐานข้ อมูลขึน้ มาใหม่ เพื่อรองรั บโปรแกรม phpsyslogviewer ตัวอย่ างขอยกการใช้ งาน PHPmyadmin ใส่ ช่ ือฐานข้ อมูลที่ต้องการสร้ างชื่อ syslog จากนัน้ คลิกที่ ปุ่ มสร้ าง .i386.i386.4-1.1.7-3.2.PortsProgrammer [syslog-ng] .7-3.com/bmu6jyuffnbg/3545825go3tnc0l/eventlog-0.el5.i386.rpm # rpm -Uvh syslog-ng-2.el5.1.1.mediafire.i386.1.2.el5.bz2 # tar -xjvf phpsyslogviewer-7.el5.i386.el5.tar.2.rpm syslog-ng-2.mediafire.el5.com/huv2q3u9dvng/fx1j1iinjuvfvbf/phpsyslogviewer-7.4-1.i386.2 เริ่มต้ นการติดตัง้ package install eventlog-0.rpm มาเก็บไว้ ที่ path /tmp/temp/ # cd /tmp/temp/ #wget http://download1476.rpm ทาการ download ไฟล์ syslog-ng-2.i386.7-3.rpm # yum -y install bzip2 # rpm -Uvh eventlog-0.el5.tar.mediafire.2.com/8kftcye69vvg/342hzdlv35hrz7q/syslog-ng-2.4-1.rpm # wget http://download855.1.1.2.4-1.rpm # wget http://download389.

Click button : Browse… 2.sql จากนัน้ ก็ตาม step ได้ เลย 1.PortsProgrammer [syslog-ng] .3 ทาการ import ไฟล์ ฐานข้ อมูล .com/43es95zgebwg/351rkw3a8eqpkw3/phpsyslogviewer. Click button : ลงมือ .mediafire.sql เข้ ามาในตาราง ( ดาว์ นโหลดไฟล์ phpsyslogviewer ลงมาเก็บไว้ ในเครื่ องลูกข่ าย แล้ วแตกไฟล์ ไว้ ท่ ไี หน ก็ตาม พาธ์ นัน้ เลย ) หรื อทาการ download ลงมาเก็บไว้ ท่ เี ครื่ องลูกข่ าย http://download1063. Dialog box : Choose File to Upload เลือกที่เก็บไฟล์ 3.

2.00 sec) mysql > exit Bye # cd /tmp/temp/phpsyslogviewer-7. 1 row affected (0. Query OK.ด้ วยคาสั่ง command line บนเครื่ อง server # mysql -uroot -prootadmin mysql > create database syslog.1/ # mysql -uroot -prootadmin syslog < install/phpsyslogviewer.sql ..4 Success! ก็จะได้ table ออกมา 14 table ดังภาพ หรืออีกวิธีหนึ่งที่ง่ายและเร็วสาหรับการสร้ างตารางและนาข้ อมูลตารางเข้ ามา .PortsProgrammer [syslog-ng] .

$pass = "padmin". // Your Username // Your Password ทาการสั่งรั นโค้ ด PHP ในตัวไฟล์ newuser.5 ขัน้ ตอนต่ อไปนีจ้ ะเป็ นการสร้ าง Username และ Password สาหรั บ Login เข้ าดู Log file ระบบ สาหรั บโปรแกรม phpsyslogviewer ซึ่งเกี่ยวกับ User บนฐานข้ อมูลของ phpsyslogviewer # cd /tmp/temp/phpsyslogviewer-7.php จากนัน้ ต่ อด้ วยการใช้ สทิ ธิ์ Username และ password บนฐานข้ อมูล MySQL ( Username และ Password บน MySQL ของใครของมันน่ ะค่ ะ ) # php install/newuser.sql. // Your Password แก้ เป็ น Username และ Password ตามใจชอบ เพื่อใช้ ในการเข้ าใช้ งานล็อกอิน ในตัวอย่ างตัง้ เป็ น $user = "admin".PortsProgrammer [syslog-ng] .sql.php เดิม $user = "".php เพื่อให้ ไฟล์ ดังกล่ าวทาการ insert ข้ อมูลเข้ าไปยังฐานข้ อมูล ชื่อ syslog # php install/newuser. // Your Username $pass = "".sql.sql.1 # nano +23 install/newuser.php | mysql -uroot -prootadmin syslog .2.

// Database Name แก้ เป็ น Username และ Password บนฐานข้ อมูล MySQL $db_user = "root".6 # cd htdocs/ # rm -rf /var/www/html/phpwifi/admin/phpsyslogviewer # mkdir /var/www/html/phpwifi/admin/phpsyslogviewer # cp -R * /var/www/html/phpwifi/admin/phpsyslogviewer # chown -R root:apache /var/www/html/phpwifi/admin/phpsyslogviewer # chmod -R 755 /var/www/html/phpwifi/admin/phpsyslogviewer ทาการแก้ ไขไฟล์ config ของ phpsyslogviewer ให้ สามารถสื่อสารกับฐานข้ อมูล syslog ได้ # nano /var/www/html/phpwifi/admin/phpsyslogviewer/config. // Database Username $db_pass = "rootadmin". // Database Password $db_host = "localhost".php เดิม $db_user = "syslog". // Database Hostname $db_name = "syslog". // Database Username $db_pass = "syslog". // Database Name ชื่อฐานข้ อมูลของ phpsyslogviewer .PortsProgrammer [syslog-ng] . // Database Hostname $db_name = "syslog". // Database Password $db_host = "localhost".

PortsProgrammer [syslog-ng] .7 คราวนี ้เป็ นขั ้นตอนการทดสอบการล็อกอินเข้ าใช้ งาน phpsyslogviewer ไปที่หน้ าเว็บ เข้ าไปในฐานะผู้ดแู ละระบบ (administrator) ไปที่โซน เลือกฟั งก์ชนั่ Admin LOG System Configuration .

คอมเม็นท์ ข้อความแบบยาว ปิ ด ทาการใส่ ไว้ บนคาสั่ง /* // validate php config if (ini_get('register_globals')) { จากนัน้ ทาการปิ ดเครื่ องหมาย comment ต่ อจาก ปี กกาปิ ด die($msg).ini ห้ ามไปปรับแต่งทาตามเด็ดขาด เพราะจะมีผลต่อตัวแปรประเภท global บนโค้ ดของไฟล์ hotspotlogin. } */ . *ในขั ้นตอนนี ้เราจะทาการไปแก้ ไขไฟล์ code ของตัวโปรแกรม phpsyslogviewer เองเลย # nano +34 /var/www/html/phpwifi/admin/phpsyslogviewer/index.8 อ้ า..php ระบบจะเพี ้ยน ตัวแปรไม่ทวั่ ถึงต่อเนื่องของคาสัง่ ..php ทาการแทรกเครื่ องหมาย เพื่อให้ ระบบ compiler มองเห็นเป็ นการ comment แทน /* <.ในตัวโปรแกรม phpsyslogviewer บอกให้ ไปปรับแต่งค่าไฟล์ config ใน php.PortsProgrammer [syslog-ng] ..!! ปั ญหาที่ท่านต้ องเจอ ในขั ้นตอนนี ้สาคัญมาก ..คอมเม้ นท์ ข้อความแบบยาว เปิ ด */ <.

php ด้ วย เพื่อความปลอดภัยของไฟล์ ระบบ .9 ดังรูปตัวอย่าง เปิ ด ปิ ด จากนัน้ ทดสอบโดยการเข้ าหน้ าเว็บในฐานะผู้ดูแลระบบ และใช้ งานฟั งก์ ช่ ัน Admin LOG อีกครั ้ง โปรแกรมก็จะบอกให้ เรากาหนดสิทธิ์ไฟล์ config.PortsProgrammer [syslog-ng] .

php จากนัน้ ทดสอบโดยการเข้ าหน้ าเว็บในฐานะผู้ดูแลระบบ และใช้ งานฟั งก์ ช่ ัน Admin LOG อีกครั ้ง ท่ านก็จะเจอหน้ าล็อกอินสาหรั บโปรแกรม phpsyslogviewer ในขัน้ ตอนหน้ าที่ 5 ท่ านใช้ Username และ Password อะไรในการเข้ าใช้ งาน ในตัวอย่ าง Username = admin ส่ วน Password = padmin .10 ในนีจ้ ะเลือกการให้ สทิ ธิ์เป็ นระดับ 440 # chmod 440 /var/www/html/phpwifi/admin/phpsyslogviewer/config.PortsProgrammer [syslog-ng] .

PortsProgrammer [syslog-ng] .11 หน้ า index *หมายเหตุ จากการทดสอบระบบ การไปปรั บแต่ งค่ าการเช็คตัวแปร global บน phpsyslogviewer คาตอบก็คือ ไม่ มีผลเสียต่ อโปรแกรมระบบของ phpsyslogviewer 100% .

PortsProgrammer [syslog-ng] . use_dns (no).conf เดิม options { sync (0). use_dns (no). keep_hostname (yes). long_hostnames (off). }.12 syslog-ng ยังไม่ หมดเรื่ องการ config ไฟล์ phpsyslogviewer เพราะตอนนีเ้ ราแค่ ใช้ งานการ login เข้ าระบบเฉยๆ แต่ การอัพเดตไฟล์ ระบบจริงๆ ที่ต้องรายงานฐานข้ อมูล syslog เป็ นระยะๆ ยังไม่ ทางาน เราจะมาปรั บแต่ งค่ าการ Force Update ของระบบดังนี ้ # nano /etc/syslog-ng/syslog-ng. log_fifo_size (1000). time_reopen (10). send_time_zone (+07:00). create_dirs (yes). use_fqdn (no). chain_hostnames (yes). chain_hostnames (yes). log_fifo_size (1000). create_dirs (yes). }. sync (0). use_fqdn (no). long_hostnames (off). time_reopen (10). แก้ เป็ น ( โดยการเพิ่มคาสั่งเข้ าไป 2 คาสั่ง ) ถ้ ามีแล้ วก็ไม่ ต้องทาอะไร ไปทาขัน้ ตอนต่ อไปเลย options { recv_time_zone (+07:00). . keep_hostname (yes).

\n") template-escape(yes)). # udp(ip(0. เพิ่มคาสั่งต่ อจากบรรทัดด้ านบนเข้ าไปดังนี ้ ( ระวังการ copy ตกบรรทัดมากๆด้ วยน่ ะค่ ะ . level. '$PRIORITY'.pipe" template("INSERT INTO logs (host. }.0. internal(). '$TAG'. '$LEVEL'. msg) VALUES ( '$HOST'. เลื่อนบรรทัดลงมาอีกใกล้ ๆกัน ให้ ทาการเพิ่มคาสั่งลงไปต่ อจากบรรทัด destination d_mlal { usertty("*"). tcp(ip(0. แก้ เป็ น ( โดยการเพิ่มคาสั่งเข้ าไป 2 คาสั่ง ) ถ้ ามีแล้ วก็ไม่ ต้องทาอะไร ไปทาขัน้ ตอนต่ อไปเลย source s_sys { file ("/proc/kmsg" log_prefix("kernel: ")). '$MSG' ).. tag. }. priority. program.0. .0. facility.0) port(514)).เดียวระบบจะไม่ ทางาน ) destination d_mysql { pipe("/var/log/mysql.0) port(514) keep-alive(yes)). udp(ip(0.0.13 เลื่อนบรรทัดลงมาใกล้ ๆกัน เดิม source s_sys { file ("/proc/kmsg" log_prefix("kernel: ")). '$FACILITY'. '$PROGRAM'. internal(). datetime. }.0. '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC'. }. unix-stream ("/dev/log").0.PortsProgrammer [syslog-ng] . unix-stream ("/dev/log").0) port(514)).

}. เพิ่มคาสั่งต่ อจากบรรทัดด้ านบนเข้ าไปดังนี ้ 2 บรรทัด (ระวังการ copy ตกบรรทัดมากๆด้ วยน่ ะค่ ะ . filter(f_messages).PortsProgrammer [syslog-ng] . filter(f_kernel). destination(d_mysql). .เดียวระบบจะไม่ ทางาน ) filter f_messages { level(info. log { source(s_sys).. filter(f_cron).. เลื่อนบรรทัดลงมาใกล้ ๆกัน ให้ ทาการเพิ่มคาสั่งลงไปต่ อจากบรรทัด log { source(s_sys).. }. destination(d_mysql). }.emerg) and not (facility(mail) or facility(authpriv) or facility(cron)). เพิ่มคาสั่งต่ อจากบรรทัดด้ านบนเข้ าไปดังนี ้ ( ระวังการ copy ตกบรรทัดมากๆด้ วยน่ ะค่ ะ . destination(d_cron). }.14 เลื่อนบรรทัดลงมาใกล้ ๆกัน ให้ ทาการเพิ่มคาสั่งลงไปต่ อจากบรรทัด filter f_cron { facility(cron). }.เดียวระบบจะไม่ ทางาน) log { source(s_sys).

sh # chmod +x syslog2mysql..pipe fi while [ -e /var/log/mysql.pipe ] then mkfifo /var/log/mysql.PortsProgrammer [syslog-ng] .sh # nano syslog2mysql.pipe ] do mysql -u root --password=rootadmin syslog < /var/log/mysql.15 ต่ อไปเป็ นขัน้ ตอนของการทางานระบบ syslog-ng ทาการ start service ดังนี ้ # service syslog-ng stop # service syslog-ng start # chkconfig syslog-ng on ทาการสร้ าง shell script process id ไฟล์ syslog-ng เพื่อให้ ระบบทางานทุกครั ้งเมื่อมีการบูตระบบ # cd /var/www/html/phpwifi/admin/phpsyslogviewer # touch syslog2mysql.เดียวระบบจะไม่ ทางาน ) #!/bin/bash if [ ! -e /var/log/mysql.pipe > /dev/null done .sh เพิ่มคาสั่งเข้ าไปดังนี ้ ( ระวังการ copy ตกบรรทัดมากๆด้ วยน่ ะค่ ะ .

sh ในขัน้ ตอนการสั่งรั นนี ้ terminal ที่ท่าน remote เข้ าใช้ งานจะค้ างที่คาสั่งรั น shell script นี ้ เพราะเป็ นไฟล์ ของการ process id บนระบบแล้ วนาข้ อมูลเข้ ามายัง MySQL ( ระบบไม่ ได้ ค้างน่ ะค่ ะขัน้ ตอนนี ้ ) .sh ทาการสั่งรั น shell script เพื่อทดสอบ syslog ของระบบ # sh /var/www/html/phpwifi/admin/phpsyslogviewer/syslog2mysql.นามาใส่ ใน /etc/rc.PortsProgrammer [syslog-ng] .16 นาไฟล์ shell script ที่ได้ สร้ างไว้ แล้ ว .local เพื่อการทางานทุกครั ้งเมื่อมีการบูตระบบ # nano /etc/rc.local เลื่อนลงไปบรรทัดท้ ายสุดของไฟล์ เลย sh /var/www/html/phpwifi/admin/phpsyslogviewer/syslog2mysql..

PortsProgrammer [syslog-ng] .17 ทดสอบจริ ง จากนีเ้ ป็ นการทดสอบ syslog file ระบบจริง ไปที่หน้ าเว็บ เข้ าในฐานะผู้ดูและระบบ ไปที่ function Admin LOG Login เข้ าใช้ งาน .

18 OHhhhhh! ท่านก็จะเห็นว่าระบบระหว่าง phpsyslogviewer กับ syslog-ng ทางานร่วมกันกับฐานข้ อมูลชื่อ syslog จะเห็นได้ ว่าตัวเลขมีการเปลีย่ นแปลง จากเดิมเป็ นศูนย์ ลองคลิกที่คาว่า Force Update ท่านก็จะเห็นการเปลีย่ นแปลงของระบบ logfile บนแถบเมนูข้างบนก็คือหมวด logfile ต่างๆของระบบ คลิกเลือกที่ Watch เป็ นการดู log แบบ runtime ตลอดเวลา .PortsProgrammer [syslog-ng] .

19  ทาการ Restart Server บนหน้ าเว็บ 1 ครั ้ง เพื่อการเริ่มต้ นระบบที่ดีใหม่อีกครั ้ง  ถ้ าต้ องการให้ เห็น syslog ระบบ แบบปกติ ก็ทาการ Open in new tab หน้ าเว็บขึ ้นมาใหม่ได้ เลย .PortsProgrammer [syslog-ng] .