태그 보관물: log analyzer

rsyslog-mysql + Log Analyzer 설치

설치 환경

  • CentOS 7.1 64bit
  • Apache 2.4
  • PHP 5.4
  • MariaDB 5.5

rsyslog-mysql

  • rsyslog-mysql의 스키마 탬플릿을 활용하여 Syslog서버의 로그를 MariaDB 또는 MySQL의 DB에 보관 처리를 구현할 수 있습니다.
  • 로그가 쌓이는 SystemEvents 테이블의 사이즈만 주기적으로 관리한다면 대량의 서버 또는 네트워크 장비의 로그도 관리 및 활용이 용이합니다.
  • 선행 설치 패키지 필요(rsyslog, MariaDB(https://www.sierracloud.kro.kr/mariadb-10-3-%ec%84%a4%ec%b9%98/))
# rpm -qa | grep rsyslog-mysql
# yum install rsyslog-mysql

  • DB Create
// DB 정상 생성 확인 캐릭터셋 UTF8 변경 후 SQL 스크립트 적용
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-7.4.7/createDB.sql

# mysql -u root -p
// 계정 생성
> create user 'rsyslog'@'localhost' identified by 'rsyslog';

// 권한 부여
> grant all on Syslog.* to 'rsyslog'@'localhost' with grant option;
> flush privileges;

  • rsyslog Server Setting
# vi /etc/rsyslog.conf
// 파일 포맷 탬플릿 지정
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
// 커널 로그 모듈 활성화
$ModLoad imklog
// 로그 작성 제어 모듈
$ModLoad imuxsock
// 통신용 Listen Port 지정
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
// DB 연동 모듈
$ModLoad ommysql.so
// DB 칼럼 포맷
$template dbFormat,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%FROMHOST%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL
// 로그 별 DB 포맷 설정
*.info;mail.none;authpriv.none;cron.none :ommysql:localhost,Syslog,rsyslog,rsyslog;dbFormat

// rsyslog 재시작
# systemctl restart rsyslog

Log Analyzer

  • 기 구성된 rsyslog-mysql을 통해 웹상에서 조회 및 그래프 처리를 해주는 솔루션입니다.
  • 오래되긴 했지만 기능도 단순하고 무료이므로 편하게 사용하기 좋았었습니다.
  • 선행 설치 패키지 필요(httpd, php-mysql)
  • log analyzer 설치 및 설정
// Log Analyzer 다운 및 압축 해제
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.6.tar.gz
# tar zxvf loganalyzer-3.0.6.tar.gz

// 웹소스 복사(아파치가 설치된 DocumentRoot의 Sub디렉토리에 위치시킴)
# cp -r loganalyzer3.0.6/src/* /var/www/html/Rsyslog
// 구성 파일 복사(아파치가 설치된 DocumentRoot의 Sub디렉토리에 위치시킴)
# cp loganalyer-3.0.6/contrib/* /var/www/html/Rsyslog/
/ 권한 변경
# chmod +x configure.sh secure.sh
실행
# ./configure.sh

  • 웹 설치
브라우저http://’ip address’/Rsyslog
here 클릭 
Next 클릭 
Next 클릭 
DB 정보 입력 후Next 클릭Enable User Database = Yes
Database Name = Syslog
Database User = rsyslog
Database Password = rsyslog
Next 클릭Step 5 내용 확인 후 Next 클릭 
관리자 계정 정보 입력 후 Next 클릭 ※ 분실시 주의
DB 정보 입력 후 Next 클릭MYSQL Native 선택
Database Name = Syslog
Database Tablename = SystemEvents (대소문자 구분)
Database User = rsyslog
Database Password = rsyslog
Enable Row Counting = Yes
완료 
캡쳐한게 없네요…..

  • 축하드립니다… 설치를 성공하셨으면 아래 같은 화면을 보시게 될겁니다…

Rsyslog Log Analyzer Overview

rsyslog 데몬을 사용하여 리눅스, 윈도우, 네트워크 장비로 부터 수신 로그를  mariadb에 적재하게 되고 아파치로 간단한 통계로도 볼 수 있게 구축 해서 사용하고 있습니다.

나온지도 오래되었고 UI가 상당히 구식이지만 간단하게 보기에는 쓸만하여 종종 사용하는 편 입니다.

단점은 DB에 로그가 장기간 쌓이면 통계 페이지를 제대로 표시하지 못하는 경우도 있고 특정 호스트의 로그 발생 빈도가 높으면 통계 페이지를 보기 불편한 부분이 있었습니다. 저는 일정 기간 이전의 로그를 삭제하는 SQL스크립트를 crontab에 등록 하여 유지하고 있습니다.

그와 별개로 DB에 있는 로그 데이터를 elasticsearch등으로 시각화 시키는 것도 좋은 방법인 것 같습니다.

※ 테스트를 해보진 않았지만 Log Analyzer 최신 버전은 그래프 생성 관련 타임 아웃 현상을 해결 했다고 합니다.