centralized log server using syslog-ng & php-syslog-ng

39
การติดตั ้ง Centralized Log Server โดย พี่น้องกรรมกรไอที บ้านสูงชั้น ความต้องการเพ็คเก็จที่ใช้ในการทางาน 1. Apache web Server 2. Mysql Databases 3. Syslog-ng 4. php-syslog-ng กรณีดังต่อไปนี ้ได้สมมุติว่าได้ติดตั ้ง Apache Web Server และ Mysql Database ไปเรียบร้อยแล้ว 1.ทาการติดตั ้ง Syslog-ng ด้วยสาสั่งดังต่อไปนี sudo apt-get install syslog-ng จะปรากฏข้อความคล้ายๆดังต่อไปนี Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: klogd sysklogd ubuntu-minimal The following NEW packages will be installed: syslog-ng 0 upgraded, 1 newly installed, 3 to remove and 4 not upgraded. Need to get 209kB of archives. After this operation, 188kB of additional disk space will be used. Do you want to continue [Y/n]? Y //เลือก Y เพื่อทาการยืนยันถึงการติดตั ้ง Get:1 http://th.archive.ubuntu.com hardy/universe syslog-ng 2.0.9-1ubuntu1 [209kB] Fetched 209kB in 0s (1724kB/s) (Reading database ... 124401 files and directories currently installed.) กรรมกรไอที บ้ านสู งชั น 13 ริ มน้ าเจ้ าพระยา

Upload: worawut-saibua

Post on 02-Jul-2015

1.149 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

การตดตง Centralized Log Server โดย พนองกรรมกรไอท บานสงชน ความตองการเพคเกจทใชในการท างาน

1. Apache web Server 2. Mysql Databases 3. Syslog-ng 4. php-syslog-ng

กรณดงตอไปนไดสมมตวาไดตดตง Apache Web Server และ Mysql Database ไปเรยบรอยแลว 1.ท าการตดตง Syslog-ng ดวยส าสงดงตอไปน sudo apt-get install syslog-ng จะปรากฏขอความคลายๆดงตอไปน Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: klogd sysklogd ubuntu-minimal The following NEW packages will be installed: syslog-ng 0 upgraded, 1 newly installed, 3 to remove and 4 not upgraded. Need to get 209kB of archives. After this operation, 188kB of additional disk space will be used. Do you want to continue [Y/n]? Y //เลอก Y เพอท าการยนยนถงการตดตง Get:1 http://th.archive.ubuntu.com hardy/universe syslog-ng 2.0.9-1ubuntu1 [209kB] Fetched 209kB in 0s (1724kB/s) (Reading database ... 124401 files and directories currently installed.)

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 2: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

Removing ubuntu-minimal ... Removing klogd ... * Stopping kernel log daemon... ...done. Removing sysklogd ... * Stopping system log daemon... ...done. Selecting previously deselected package syslog-ng. (Reading database ... 124377 files and directories currently installed.) Unpacking syslog-ng (from .../syslog-ng_2.0.9-1ubuntu1_i386.deb) ... Setting up syslog-ng (2.0.9-1ubuntu1) ... * Starting system logging syslog-ng ...done. 2 ท าการทดสอบการท างานของ Syslog-ng โดยค าสงดงตอไปน sudo /etc/init.d/syslog-ng restart และตามดวย sudo logger -i -t logtest -- "logtest" ท าการตรวจสอบการเขยน log ของ Syslog-ng ดวยค าสงดงตอไปน sudo tail /var/log/syslog ผลทไดจะปรากฏคลายๆ ดงตอไปน Nov 15 01:13:42 mail syslog-ng[9278]: Termination requested via signal, terminating; Nov 15 01:13:42 mail syslog-ng[9278]: syslog-ng shutting down; version='2.0.9' Nov 15 01:13:42 mail syslog-ng[9299]: syslog-ng starting up; version='2.0.9' Nov 15 01:13:45 mail logtest[9302]: logtest ถาผลทไดออกประมาณนแสดงวา Syslog-ng สามารถท างานไดแลว 3. ขนตอนในการปรบแตงเพอให syslog-ng รองรบ log จากเครองอน โดยทวไปนน เครองทจะท างานเปน Centralize log Server นนจะใชงานพอรตมาตรฐานคอ udp 514(ส าหรบ syslogd) แตส าหรบ Syslog-ng สามารถท างานไดทง udp/tcp 514 และยงสามารถปรบแตงใหท างานทพอรตอนไดอก โดยปกต syslog-ng จะไมรองรบการท างานเปนCentralize log Server จะตองมการปรบแตงเพมเตม ดงน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 3: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

โดยไฟลทจะเขาไปท าการแกไขคอ “syslog-ng.conf” ซงโดยทวไปจะอยท “/etc/syslog-ng/syslog-ng.conf” ในทนจะท าการเปดพอรตในการท างานทง tcp/udp 514 source s_all {

# message generated by Syslog-NG internal(); # standard Linux log source (this is the default place for the syslog() # function to send logs to) unix-stream("/dev/log"); # messages from the kernel file("/proc/kmsg" log_prefix("kernel: ")); # use the following line if you want to receive remote UDP logging messages # (this is equivalent to the "-r" syslogd flag) # udp();

}; # ทท าการเพมขนมา source tcp_message_open { tcp(ip("0.0.0.0") port(514)); }; # ทท าการเพมขนมา source udp_message_open{ udp(ip("0.0.0.0") port(514)); }; เพมเตม กรณ ใช n e og f e po log จาก n e อธบาย เปนการสราง source ส าหรบใชในการรบขอมล ทชอ “ cp_me ge_open”, ”udp_me ge_open” โดยชอเหลานสามารถแกไขไดตามความเหมาะสม โดยทไดท าการเปด พอรตทง TCP/UDP เนองจาก ตองการใหสามารถรองรบการท างานกบ syslogd(ซงจะใชงาน UDP 514) ซงเปนเครองมอแบบเกาทถก build in ลงใน Linux/Unix ทก distribute ส าหรบ syslog-ng สามารถรองรบการท างานไดทง TCP/UDP หลงจากทไดมการเพมเขาไปแลวใหท าการ restart syslog-ng sudo /etc/init.d/syslog-ng restart

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 4: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

อกครงแลวท าการตรวจสอบการท างานของพอรตทเปดขน comsec@mail:~$ netstat -an |grep 514 tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN //พอรตทเปดขนมา udp 0 0 0.0.0.0:514 0.0.0.0:* //พอรตทเปดขนมา udp 0 0 192.168.200.2:45918 192.168.200.1:514 ESTABLISHED //มการเชอมตอ ถาปรากฏผลออกมา ประมาณนแสดงวา syslog-ng รองรบการท างานเปน Centralize log server แลว ในการทดสอบจะท าการทดสอบ จากระบบ Window โดย window จะท าการสง log มายง ubuntu server โดย Window (192.168.200.1), Ubuntu Centralize log Server (192.168.200.2) โดย ระบบปฏบตการ วนโดว จะตองท าการตดตงโปรแกรมทชอ NTSyslog โดยมวธการตดตงดงตอไปน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 5: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 6: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 7: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ถา Service อยในสถานะหยดการท างาน (STOP) ใหท าการเรมการท างาน (START)

ท าการก าหนดเครองทรบลอกจากเครองวนโดว กคอ Centralized log server นนเองในทนคอ 192.168.200.2

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 8: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

เปนหนาทใชในการก าหนด Facility ในการสงลอก

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 9: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

การตดตง Snare (ปรบปรง เมอ 5 สงหาคม 2553) ในการสง log file ไปยงเครอง syslog-ng นน เราสามารถใชงานไดอกโปรแกรม คอ Snare โดยมาขนตอนการตดตงและปรบแตง (ในการตดตงและปรบแตงน ไดท าโดยใช Windows 7 เปนตวลกขายทจะสง logไปใหเครองแมขาย) ดงน เขาไปท เวบ n e http://www.intersectalliance.com/ ซงจะมใหเลอก โดยไปท download ไฟล โดยมใหเลอก ส าหรบตระกลของระบบปฏบตการ ซงสามารสนบสนนไดหลากหลายระบบปฏบตการ ในทน ทางผท าการทดสอบไดท าการตดตงคอ SnareSetupVista-1.1.5-MultiArch วธการตดตงมดงน

1. ใหท าการเรยกตว โปรแกรมขนมาเพอท าการตดตง โดยจะแสดงหนาจอดงน

2. เลอก Next เพอท าการตดตง

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 10: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

3. เลอก Next เพอด าเนนการตอ กรณไมตองการตดตง ตามคาเรมตนของโปรแกรมสามารถแกไขไดโดยการเลอก วาจะน าไปตดตงทไหน อยางไร โดยการ กดปม Browse… แลวเลอกทจดเกบส าหรบตดตงโปรแกรม ตอไป

4. เลอก Next เพอด าเนนการตดตงตอไป กรณตองการแกไขชอ หรอ ทจดเกบโปรแกรม บน Start Menu สามารถเปลยนแปลงได โดยไป ก าหนด ไดท B own…

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 11: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

5. ขนตอนตอไปน เราสามารถเลอกได ทง Yes / No โดยตองเลอกอยางใดอยางหนง โดยโปรแกรมจะสอบถามวา ตองการ ใหท าการตรวจสอบคาการปรบแตงหรอไม และใหเลอก e

6. ชนตอนน เปนสวนของการตดตงคากรณเขาใชงาน Snare โดยใช รหสผานเขาใชงานมาเปนตวก าหนด ซงสามารถเลอกอยางใดอยางหนงเทานน และ ท าการกด Next เพอด าเนนการตดตงตอไป

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 12: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

7. กด Install เพอด าเนนการตดตง

8. กด Next เพอ

9. กด Finish จบการตดตง snare วธการปรบแตงเพอให snare สงขอมลไป ยง syslog-ng (กรณของ windows )

1. Start All Programs InterSect Alliance Snare For Windows หรอ เปด web brownser ขนมา แลวใส ขอความ ดงน URL : localhost:6161

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 13: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

2. เลอกท Network Configuration

3. เขาไปแกไข ตรงต าแหนง ดงน e n on n e e e dd e . . . syslog-ng Destination Port จาก 6161 ใชคาเดม

และท าการ Change Configuration เมอท าการ ปรบแตงเรยบรอย ใหเลอกปรบแตง ทสวน Objective Configuration

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 14: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

4. การปรบแตงในสวนของ ec e onf gu on

syslog-ng นนมอะไร ไดบาง ซงสามารถเพมเขาไปได โดย กดทปม dd

5. เมอท าการปรบแตงเสรจแลว ใหท าการ บนทกคาโดยการ กด Change Configuration 6. แลวท าการทดสอบดวยการเขาไปด ท syslog-ng

จากขนตอนขางตน วนโดวจะท าการสงลอคตางๆไปยงเครอง log server ในขนตอนตอมาจะท าการปรบแตง syslog-ng เพอรองรบเฉพาะ เครองวนโดวทมไอพเปน 192.168.200.1 แลวจะท าการสรางลอกไฟลส าหรบเครองวนโดวนโดยเฉพาะ โดยท าการเพม รายละเอยดดงตอไปนในแฟม “syslog-ng.conf” destination d_192.168.200.1{ file("/var/log/server/event_192.168.200.1.log"); };

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 15: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

filter f_192.168.200.1{ host("192.168.200.1"); }; log { source(udp_message_open); filter(f_192.168.200.1); destination(d_192.168.200.1); }; อธบาย ในการประกาศท destination <Variable name> จะเปนการประกาศวาตวแปรทชอ “d_192.168.200.1” ตองการใหไปเกบหรอสงลอคไปทใด ในทนก าหนดเปน ไฟลในต าแหนง “/var/log/server/event_192.168.200.1.log” ถาไมมมนจะสรางขนมาใหเอง ในการประกาศท filter <variable name > จะเปนการประกาศวาตวแปรทชอ “f_192.168.200.1” ตองการฟวเตอรเฉพาะโฮสทมไอพเปน “192.168.200.1” เปนการก าหนดวาเฉพาะลอคทเปนหรอทมาจากเครองทก าหนดเทานนถงจะมการเขยนลงสลอค ในการประกาศ log จะเปนการน าเอาขอก าหนดทเปนทง destination,filter,source เพอน ามาสรางลอคไฟลตามทก าหนด มขอสงเกตวาถาไมมการใชงานตวแปรนกฎทงหมดจะไมถกน าไปใชงาน ใหท าการ restart syslog-ng อกครง แลวใหท าการตรวจสอบต าแหนงของการเกบลอคไฟลท “/var/log/server/” โดยในตอนแรกทยงไมมลอคเขามาจะไมปรากฏไฟล “event_192.168.200.1.log” นเลย เมอใดกตามทมลอคเขามาไฟลนกจะปรากฏขนมาซงสามารถตรวจสอบการท างานโดยใชค าสง “tail –f /var/log/server/event_192.168.200.1.log” สมมตวาเครองวนโดวไดตดตง mysql Server ใหท าการ stop แลวท าการ start ขนมาอกครง จะมลอดมาปรากฏขนคลายๆ ดงน Jun 4 27:22: 10 192.168.200.1 NT: <MySQL;W100;> Server variable data_file_path of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag For more information, see Help and Support Center at http://www.mysql.com.

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 16: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

Jun 4 22:27:10 192.168.200.1 NT: <MySQL;W100;> Server variable data_home_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:10 192.168.200.1 NT: <MySQL;W100;> Server variable flush_method of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:10 192.168.200.1 NT: <MySQL;W100;> Server variable log_arch_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:10 192.168.200.1 NT: <MySQL;W100;> Server variable log_group_home_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:12 192.168.200.1 NT: <MySQL;I100;> C:\MySQL\MySQL Server 5.1\bin\mysqld-nt: ready for connections. Version: '5.1.19-beta-community-nt-debug' socket: '' port: 3306 MySQL Community Server (GPL) For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:24 192.168.200.1 NT: <MySQL;I100;> C:\MySQL\MySQL Server 5.1\bin\mysqld-nt: Normal shutdown For more information, see Help and Support Center at http://www.mysql.com. Jun 4 22:27:27 192.168.200.1 NT: <MySQL;I100;> C:\MySQL\MySQL Server 5.1\bin\mysqld-nt: Shutdown complete For more information, see Help and Support Center at http://www.mysql.com. เปนอนกระบวนการรบลอคจากวนโดวประสบความส าเรจ โดยขอมลทงหมดจะถกเกบลงสไฟลทเราก าหนด วธการในการเกบลอกไฟลตางๆ เราควรท าการแยกเกบในแตละอปกรณแยกเปนไฟลทแตกตางกน เชน ไฟล A เกบลอกทมาจากเซอรเวอร A ซงจะท าใหงายตอการตรวจสอบตามอปกรณ ส าหรบในกรณทเราตองการใหใหเกบลงฐานขอมลดวยแลวสามารถแสดงผลเปนเวบเพอตดตามลอก ตาง ๆ ผานทางเวบบราวเซอรได ในทนเราจะใชความสามารถของ php-syslog-ng ซงเปน open source ทพฒนาดวยภาษา PHP

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 17: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

สามารถ download ไดจาก http://code.google.com/p/php-syslog-ng/ ท าการแตกไฟลดวยค าสง comsec@mail:~$ file php-syslog-ng-2.9.8.tgz php-syslog-ng-2.9.8.tgz: gzip compressed data, from Unix, last modified: Sun May 11 02:43:05 2008 comsec@mail:~$ sudo gunzip php-syslog-ng-2.9.8.tgz comsec@mail:~$ tar xvf php-syslog-ng-2.9.8.tar php-syslog-ng/html/ …. … php-syslog-ng/html/install/php-syslog-ng/upgrades/2.9.6_to_2.9.7.patch php-syslog-ng/upgrades/2.9.7_to_2.9.8.patch ไฟล config ทจ าเปนตอการปรบแตง syslog-ng กจะมอยแลวในไดเรคทรอรน โดยโครงสรางของไฟล php-syslog-ng จะประกอบดวยดงตอไปน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 18: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

Php-syslog-ng |--upgrades ใชในการ upgrade จาก version ทต ากวา |--html ใชเปน code ในการแสดงทหนาบราวเซอรรวมทง โครงสรางฐานขอมลทใชในการเกบ logs |--scripts ใชเปนทเกบ script ตางรวมทงไฟล config syslog-ng ดวย ในขนตอนแรกจะตองท าการ Config database ใหพรอมรบขอมลมาเกบไวในฐานขอมลดวยวธการดงน comsec@mail:~$ cd php-syslog-ng/html/install/sql/ comsec@mail:~/php-syslog-ng/html/install/sql$ ls cemdb.sql.gz dbsetup.sql เปนโครงสราง Database ทใชในการเกบขอมล drop_table.sql sample_data.sql เปนตวอยางขอมลทจะเกบลงใน Database ท าการสราง Database ทชอ syslogdb comsec@mail:~/php-syslog-ng/html/install/sql$ mysqladmin -u root -p create syslogdb Enter password: ท าการกรอกรหสผานของ root ท าการ Import script เขาส Database ทชอ syslogdb comsec@mail:~/php-syslog-ng/html/install/sql$ mysql -u root -p syslogdb < dbsetup.sql Enter password: ท าการกรอกรหสผานของ root ท าการ Import script ตวอยางขอมลบางสวนเขาส Database ทชอ syslogdb comsec@mail:~/php-syslog-ng/html/install/sql$ mysql -u root -p syslogdb < sample_data.sql Enter password: ท าการกรอกรหสผานของ root

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 19: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ท าการทดสอบดวยการ Login เขาส mysql ดวยค าสง comsec@mail:~/php-syslog-ng/html/install/sql$ mysql -u root -p Enter password: ท าการกรอกรหสผานของ root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 177648 Server version: 5.0.51a-3ubuntu5.1 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | mysql | | syslogdb | +--------------------+ 4 rows in set (0.11 sec) mysql> use syslogdb Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +--------------------+ | Tables_in_syslogdb | +--------------------+ | actions |

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 20: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

| cemdb | | logs | | search_cache | | user_access | | users | +--------------------+ 6 rows in set (0.00 sec) mysql> select count(*) from logs; +----------+ | count(*) | +----------+ | 3 | +----------+ 1 row in set (0.00 sec) ท าการก าหนด ผมสทธ เขาใชงาน Database ทชอ syslogdb User:: syslogadmin Pass:: syslogadminpassword mysql> grant all on syslogdb.* to “syslogadmin”@”localhost” identified by "syslogadminpassword"; Query OK, 0 rows affected (0.16 sec) mysql> flush privileges; ท าการ Refresh การเปลยนแปลงทเกดขน Query OK, 0 rows affected (0.04 sec) มาถงขนตอนน Mysql กพรอมแลวส าหรบรองรบการเกบ log แลว ขนตอนถดมากคอ ท าการปรบแตง syslog-ng ใหเขยน log ลงส Database ซงจะม script config ของ syslog-ng รองรบไวอยแลวเราสามารน าใชงานไดทนท แตเนองจากเราไดท าการ config ไปบางสวนแลว เราจะเอาเฉพาะบางสวนทจะถกน ามาใชงานในทนเทานน comsec@mail:~$ cd php-syslog-ng/scripts/ comsec@mail:~/php-syslog-ng/scripts$ nano syslog-ng.conf

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 21: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ท าการ copy เฉพาะสวนดงน source s_everything { internal(); pipe("/proc/kmsg"); unix-stream("/dev/log"); udp(); }; destination d_mysql { program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog" template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes)); }; log { source(s_everything); destination(d_mysql); }; แลวน าไปวางใน ไฟล syslog-ng.conf ดงน source udp_message_open{ udp(ip("0.0.0.0") port(514)); }; source s_everything { internal(); pipe("/proc/kmsg"); unix-stream("/dev/log"); udp(); }; destination d_mysql { program("/usr/bin/mysql -usyslogadmin -psyslogadminpassword syslogdb" template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes)); };

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 22: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

log { source(s_everything); destination(d_mysql); }; ###### # destinations # some standard log files ในสวนท highlight นนใหท าการแกเปน user,password,database ตามล าดบ คอ usersyslogadmin passwordsyslogadminpassword database name syslogdb การบนทก แลวท าการทดสอบการท างานของ syslog-ng ดวยการสงให syslog-ng ท าการ Restart การท างานอกครง comsec@mail:~/php-syslog-ng/scripts$ sudo /etc/init.d/syslog-ng restart * Stopping system logging syslog-ng ...done. * Starting system logging syslog-ng ...done. ท าการตรวจสอบ พอรตในการท างานดวยค าสง comsec@mail:~/php-syslog-ng/scripts$ sudo netstat -an |grep 514 tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:514 0.0.0.0:*

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 23: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

แสดงวา syslog-ng พรอมรองรบการท างานแลว ถาเกดความผดพลาดขนใหท าการ ตรวจสอบ ไฟล syslog-ng.conf อกครงหนง ท าการตรวจสอบโดยการ login เขาใชงาน MySQL อกครง ดงน comsec@mail:~/php-syslog-ng/scripts$ mysql -u root -p Enter password: ท าการกรอกรหสผานของ root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 310904 Server version: 5.0.51a-3ubuntu5.1 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use syslogdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select count(*) from logs; +----------+ | count(*) | +----------+ | 18 | +----------+ 1 row in set (0.00 sec) จากขนตอนนทงเวลาไวสกพกหนงแลว query อกครง จะปรากฏจ านวน Log ทเพมขนมา mysql> select count(*) from logs; +----------+ | count(*) | +----------+

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 24: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

| 28 | +----------+ 1 row in set (0.00 sec) mysql> ณ ตอนน เรากสามารถน า log มาเกบลงส Databases ไดแลว ขนตอนตอไปจะเปนการ config เพอ สรางหนา web interface เพอท าการตรวจสอบ log ผาน หนา browser ได ท าการแกไขไฟล config ของ apache โดยต าแหนงของ Directory ทจะท าการตดตง ดงน /home/comsec/php-syslog-ng/html/ comsec@mail:~/php-syslog-ng/html$ sudo nano /etc/apache2/sites-available/default ท าการเพม คาเหลานไปททายไฟล Alias /syslog-ng/ "/home/comsec/php-syslog-ng/html/" <Directory "/home/comsec/php-syslog-ng/html"> AllowOverride None Options None Order allow,deny Allow from all </Directory> ท าการ restart apache ดวยค าสง comsec@mail:~/php-syslog-ng/html$ sudo /etc/init.d/apache2 restart * Restarting web server apache2 ...done.

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 25: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ท าการเปลยนสทธในการเขาใชงาน ดวยค าสง comsec@mail:~/php-syslog-ng/html/install$ sudo chown www-data:www-data -R /home/comsec/php-syslog-ng/html ท าการ เขาใชงานทางหนา browser ตามทไดก าหนดไว <ip>/syslog-ng/install/index.php ซงในทนกคอ http://192.168.111.130/syslog-ng/install/index.php เปนของการตรวจสอบสงแวดลอมทจ าเปนตอการท างานของ php-syslog-ng สภาวะทเหมาะสมตอการท างานกคอ ตองเปนสเขยวทงหมด เราสามารถปรบแตงไดเพอเหมาะสมตอการท างาน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 26: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

หนาของการยอมรบเงอนไขในการใชงาน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 27: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

สวนของการปรบแตงให php-syslog-ng สามารถเชอมตอกบ MYSQL ไดจะตองใชงานตวแปรทจ าเปนคอ ไอพของเครองทตดตง MySQL โดย default จะเปน localhost MySQL username/MySQL password จะเปนรหสของ user บน Mysql ทมสทธในการสราง Databases,tables โดยทวไปจะก าหนดเปน user ทเปน root MySQL Database Name จะเปนชอของ database ทจะใชในการเกบขอมล ในทนเราใชเปน syslogdb MySQL Port เปน พอรตท mysql ใชในการสรางการเชอมตอโดยทวไปจะเปน 3306 Syslog User name/password เปน user ทใชในการเขาใชงาน ฐานขอมลแบบอานขอมลไดอยางเดยว Syslog Admin name/password เปน user ทใชในการเขาใชงาน ฐานขอมลแบบสามารถเขยนได Install the sample unless Drop existing Table ท าการลบตารางกอนทจะมการตดตงฐานขอมล syslog Back Old Table จะท าการBackup ตารางเกากอนทจะมการตดตงฐานขอมล syslog Install Sample Data หลงจากตดตงฐานขอมลและตารางของ syslog แลวจะมการลงตวอยางขอมลในตาราง

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 28: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ตงชอของ php-syslog-ng ทสอดคลองกบ site ทท างาน

หนาแสดงต าแหนงของไฟล php-syslog-ng โดย URL จะเปนการแสดงต าแหนงทจะตองเรยกผาน URL Install Path จะเปนต าแหนงจรงๆทไดท าการตดตงลงบน ระบบ Site URL จะใชในการแสดงในกรณทท าท าการตดตงอยใน ไดเรคเทอรยอย ในกรณนจะเปน /syslog-ng Your E-MAIL ชออเมลของผทดแลระบบ Admin Password เปนรหสผานของ บญชผใชงาน Admin ซงจะใชในการ login ในครงแรก

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 29: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

หนาแสดงเตอนใหใชงาน User/password ดานลางนในการเขาใชงานระบบในสทธ Admin

ท าการ login เขาใชงานดวยบญชผใชงาน admin / password

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 30: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

หนาแรก การเขาใชงาน

เมอเลอก “ E R H” กจะปรากฏขอมลของตว Server ไหลเขามาอยตลอดเวลา

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 31: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

จดประสงคในการท า Syslog-ng เกบขอมล Database นนเพอใหสามารถท ารายงานและคนหาขอมลยอนหลงไดเปนเวลาเทาทเราตองการโดยม php-syslog-ng เปน front-end เพอท าการตรวจสอบผานเวบได ถามความสามารถสงหนอยกสามารถพฒนาโปรแกรมทสามารถท างานไดมากกวานโดยใชงาน Database ทมอยได โมเดลในการใชงาน Sylog-ng ท างานเปน Centralized Log Serverc แบงตาม Service คอ

Syslogd(โดย default มอยบนทก Unix/Linux/Network-Device)-------------Syslog-ng Window---------------------------------------------------------Syslog-ng

โดยในกรณ WindowSyslog-ngไดท าการ แสดงใหดเปนตวอยางไปแลว โดยกรณทจะท าการทดสอบตอไปคอจาก Syslogd,Network-Device ไปยง Syslog-ng ส าหรบกรณ Syslogd(192.168.200.4)Syslog-ng(192.168.200.2) Syslogd จะท างานบน CentOS

โดยการท างานจะตองมการ Config Service Syslogd ของ CentOS ใหรองรบการสง log ไปยง Syslog-ng Server โดยต าแหนงของไฟล config ไดแสดงดงรปดานบนแลว ทางดาน Syslogd จะมการ config ดงน [root@localhost ~]# nano /etc/syslog.conf # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher.

UDP:514

/etc/syslog.conf

Syslogd

CentOS

Syslog-ng

Ubuntu Server

/etc/syslog-ng/syslog-ng.conf

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 32: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

# Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log # Send all log to Centralize log Server *.* @192.168.200.2 // จะท าการสงทกๆ facility ไปยง log server โดยรปแบบของการสง log นน จะใชเครองหมาย “@” ตามดวยไอพ หรอ ชอของเครอง เชน *.* @192.168.200.2 *.* @centrallog.itlabours.com ท าการ Restart Syslogd ดวยค าสง [root@localhost ~]# /etc/init.d/syslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ]

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 33: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

Starting system logger: [ OK ] Starting kernel logger: [ OK ] เปนอนวาการ config ทาง ฝง Syslogd เสรจแลว เนองจากจดประสงคในการรบ log ของเรานนจะรบเฉพาะเครองทเราก าหนดไวเทานนเปนการปองกนการ สง log มาจากเครองทไมไดรบอนญาต จงตองมขนตอนทซบซอนมากขน และตองการเกบ log ออกเปน สองสวนคอ text file และ เกบลง Databases ดวย ทางฝง Syslog-ng จะมการปรบแตงเพมเตมดงน โดยการ config จะอางองการ Config มาตงแตแรก ถาสงสยใหท าการอานเนอหาขางตนอกครง ท าการเพม คาเหลานลงใน file config ของ syslog-ng comsec@mail:~$ sudo nana /etc/syslog-ng/syslog-ng.conf destination d_192.168.200.4{ file("/var/log/server/event_192.168.200.4.log"); }; filter f_192.168.200.4{ host("192.168.200.4"); }; log{ source(udp_message_open); filter(f_192.168.200.4); destination(d_192.168.200.4); destination(d_mysql); }; ท าการ Restart Syslog-ng ดวยค าสง comsec@mail:~$ sudo /etc/init.d/syslog-ng restart * Stopping system logging syslog-ng

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 34: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

...done. * Starting system logging syslog-ng ...done. เปนอนวาทางฝง syslog-ng สามารถรองรบการสง log มาทเครอง Central log Server แลว เราสามารถทดสอบไดโดยเขาไปทเครอง syslogd แลวใชค าสงดงน [root@localhost ~]# logger test from 192.168.200.4 แลวท าการตรวจสอบท หนาเวบของ php-syslog-ng จะไดหนาดงน

เปนอนวาเสรจสมบรณ

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 35: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ส าหรบกรณ Syslog-ng(192.168.200.3)Syslog-ng(192.168.200.2)

โดยการท างานจะตองมการ Config Service Syslog-ng ของ Ubuntu ใหรองรบการสง log ไปยง Syslog-ng Server โดยต าแหนงของไฟล config ไดแสดงดงรปดานบนแลว ทางดาน Syslog-ng จะมการเพม config ดงน mongkon@snmpagent:~$ sudo vim /etc/syslog-ng/syslog-ng.conf destination udp_log_server{ //จะสง Log ไปทไหน udp("192.168.200.2"); }; log { source(s_all); destination(udp_log_server); //ท าการสง log ไปยง destination }; จะเปนการท าให log ทงหมดถสงไปยง Log Server ตามไอพทเราก าหนด หลงจากนนใหท าการ Restart Syslog-ng ดวยค าสง mongkon@snmpagent:~$ sudo /etc/init.d/syslog-ng restart Stopping system logging: syslog-ng. Starting system logging: syslog-ng. เนองจากจดประสงคในการรบ log ของเรานนจะรบเฉพาะเครองทเราก าหนดไวเทานนเปนการปองกนการ สง log มาจากเครองทไมไดรบอนญาต จงตองมขนตอนทซบซอนมากขน และตองการเกบ log ออกเปน สองสวนคอ text file และ เกบลง Databases ดวย

UDP:514

/etc/syslog-ng/syslog-ng.conf

Syslog-ng

Ubuntu

Syslog-ng

Ubuntu Server

/etc/syslog-ng/syslog-ng.conf

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 36: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

ทางฝง Syslog-ng จะมการปรบแตงเพมเตมดงน โดยการ config จะอางองการ Config มาตงแตแรก ถาสงสยใหท าการอานเนอหาขางตนอกครง ท าการเพม คาเหลานลงใน file config ของ syslog-ng filter f_192.168.200.3{ host("192.168.200.3"); }; destination d_192.168.200.3{ file("/var/log/server/event_192.168.200.3.log"); }; log { source(udp_message_open); filter(f_192.168.200.3); destination(d_192.168.200.3); destination(d_mysql); }; ท าการ Restart Syslog-ng ดวยค าสง comsec@mail:~$ sudo /etc/init.d/syslog-ng restart * Stopping system logging syslog-ng ...done. * Starting system logging syslog-ng ...done. เปนอนวาทางฝง syslog-ng สามารถรองรบการสง log มาทเครอง Central log Server แลว เราสามารถทดสอบไดโดยเขาไปทเครอง syslogd แลวใชค าสงดงน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 37: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

mongkon@snmpagent:~$ logger test from 192.168.200.3 แลวท าการตรวจสอบท หนาเวบของ php-syslog-ng จะไดหนาดงน

หรอสามารถตรวจสอบจาก command บนเครอง Centralize log server sudo tcpdump udp -nn -i eth0 and dst 192.168.200.2 ตวอยางกรณทตองการรบ log จาก ตวอปกรณ Network Router ซงถงเปน Syslogd ตวหนง

เราจะท าการ config ให router ท าการสง log มายง log Server ดวยค าสงดงตอไปน

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 38: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

R5#config terminal Enter configuration commands, one per line. End with CNTL/Z. R5(config)#logging 192.168.200.2 R5(config)#end เนองจากจดประสงคในการรบ log ของเรานนจะรบเฉพาะเครองทเราก าหนดไวเทานนเปนการปองกนการ สง log มาจากเครองทไมไดรบอนญาต จงตองมขนตอนทซบซอนมากขน และตองการเกบ log ออกเปน สองสวนคอ text file และ เกบลง Databases ดวย ทางฝง Syslog-ng จะมการปรบแตงเพมเตมดงน โดยการ config จะอางองการ Config มาตงแตแรก ถาสงสยใหท าการอานเนอหาขางตนอกครง ท าการเพม คาเหลานลงใน file config ของ syslog-ng destination d_R5-192.168.200.254{ file("/var/log/server/event_R5-192.168.200.254.log"); }; filter f_R5-192.168.200.254{ host("192.168.200.254"); }; log{ source(udp_message_open); filter(f_R5-192.168.200.254); destination(d_R5-192.168.200.254); destination(d_mysql); }; ท าการ Restart Syslog-ng ดวยค าสง

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา

Page 39: Centralized Log Server Using Syslog-NG & Php-Syslog-NG

comsec@mail:~$ sudo /etc/init.d/syslog-ng restart * Stopping system logging syslog-ng ...done. * Starting system logging syslog-ng ...done. เปนอนวาทางฝง syslog-ng สามารถรองรบการสง log มาทเครอง Central log Server แลว แลวท าการตรวจสอบท หนาเวบของ php-syslog-ng จะไดหนาดงน

เปนอนวาจบกระบวนการ ปรบแตง Syslog-ng + mysql5 + php5 + php-syslog-ng เพอท างานรองรบเปนการท างานเปน Centralized Log Server

กรรม

กรไอ

บานส

งชน

13 รม

นาเจา

พระยา