[리눅스] 로그

최동혁·2023년 2월 8일
0

리눅스

목록 보기
13/16

리눅스의 로그

종류

  • 거의 대부분의 로그를 /var/log/messages에 남겨놓는다.

syslog

  • syslog가 실행중이다.

  • syslog의 설정파일이다.

  • 위의 그림과 같이 작성되어 있다.

  • Facility는 어디에서 무슨일이 생겼나를 지정하는 것.

  • Level은 얼마나 심각한 일이 벌어졌나를 지정.

    • 위쪽으로 갈 수록 심각한 문제이다.
    • err 전까지는 무시해도 상관 없는 것들.
  • 프로그래밍을 하다가 무언가 잘못됐다 싶으면 err정도만 보면 됨.

실습

httpd 설치

yum install httpd

  • 이러한 시스템이 자동으로 만들어져 있다.

  • restart 한 후, 실행해보면 잘 실행된다.

  • netstat -ano 명령어로 80번 포트가 Listen 중인지 확인
  • Listen 중이면 클라이언트가 서버에 접속할 수 있다는 얘기.
  • 이렇게 켠 후, 본체 컴퓨터에서 가상 컴퓨터의 아이피를 크롬 주소창에 쓰면 접속이 됨.
  • 하지만 지금 하면 Timeout이 뜬다. 왜냐면 리눅스에도 방화벽이 있기 때문.
  • 그래서 방화벽을 해제해야 한다.

방화벽 해제

  • centOS에서는 방화벽이 2가지다.
  • selinux와 firewalld라는 방화벽이다.
  • 네트워크 접속을 위해서는 네트워크 방화벽인 firewalld를 꺼야한다.

  • 그 후, 본체 주소창에서 가상 머신의 ip주소를 입력하면 접속이 된다.
  • 그렇다면 본체 컴퓨터가 client가 되는 것이고 가상 머신이 server가 되는 것이다.

  • 이 디렉토리 밑에 html 파일을 만들면 화면에 나오게 된다.

포트 포워딩

  • 가상 네트워크의 NAT 설정을 들어간다.
  • 내 사설 ip인 192.168.0.6:30006 으로 접속을 했을 때, 내 가상 머신의 사설 ip인 192.168.163.100:80 으로 되게끔 설정을 해줘야 한다.

  • 그래서 공인 ip를 공유하는 컴퓨터들이 나의 사설 ip:30006 포트로 접근을 하면, 게이트웨이를 거쳐서 192.168.163.100:80 으로 접속이 된다.

로그 확인

  • /var/log/httpd 로 파일 이동해서 안의 들어있는 파일을 보면 access_log 파일이 있다.
  • 이것을 실시간으로 보려면???

  • tail -f 명령어를 이용해 보면 실시간으로 사람이 접속할 때마다 로그가 찍히는 것을 확인할 수 있다.

  • 나중에 아키텍쳐를 설계해서 서버를 여러개로 나누어서 운영을 한다면 여러 서버에서 오는 로그들을 한 곳에다가 모아서 저장한다.

실습 2

로그를 서버와 클라이언트로 나누어서 서버에 로그 남기기
가상 머신 2대 준비

  • /etc/hostname 파일에서 이름을 server와 client로 바꾸어서 컴퓨터의 이름을 바꾸어 구분하기 쉽게 만들자.
  • 그 후, 재부팅

  • 변경된 것을 확인할 수 있다.

서버 설정

  • /etc/rsyslog.conf에 vi 편집기로 들어가서 19, 20번째 라인 주석 제거

  • 구성 파일에서 다음 행을 찾아 주석 처리를 제거하여 514 포트를 통해 Rsyslog 서버에 UDP 전송 수신을 허용.

  • Rsyslog는 로그 전송에 표준 UDP 프로토콜을 사용한다.

  • systemctl restart rsyslog.service

    • 로그 서비스 실행
  • systemctl stop firewalld

    • 네트워크 방화벽 해제
  • 위의 두 명령어 실행

  • systemctl status rsyslog.service 명령어를 이용해 잘 실행되었는지 확인
  • active는 잘 실행되었다는 소리

  • 위 명령어를 통해 514번 포트가 활성화 되었는지 확인
  • udp는 listen 상태가 없음.

클라이언트 설정

  • /etc/rsyslog.conf에 vi 편집기로 들어가서

  • 67번 라인 뒤에 위와 같이 *.notice @서버ip 를 추가해주자.

  • 그 후, 서버와 같이 rsyslog.service를 재시작과 함께 실행시켜준다.

테스트

서버
  • tail -f /var/log/messages 명령어로 실시간 로그 찍히는 것을 본다.
클라이언트
  • logger -p local1.notice logging hahahahahahaha 로그를 찍는 명령어인데 원래 클라이언트에 찍혀야 하지만 우리는 위에서 서버 ip로 찍히게 설정을 해주었다.

  • 결과를 보면 잘 나온것을 볼 수 있다.
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글