Centos 7에서는 mysql yum install이 지원되지 않으므로 아래 방법으로 간단하게 설치할 수 있습니다.

 

https://growingsaja.tistory.com/39

 

위 링크에서 mysql 설치 후에 아래 작업 진행해주시면 됩니다.

 

yum install -y httpd

systemctl start httpd

systemctl enable httpd

yum install -y php php-mysql php-gd

 

http, php 등 필요 툴을 설치해줍니다.

 

vim /var/www/html/test.php

===================

<?php

phpinfo();

?>

===================

 저장 후 해당 서버 IP를 주소로 페이지 접속하여 TEST page가 정상적으로 나오는지 확인하여 정상작동 확인해줍니다.

 

minimal로 OS설치하신 경우 wget이 설치되어있지 않으므로 설치해줍니다.

yum install -y wget

 

wget http://rpms.adiscon.com/v8-stable/rsyslog.repo

mv rsyslog.repo /etc/yum.repos.d/rsyslog.repo

yum install -y rsyslog* --skip-broken

 ( 해당 yum 작업은 기존의 낮은 버전인 rsyslog를 더 높은 버전인 rsyslog로 업그레이드 해주는 작업입니다. )

 

systemctl enable rsyslog

 

vim /usr/share/doc/rsyslog-8.1904.0/mysql-createDB.sql

 ( 해당 경로 또는 파일명은 조금 차이가 있을 수 있습니다. ex. rsyslog-6.4254/CreateDB.sql )

==========================================

CREATE DATABASE rsyslogdb;

USE rsyslogdb;

CREATE TABLE SystemEvents

[ ... ] (이하 내용은 건드리지 않습니다.)

==========================================

DB 명은 다르게 하셔도 무방하나 편의를 위해 이해하기 쉽도록 설정해두었습니다.

 

mysql -u root -p < /usr/share/doc/rsyslog-mysql-8.2.1/createDB.sql

로 해당 파일을 사용하여 syslog analyzer에 필요한 DB 세팅을 진행합니다.

 

   > SET GLOBAL validate_password_policy=LOW;

( 해당 명령어를 입력해줘야 mysql의 복잡한 계정 정책을 지키지 않고 세팅할 수 있습니다. ) -> 번거롭기 때문에... 비밀번호는 다들 알아서 복잡하게 하시는걸로...

( 추가TIP 해당 명령어는 임시로 적용되니 서버 재부팅 혹은 mysqld 재시작시 다시 MEDIUM으로 돌아갑니다! )

 

   > CREATE USER '사용자'@'localhost' IDENTIFIED BY '비밀번호';

예시 > CREATE USER 'rsyslogdbadmin'@'localhost' IDENTIFIED BY 'password';

 

   > GRANT ALL ON rsyslogdb.* TO rsyslogdbadmin@’%’ IDENTIFIED BY 'NewPasswordHere';

   > FLUSH PRIVILEGES;

   > exit

작업의 편의를 위해 전부 rsyslogdb.* TO rsyslogdbadmin@’%’ 로 모두 열어주었으나, 아래 링크를 참고하여 필요에 따라 세팅 진행해주시면 됩니다.

https://growingsaja.tistory.com/14?category=791668

 

 

이제 log analyzer를 위한 서버의 기본적인 세팅이 완료되었으므로 해당 툴 설치 진행합니다.

 ( 혹시라도 해당 loganalyzer 인터페이스가 마음에 들지 않는 경우 다른 버전을 사용하셔도 무방합니다. ) -> ( wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz 을 통해 진행 가능하며 동일한 방법으로 진행하시면 됩니다. )

 

이 그림은 높은 버전의 4.1.6 버전 예시이고

이 그림은 낮은 버전의 3.6.5 버전 예시입니다.

 

직접 보시고 더 끌리는 버전으로 진행하시면 되겠습니다.

 

A. 4.1.6 버전의 경우

 

cd /usr/local/src
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz
tar -zxvf /usr/local/src/loganalyzer-4.1.6.tar.gz 

mv /usr/local/src/loganalyzer-4.1.6/src /var/www/html/loganalyzer
mv /usr/local/src/loganalyzer-4.1.6/contrib/* /var/www/html/loganalyzer
chmod +x /var/www/html/loganalyzer/configure.sh /var/www/html/loganalyzer/secure.sh

cd /var/www/html/loganalyzer
./configure.sh

 

설치가 완료되었으므로 웹페이지에서 이후 작업 진행합니다.

http://999.888.777.666/loganalyzer

 

 

B. 3.6.5 버전의 경우

 

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz

tar zxvf loganalyzer-3.6.5.tar.gz

cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer

cp -r loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/

 

cd /var/www/html/loganalyzer/

chmod +x configure.sh secure.sh

./configure.sh

 

설치가 완료되었으므로 해당 설치되면서 세팅된 파일을 읽을 수 있도록 httpd restart를 진행해줍니다.

systemctl restart httpd

 

웹페이지에서 이후 세팅 마저 진행합니다.

http://999.888.777.666/loganalyzer/

 

 

(src 안에 기본 파일들을 두든, 다른 곳에 두든 큰 문제는 없습니다.)

 

 

만약 해당 페이지가 비정상적으로 출력될 경우 systemctl restart httpd 진행 후 확인해보시면 정상적으로 출력 확인 가능합니다.

 

IP는 본인이 세팅한 서버의 IP를 입력하면 됩니다.

 

 

웹페이지에서는 아래 그림대로 보시고 그대로 작업 진행하시면 됩니다. ( 버튼 클릭 혹은 글자 클릭으로 진행합니다. )

 

 

0. here 클릭

1. Next 클릭

2. Next 클릭

3. Enable User Database No -> Yes 로 변경하면 아래 추가 설정 기능 추가됨. 아래 그림과 같이 세팅 진행

4. Next 클릭

5. 전부 이상없이 Success로 나오네요.

6. 메인 페이지 유저 생성하는 곳입니다. 각자 입맛에 맞게 세팅합니다.

7. 아래 그림과 같이 세팅해줍니다.

MYSQL에 로그를 저장할 예정이므로 MYSQL Native로 바꿔줍니다.

8. 완료했다네요.

로그인을 진행해주시면 아래와 같은 그림이 나올겁니다.

데이터가 없으므로 아무것도 없습니다. loganalyzer와 저희 서버 mysql이 잘 이어져 있는지 확인해보겠습니다.

 

 

다시 999.888.777.666 서버로 돌아가서

mysql -u root -p

   > USE rsyslogdb;

   > SELECT * FROM SystemEvents

 

Empty set (0.00 sec)

라고 출력되면 정상입니다. 임의로 데이터 값을 하나 넣어보겠습니다

   > INSERT INTO `Syslog`.`SystemEvents` 

(`ID`, `CustomerID`, `Facility`, `Priority`, `FromHost`, `Message`) 

VALUES ('1', '2', '3', '4', '5', 'TEST');

 

다시 웹페이지로 가서 새로고침 후 확인해봅니다.

 

위와 같이 로그가 생겼다면 정상적으로 연동이 잘 된겁니다.

 

 

이제 서버의 rsyslog와 mysql을 연결시켜주겠습니다.

vim /etc/rsyslog.conf

================================================================

$ModLoad ommysql.so
$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%,'%HOSTNAME%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL
*.* :ommysql:localhost,rsyslogdb,rsyslogdbadmin,PasswordOfRsyslogdbadmin;insertpl

================================================================

총 3줄입니다.

$ ommysql 모듈을 불러오는 라인,

$ 템플릿 DB insert 해주는 라인,

*.* ommysql이 바라볼 DB 관련 정보 라인

 

systemctl restart rsyslog

 

이후 웹페이지에서 새로고침을 진행해주면 rsyslog restart 하면서 발생한 로그가 정상적으로 출력됨을 확인할 수 있습니다.

 

위에서 간단히 이미 보여드렸으나 제가 추천드렸던 더 낮은 버전에서는 아래와 같이 웹페이지가 출력되니 비교해보시고 더 마음에 드는 방향으로 진행하시면 되겠습니다.

 

 

혹시라도 테스트를 위해 직접 log를 발생시키고 싶으시다면 서버에서

 

logger TEST

 

입력시 TEST 라는 로그 메시지가 발생합니다. ( TEST 대신 다른 내용 입력시 해당 내용으로 출력됩니다. )

logger 커맨드의 옵션 내용을 보고싶다면 아래 링크로 이동하여 확인 가능합니다.

https://growingsaja.tistory.com/221

 

 

추가 설정

 

0. processid 컬럼 없애고 (의미가 없음) 해당 컬럼에 fromip 정보 출력되도록 세팅

 

vim /etc/rsyslog.conf        (이전에 넣었던 template 라인 지우고 아래 라인으로 대체)

==============================

$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, processid, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%,' %HOSTNAME%', '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL

==============================

mysql -u root -p

>use Syslog;

>INSERT INTO logcon_fields (FieldID, FieldCaption, FieldDefine, SearchField, FieldAlign, DefaultWidth, FieldType, Sortable, Trunscate, SearchOnline) VALUES ( 'procid', 'FROMIP', 'SYSLOG_PROCESSID', 'fromip', 'center', 50, 0, 0, 0, false);

    -> 해당 작업을 통해 processid가 들어가던 위치에 fromip정보가 들어감

 

 

1. 다른 원격 서버의 로그도 해당 서버의 loganalyzer 웹페이지에서 확인하고 싶은 경우

 

해당 원격 서버 ( client server ) 에서

vim /etc/rsyslog.conf

===============================

##### info성 포함 모든 로그 보냄 #####

*.info;mail.none;authpriv.none;cron.none @999.888.777.666

===============================

또는

===============================

##### warn 이상 문제 로그만 보냄 #####

*.err;*.warn;kern.alert;kern.crit;kern.emerg @999.888.777.666

===============================

를 입력 후 저장해준 후

/etc/init.d/rsyslog restart        (Centos 6)

혹은

systemctl restart rsyslog        (Centos 7)

진행해주시면 됩니다.

 

 

2. FromIP column도 추가하여 함께 DB에서 수집하고 싶은 경우

 

log analyzer 서버에서 해당 작업 진행

 

#해당 테이블에 FromIP 컬럼 추가

mysql -u root -p

   > USE rsyslogdb;

   > ALTER TABLE `SystemEvents` ADD COLUMN `FromIP` VARCHAR(60) NULL DEFAULT NULL AFTER `FromHost`;

   > quit

 

vim /etc/rsyslog

============================================================
$ModLoad ommysql.so
$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, FromIP, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%,'%HOSTNAME%', '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL

*.* :ommysql:localhost,Syslog,syslog,2)1(thghkrlwjs!;insertpl

============================================================

위 3줄 추가해주고 rsyslog restart 진행 ( 기존에 있던 ommysql 3줄은 삭제해버리거나 다른 부분만 추가해줍니다. -> FromIP  &  '%fromhost-ip%' )

 

해당 작업은 DB에 IP값도 함께 수집되도록 해주는 세팅이며, log analyzer 자체에 신규 컬럼을 생성해서 출력해주지는 않음. 웹에서도 해당 FromIP 컬럼 정보를 출력하도록 하기 위해서는 log analyzer config 파일을 수정해야하는 것 같은데... 잘 모르겠네요. 0번 작업으로 대체해서 진행하시면 될 듯 하고, 혹시라도 깔끔하게 FromIP와 ProcessID 모두 보여줄 수 있는 방법을 아시는 분이 계시면 알려주세요!

 

 

 

+ Recent posts