These are the steps I took to create a centralised location of system logs. In this scenario multiple servers (earth, venus, mars) send their system logs to a central server (sun 192.168.1.1). I’m not going to cover the configuration of Apache, MySql except were it applies to Log Analyzer. Most of the servers are running Red Hat / CentOS 5. In this setup I am using 192.168.0.0 as the subnet and topsecret as the password. Change as appropriate. More info here.
Central Server (sun):
On the central server (sun) which will be running Log Analyzer, these steps only need to be taken once. If you only want to add more servers sending their syslogs to sun skip this section:
yum install httpd php mysql php-mysql mysql-server wget rsyslog rsyslog-mysql
Create the rsyslog database structure in MySQL:
mysql -u root -p < /usr/share/doc/rsyslog-mysql-3.22.1/createDB.sql
Create the MySQL user:
mysql -u root -p mysql
mysql> GRANT ALL ON Syslog.* TO rsyslog@localhost IDENTIFIED BY ‘topsecret’;
mysql> flush privileges;
mysql> exit
Edit the rsyslog config file:
vi /etc/rsyslog.conf
Add the following at the top:
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/16
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/16
#UDP log
$ModLoad imudp
$UDPServerRun 514
#TCP log
$ModLoad imtcp
$InputTCPServerRun 514$ModLoad ommysql
*.info mmysql:127.0.0.1,Syslog,rsyslog,topsecret
Amend the rsyslog startup options:
vi /etc/sysconfig/rsyslog
<IFRAME style="POSITION: absolute; TOP: 0px; LEFT: 0px" id=aswift_0 height=60 marginHeight=0 frameBorder=0 width=468 allowTransparency name=aswift_0 marginWidth=0 scrolling=no></IFRAME>
Set the options as follows:
SYSLOGD_OPTIonS=”-r -t154 -m 0″
Now disable the standard syslog and enable rsyslog:
chkconfig syslog off
service syslog stop
chkconfig rsyslog on
service rsyslog start
Install Log Analyzer:
cd /tmp
wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.7.tar.gz
tar xzf loganalyzer-3.0.7.tar.gz
mv loganalyzer-3.0.7/src /var/www/html/loganalyzer
mv loganalyzer-3.0.7/contrib/* /var/www/html/loganalyzer
cd /var/www/html/loganalyzer
chmod u+x configure.sh secure.sh
./configure.sh
Now browse the website e.g. http://sun/loganalyzer
Follow the installer adding your MySQL credentials when requested.
Amend the firewall on the central (sun) server to allow other servers:
vi /etc/sysconfig/iptables
Add:
-A RH-Firewall-1-INPUT -p udp -m udp –dport 514 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 514 -j ACCEPT
Restart iptables:
service iptables restart
Remote Servers
Configure Other Servers (mars, venus, earth) to send their syslogs to the central server (sun):
Install rsyslog:
yum install rsyslog
Edit the config:
vi /etc/rsyslog.conf
Add:
*.info @192.168.1.1:514
I add this on line number 2 below $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
Set rsyslog as the default syslogger:
/sbin/chkconfig syslog off
/sbin/chkconfig rsyslog on
service syslog stop
service rsyslog start
Using *.info could collect a lot of messages so customise as necessary, for example changing to *.crit will collect less messages of higher importance.
'리눅스 문서' 카테고리의 다른 글
레이어 팝업 - 닫기&오늘 하루 열지 않기 (0) | 2014.11.25 |
---|---|
backuppc 소스설치 하기 (0) | 2014.11.25 |
memcached Cacti Template (0) | 2014.11.25 |
ORA-00020: maximum number of processes (%s) exceeded (0) | 2014.11.25 |
리눅스에서 소스컴파일을 이용한 Trac, Subversion 설치 완벽 가이드 (1) | 2014.11.25 |