power-girl0-0

로그 관리 ( Centos7환경 ) 본문

언어/Linux

로그 관리 ( Centos7환경 )

power-girl0-0 2020. 11. 17. 18:42
728x90

1. 서버에 로그 데몬이 동작중인지 확인할 수 있다.

명령어 : systemctl status rsyslog

2. 로그 파일 중 messages 파일을 실시간 모니터링 하도록 설정할 수 있다.

명령어 : tail -f /var/log/messages

 

3. 터미널에서 서버에 접속시 messages 파일에 로그가 발생함을 확인할 수 있다.

터미널에서 서버로 접속

서버로 접속시 로그가 생긴 것을 확인할 수 있다.

 

4. 터미널에서 서버계정으로 틀린 로그인을 시도했을시 서버에서 기록을 확인할 수 있다.

명령어 : lastb

 

-> 틀린 로그인 로그는 btmp파일에 저장되는데 바이너리로 저장되어 있어서 lastb명령어를 사용하여 btmp를 확인한다.

 

5. 현재 서버의 클론을 준비하고 스냅샷을 찍는다.

(IP는 본 서버와 다르게 설정하였으며, 서버 이름은 rsyslogserver로 하였다.)

복제 클릭
조건에 맞춰 설정

찍기버튼을 클릭하여 스냅샷을 저장한다.

복제 후 ip확인 결과 조건에 맞게 다른 ip가 주어진 것을 확인할 수 있다.

 

[SERVER 환경 - rsyslogserver]

 

6. UDP:514 포트를 통해 로그 서버에서 로그를 받을 수 있도록 설정 파일을 변경할 수 있다. 

1) vi /etc/rsyslog.conf 경로에서 아래 표에 있는 조건을 열어준다.

$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imklog
$ModLoad imudp
$UDPServerRun 514

2) systemctl restart rsyslog 명령어로 재시작해준다.

3) netstat -atunp 명령어로 확인한 결과 udp의 514포트가 열려있는 것을 확인할 수 있다.

 

7. 로그 서버에서 다른 서버들로부터 로그를 받을 수 있도록 방화벽을 설정할 수 있다.

명령어 : firewall-cmd --add-port=514/udp --permanent

 

1) 명령어 입력 후 firewall-cmd --reload로 재시작 해준다.

2) firewall-cmd --list-all 명령어로 514포트 설정이 된 것을 확인할 수 있다.

 

 

8. 로그 서버에 messages 파일을 실시간으로 모니터링 할 수 있다.

명령어 : tail -f /var/log/messages

 

 

[Client 환경 - Centos7(본 가상머신)]

9. 클라이언트 서버의 hostname을 testclient로 변경할 수 있다.

- 로그가 호스트이름으로 남기 때문에 로컬이랑 복제본의 로그가 같은 이름으로 남으면 누구꺼인지 모르기 때문에 바꿔줘야 한다.

- 명령어 : hostnamectl set-hostname testclient

 

설정후 reboot명령어로 재부팅해준다.

 

10. 클라이언트의 로그를 원격서버로 보내도록 설정할 수 있다.

vi /etc/rsyslog.conf 파일에 아래 명령어를 입력해준다.

*.*@<server_ip>:514

systemctl restart rsyslog 명령어를 활용하여 설정을 적용해준다.

 

11. 클라이언트에서 계정변경(root -> hisecure)이 일어났을 때 원격 서버에서 로그를 확인할 수 있다.

클라이언트에서 계정 변경
서버에서 로그확인

12. 클라이언트를 스냅샷을 통해 앞단계로 돌리고 부팅한다.

13. 클라이언트에 mariadb를 설치하고 패스워드를 설정해 디비에 접속해 db를 확인할 수 있다.

1)  yum install mariadb-server -y명령어로 설치한다.

 

2) systemctl start mariadb 명령어를 사용하여 mariadb를 시작하고 netstat -atunp명령어를 사용하여 3306번 포트가 켜있는지 확인할 수 있다.

3) mariadb 패스워드 설정 명령어 : mysql_secure_installation

-> 기본 설정은 yes로 해주었다.

4) systemctl restart mariadb 명령어를 사용하여 mariadb 패스워드 설정을 적용해주었다.

 

5) db접속을 위해 mysql -u root -p로 접속해준다.

 

6) 접속한 db에서 show databases; 명령어를 사용하여 db를 확인할 수 있다.

-> db접속을 빠져나오기 위해서는 exit 명령어를 사용한다.

 

14. rsyslog-mysql 드라이버를 설치하고, syslog데이터베이스를 새로 생성할 수 있다.

1)  yum install rsyslog-mysql명령어를 사용하여 rsyslog-mysql 드라이버를 설치해준다.

 

2) /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 경로의 파일은 DB 생성시 설정되는 내용을 갖고 있기 때문에 해당 파일이 있는지 확인한다.

 

3) 해당 파일이 있는지 확인 후, mysql -u root -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 명령어를 사용하여 syslog 데이터베이스를 새로 생성해준다.

 

15. rsyslog 사용자를 만들고 rsyslog로 비밀번호를 설정한 후 syslog 디비에 접근할 수 있다.

1) mysql -u root -p 명령어를 사용하여 db에 접근한다.

2) create user 'rsyslog'@'localhost' identified by 'rsyslog'; 명령어를 사용하여 rsyslog 라는 user를 생성해준다.

3) grant all privileges on Syslog.* to 'rsyslog'@'localhost'; 명령어를 사용하여 rsyslog라는 user에게 syslog에 접근할 수 있는 권한을 준다.

4) show databases; 명령어를 사용하여 확인해본 결과 Syslog가 생긴 것을 확인할 수 있다.

 

16. rsyslog 계정으로 접속해 syslog 디비의 SystemEvents 테이블에 있는 내용을 쿼리하여 보여줄 수 있다.

1) mysql -u rsyslog -p 명령어를 사용하여 rsyslog계정에 접속한다. (비밀번호는 rsyslog이다.)

 

2) show databases; 명령어를 사용해 Syslog 디비가 있는지 확인 후 use Syslog;명령어를 사용하여 Syslog 디비에 접속해준다. 


3) show tables; 명령어로 Syslog 디비가 가지고 있는 테이블을 확인한다.

4) select *from SystemEvents; 명령어를 사용해 SystemEvents 테이블의 내용을 확인할 수 있다.

 

17. 클라이언트 서버에 mariadb와 rsyslog가 연결될 수 있도록 rsyslog를 설정할 수 있다.

1) netstat -atunp 명령어를 사용하여 mariadb가 연결되어 있는지 확인한다.

 

2) /etc/rsyslog.conf 파일에서 아래 사진과 같이 설정해준다.

   (빨간 박스처럼 설정해주고 파란 박스는 직접 입력해줘야 된다.)

 

3) 설정후 systemctl restart rsyslog 명령어를 통해 재부팅하여 설정을 적용시켜준다.

 

18. 네트워크 접속 상태를 통해 rsyslog와 mariadb가 연결된 것을 확인 할 수 있다.

명령어 : netstat -atunp

 

19. 16번에 대한 내용을 수행하여 데이터를 출력한다.

-> select *from SystemEvents; 명령어를 사용해서 확인 해본 결과 데이터가 생성되었음을 확인할 수 있다.

728x90
Comments