✔ LOG-Server
◾ 로그
- 운영체제나 소프트웨어가 실행 중 발생하는 이벤트나 각기 다른 사용자의 통신 소프트웨어 간의 메시지를 기록한 파일
◾ 로그의 중요도
- emerg(응급) > alert(경보) > crit(심각) > err(오류) > warn(경고) > notice(알림) > info(정보) > debug(디버그)
◾ syslog
- 로그를 저장, 관리하는 것은 운영상 필요
- 서버의 경우 로그 파일 자체를 확인하고 필터링하는데 어려움이 있음
- 네트워크 장비의 경우 저장 공간이 한정적이고 장비의 재부팅 시 로그가 유실됨
→ 별도의 로그서버를 만들어 로그 저장이 필요
◾ Logrotate
- 로그 파일 관리
- 로그 기록은 파일에 계속 덧붙여지면서 쌓이는 형태
→ 그대로 두면 로그 파일의 크기가 계속 커짐
- 이를 방지하기 위해 자동 로테이트 기능, 압축 및 제거 기능을 지원
- 서비스(데몬)이 아니라 /etc/cron.daily에 등록되어 cron에 의해 실행
- /etc/logrotate.conf 파일에서 설정
1. 로테이트 주기
- weekly : 매주 (daily, monthly, yearly)
2. 로테이트 갯수
- 백업 파일의 갯수
3. 로테이트 후 빈 파일 생성 여부
4. 백업 파일 이름 형식
- YYYYMMDD 형식
5. 압축 여부
6. minsize 1M
- 파일 크기가 1MB가 되면 시간이 안지났더라도 로테이트 실행
7. mssingok
- 로그 파일이 없더라도 에러처리 안함
rsyslog
91행 *.* @@remote-host:514
*.* : 모든 로그.모든 레벨
@ : UDP
@@ : TCP
remote-host : 로그 서버 주소
514 : 포트번호
템플릿
- 로그를 받을 때 어떤 형식으로 받을 것인지를 설정 (로그 서버)
$template remote-incoming-logs, "/var/log/%FROMHOST-IP%.log"
*.* ?remote-incoming-logs
→ 보낸 장비의 주소.log 형식으로 저장
◾ LogAnalyzer
- Loganalyzer는 Rsyslog가 message 또는 syslog에 기록된 데이터를 DB화 한 것을 웹으로 볼 수 있도록 해주는 프로그램
- 로그의 내용을 쉽고 편하게 볼 수 있으며, 검색 기능이 존재하여 필터링 가능
1. 패키지 설치
$ sudo apt install -y lamp-server^
$ sudo apt install -y rsyslog-mysql // 팝업창 'NO' 선택
2. wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.7.tar.gz
tar jxvf loganalyzer-4.1.7.tar.gz // 압축 해제
mv loganalyzer-4.1.7/src /var/www/html/ // src 디렉토리 /var/www/html/ 이동
3. DB 만들기
a. 로그 저장용 DB 만들기
- 이름 : Syslog
- 유저 : rsyslog
- 비밀번호 : Password
create database Syslog;
grant all privileges on Syslog.* to rsyslog@localhost identified by 'Password';
b. 솔루션용 DB 만들기
- 이름 : loganalyzer
- 유저 : loganalyzer
- 비밀번호 : Password
create database loganalyzer;
grant all privileges on loganalyzer.* to loganalyzer@localhost identified by 'Password';
4. rsyslog와 mysql 연동하기 (rsyslog-mysql)
sudo mysql -u rsyslog -D Syslog -p < /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql
첫번째 비밀번호 : busanit (sudo 패스워드)
두번째 비밀번호 : Password (rsyslog 패스워드)
sudo vim /etc/rsyslog.d/mysql.cof 에 pwd에 password 설정하기
5. 솔루션 설정 및 재시작
cd /var/www/html
touch log/config.php
chown -R www-data.www-data log //소유권, 소유 그룹 변경
systemctl restart rsyslog
systemctl restart apache2
6. 웹으로 접속하기
192.168.56.21/log
◾ 네트워크 장비에서의 로그 보내기
1. 로깅 활성화
R(config)#logging on
2. 전송할 로그 레벨 지정
R(config)#logging trap ?
<0-7> Logging severity level
alerts Immediate action needed (severity=1)
critical Critical conditions (severity=2)
debugging Debugging messages (severity=7)
emergencies System is unusable (severity=0)
errors Error conditions (severity=3)
informational Informational messages (severity=6)
notifications Normal but significant conditions (severity=5)
warnings Warning conditions (severity=4)
3. 소스 인터페이스 지정
R(config)# logging source-interface [로그 서버가 있는 인터페이스]
4. 로그 서버 지정
R(config)# logging host 172.16.31.21
5. 확인
R# show logging
'Linux' 카테고리의 다른 글
SNMP Server (0) | 2024.10.07 |
---|---|
NGINX (0) | 2024.09.30 |
NTP Server (0) | 2024.09.11 |
untangle (0) | 2024.08.21 |
IPTABLES (0) | 2024.08.07 |