centralized log server using syslog-ng & php-syslog-ng
TRANSCRIPT
การตดตง 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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
โดยไฟลทจะเขาไปท าการแกไขคอ “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 รม
นาเจา
พระยา
อกครงแลวท าการตรวจสอบการท างานของพอรตทเปดขน 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 รม
นาเจา
พระยา
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
ถา Service อยในสถานะหยดการท างาน (STOP) ใหท าการเรมการท างาน (START)
ท าการก าหนดเครองทรบลอกจากเครองวนโดว กคอ Centralized log server นนเองในทนคอ 192.168.200.2
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
เปนหนาทใชในการก าหนด Facility ในการสงลอก
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
การตดตง 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 รม
นาเจา
พระยา
3. เลอก Next เพอด าเนนการตอ กรณไมตองการตดตง ตามคาเรมตนของโปรแกรมสามารถแกไขไดโดยการเลอก วาจะน าไปตดตงทไหน อยางไร โดยการ กดปม Browse… แลวเลอกทจดเกบส าหรบตดตงโปรแกรม ตอไป
4. เลอก Next เพอด าเนนการตดตงตอไป กรณตองการแกไขชอ หรอ ทจดเกบโปรแกรม บน Start Menu สามารถเปลยนแปลงได โดยไป ก าหนด ไดท B own…
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
5. ขนตอนตอไปน เราสามารถเลอกได ทง Yes / No โดยตองเลอกอยางใดอยางหนง โดยโปรแกรมจะสอบถามวา ตองการ ใหท าการตรวจสอบคาการปรบแตงหรอไม และใหเลอก e
6. ชนตอนน เปนสวนของการตดตงคากรณเขาใชงาน Snare โดยใช รหสผานเขาใชงานมาเปนตวก าหนด ซงสามารถเลอกอยางใดอยางหนงเทานน และ ท าการกด Next เพอด าเนนการตดตงตอไป
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
2. เลอกท Network Configuration
3. เขาไปแกไข ตรงต าแหนง ดงน e n on n e e e dd e . . . syslog-ng Destination Port จาก 6161 ใชคาเดม
และท าการ Change Configuration เมอท าการ ปรบแตงเรยบรอย ใหเลอกปรบแตง ทสวน Objective Configuration
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
สามารถ 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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
ท าการทดสอบดวยการ 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 รม
นาเจา
พระยา
| 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 รม
นาเจา
พระยา
ท าการ 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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
แสดงวา 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 รม
นาเจา
พระยา
| 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 รม
นาเจา
พระยา
ท าการเปลยนสทธในการเขาใชงาน ดวยค าสง 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 รม
นาเจา
พระยา
หนาของการยอมรบเงอนไขในการใชงาน
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
สวนของการปรบแตงให 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 รม
นาเจา
พระยา
ตงชอของ php-syslog-ng ทสอดคลองกบ site ทท างาน
หนาแสดงต าแหนงของไฟล php-syslog-ng โดย URL จะเปนการแสดงต าแหนงทจะตองเรยกผาน URL Install Path จะเปนต าแหนงจรงๆทไดท าการตดตงลงบน ระบบ Site URL จะใชในการแสดงในกรณทท าท าการตดตงอยใน ไดเรคเทอรยอย ในกรณนจะเปน /syslog-ng Your E-MAIL ชออเมลของผทดแลระบบ Admin Password เปนรหสผานของ บญชผใชงาน Admin ซงจะใชในการ login ในครงแรก
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
หนาแสดงเตอนใหใชงาน User/password ดานลางนในการเขาใชงานระบบในสทธ Admin
ท าการ login เขาใชงานดวยบญชผใชงาน admin / password
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
หนาแรก การเขาใชงาน
เมอเลอก “ E R H” กจะปรากฏขอมลของตว Server ไหลเขามาอยตลอดเวลา
กรรม
กรไอ
ท
บานส
งชน
13 รม
นาเจา
พระยา
จดประสงคในการท า 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 รม
นาเจา
พระยา
# 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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
...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 รม
นาเจา
พระยา
ส าหรบกรณ 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 รม
นาเจา
พระยา
ทางฝง 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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา
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 รม
นาเจา
พระยา