CentOS 7 / rsyslog / 로그 서버 구축하는 방법

CentOS 7을 설치하면 로그 기록을 위한 rsyslog 패키지가 설치되고 실행됩니다. 로그는 로컬 컴퓨터에 저장되는데, 관리하는 컴퓨터가 여러 대인 경우 각각의 로그를 따로 모니터링하는 것이 불편할 수 있습니다. 그런 경우 하나의 컴퓨터를 로그를 수집하는 서버로 만들어서 그 서버에 로그가 쌓이게 하면, 좀 더 수월하게 로그를 관리할 수 있습니다.

rsyslog는 간단한 설정 변경으로 로그 서버와 클라이언트를 만들 수 있습니다. 서버와 클라이언트 모두 CentOS 7이 OS라고 가정하겠습니다. 혹시 rsyslog가 설치되어 있지 않다면 다음과 같이 명령하여 설치하세요.

yum install rsyslog

로그 서버 만들기

  • 텍스트 편집기로 설정 파일을 엽니다.
vi /etc/rsyslog.conf
  • 다음 두 줄을 찾아...
#$ModLoad imtcp
#$InputTCPServerRun 514
  • 주석을 지우고 저정합니다.
$ModLoad imtcp
$InputTCPServerRun 514
  • rsyslog를 다시 시작합니다.
systemctl restart rsyslog
  • 클라이언트와의 통신은 514 포트를 사용합니다. 방화벽에서 열어줍니다.
firewall-cmd --add-port=514/tcp --permanent
  • 방화벽을 다시 로드합니다.
firewall-cmd --reload

로그 클라이언트 만들기

  • 텍스트 편집기로 설정 파일을 엽니다.
vi /etc/rsyslog.conf
  • 다음 줄을 찾아...
#*.* @@remote-host:514
  • 주석을 지우고 다음처럼 수정합니다. 192.168.0.111은 로그 수집 서버의 IP로 변경하세요.
*.* @@192.168.0.111:514
  • rsyslog를 다시 시작합니다.
systemctl restart rsyslog

테스트 하기

  • 로그 수집 서버에서 다음과 같이 명령합니다.
  • 클라이언트를 재부팅하거나, 패키지를 설치하는 등 어떤 작업을 하면 로그가 쌓이는 걸 볼 수 있습니다.
tail -f /var/log/messages

로그를 데이터베이스에 저장하기

로그를 파일이 아닌 데이터베이스에 저장할 수 있습니다. CentOS 7 패키지에 포함된 MariaDB에 저장해보겠습니다.

  • MariaDB를 설치합니다.
yum install mariadb-server
  • 부팅 시 자동으로 시작되도록 합니다.
systemctl enable mariadb.service
  • MariaDB를 시작합니다.
systemctl start mariadb.service
  • root 비밀번호 등 몇가지를 설정합니다.
mysql_secure_installation
  • rsyslog-mysql 패키지를 설치합니다.
yum install rsyslog-mysql
  • 로그를 저장할 데이터베이스를 가져옵니다.
mysql -u root -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
  • MariaDB에 들어간 후...
mysql -u root -p
  • rsyslog 사용자를 만듭니다. 비밀번호를 1234로 한다면 다음과 같이 명령합니다.
create user 'rsyslog'@'localhost' identified by '1234';
  • 로그가 쌓이는 데이터베이스 이름은 Syslog입니다. rsyslog 사용자에게 권한을 부여합니다.
grant all privileges on Syslog.* to 'rsyslog'@'localhost';
  • rsyslog 설정 파일(/etc/rsyslog.conf)에 다음을 추가합니다.
$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:127.0.0.1,Syslog,rsyslog,1234

같은 카테고리의 다른 글

CentOS 8 / Squid로 Proxy Server 만드는 방법

CentOS 8 / Squid로 Proxy Server 만드는 방법

리눅스로 프록시 서버(Proxy Server)를 만들 때 스퀴드(Squid)를 주로 사용합니다. 오픈 소스이고, 대부분의 리눅스 배포판에 패키지로 포함되어 있습니다. 스퀴드(squid)는 대중적인 오픈 소스(GPL)소프트웨어 프록시 서버이자 웹 캐시이다. 반복된 요청을 캐싱함으로 웹서버의 속도를 향상시키는 것부터, 네트워크 자원을 공유하려는 사람들에게 웹, DNS와 다른 네트워크 검색의 캐싱을 제공하고, 트래픽을 걸러줌으로써 안정성에 도움을 주는 등에 이르기까지 광범위 ...

CentOS 8 / Samba / 설치하고 공유 폴더 만드는 방법

CentOS 8 / Samba / 설치하고 공유 폴더 만드는 방법

Samba를 이용하면 컴퓨터 간 파일을 주고 받거나 공유하는 게 수월해집니다. CentOS 8에 Samba를 설치하고 공유 폴더를 만드는 방법을 알아보겠습니다. Samba 설치와 설정 Samba는 CentOS 패키지에 포함되어 있어서 dnf 명령으로 설치할 수 있습니다. dnf install samba firewall-cmd로 Samba가 사용하는 포트를 열어줍니다. firewall-cmd --permanent --add-service=samba 방화벽을 다시 로드합니다. firewall-cmd --reload 사용자 추가 기존 사용자에게 권한을 줄 수도 있고, 새 사용자를 만든 ...

CentOS 7 / 고정 IP 설정하는 방법

CentOS 7 / 고정 IP 설정하는 방법

CentOS 7을 설치할 때 네트워크를 설정할 수 있습니다. GUI 환경이므로 네트워크 설정을 알고 있다면 쉽게 고정 IP로 설정할 수 있습니다. 만약 DHCP로 설치했다면 다음과 같은 방법으로 고정 IP 설정을 할 수 있습니다. CentOS 8에서 고정 IP 설정하는 방법은 여기에 있습니다. 네트워크 설정 파일 열기 네트워크 설정 파일은 /etc/sysconfig/network-scripts/ifcfg-enp0s3입니다.(파일 이름은 다를 수도 있습니다.) 설정 파일을 텍스트 에디터로 ...

CentOS / 버전 확인하는 방법

CentOS / 버전 확인하는 방법

cat /etc/redhat-release # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) cat /etc/*release* # cat /etc/*release* CentOS Linux release 7.4.1708 (Core) Derived from Red Hat Enterprise Linux 7.4 (Source) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux release 7.4.1708 (Core) CentOS Linux release 7.4.1708 (Core) cpe:/o:centos:centos:7

CentOS 7 / SSH / 포트 변경하는 방법

CentOS 7 / SSH / 포트 변경하는 방법

리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다. 이 공격을 방어하는 방법은 여러가지가 있습니다. root 계정으로 로그인 못하게 하기 암호를 복잡하게 만들기 접속 가능 IP를 정하기 SSH 포트 번호 바꾸기 이 중에서 SSH 포트 번호 바꾸는 방법을 정리해보겠습니다. CentOS 7 기준이며, 포트 번호를 1980으로 바꾼다고 가정하겠습니다. SSH 설정 파일 ...

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

하나의 서버에 하나의 사이트만 운영하는 것이 가장 이상적일 것입니다. 하지만 사이트 접속자가 많지 않거나 서버 사양이 훌륭하다면 여러 사이트를 하나의 서버에서 운영하는 게 경제적입니다. CentOS에 Apache 웹서버를 설치하고 운영하는 경우 여러 사이트를 운영할 수 있게 설정하는 방법을 요약해보겠습니다. 네임 서버 설정 각 도메인의 네임 서버의 호스트 IP를 웹서버 아이피로 설정합니다. 디렉토리 만들기 한 서버에 aaa.com과 ...

CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS 7 / firewall-cmd 명령어로 방화벽 관리하기

CentOS 7의 방화벽 관리 데몬은 firewalld입니다. 설정은 firewall-cmd 명령어로 합니다. 방화벽 실행 여부 확인 firewall-cmd --state 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 방화벽 다시 로드 firewall-cmd --reload 방화벽 설정 후 다시 로드해야 적용됩니다. 존(Zone) 출력하기 firewall-cmd --get-zones 존(zone) 목록을 출력합니다. firewall-cmd --get-default-zone 기본 존을 출력합니다. firewall-cmd --get-active-zones 활성화된 존을 출력합니다. 사용 가능한 서비스/포트 출력하기 firewall-cmd --list-all 사용 가능한 모든 서비스/포트 목록을 출력합니다. firewall-cmd --zone=public --list-all public 존에 ...

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 패키지에는 MySQL 대신 MariaDB가 들어있습니다. 이런저런 이유로 MySQL을 꼭 사용해야 한다면 좀 번거로운 과정을 거쳐야 합니다. 일단 다음 사이트에 접속합니다. https://dev.mysql.com/downloads/repo/yum/ CentOS 7에 맞는 패키지 이름을 확인합니다. CentOS 7에서 다음과 같이 명령하여 패키지를 다운로드합니다. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 패키지를 설치합니다. rpm -ivh mysql57-community-release-el7-11.noarch.rpm MySQL을 설치합니다. yum install mysql-server 시스템을 시작할 때 자동으로 MySQL이 시작되도록 합니다. systemctl enable mysqld MySQL을 시작합니다. systemctl start mysqld MySQL을 ...

CentOS 8 / 원격 데스크톱으로 연결하는 방법

CentOS 8 / 원격 데스크톱으로 연결하는 방법

서버용으로 CentOS를 사용하는 경우 보통 Minimal로 설치하고, 원격 접속은 SSH로 합니다. 하지만 하드웨어 사양이 좋아지고 사용의 편리함으로 GUI(Graphical User Interface)를 설치하는 경우도 많아지고 있습니다. GUI가 설치되어 있다면 SSH보다는 원격 데스크톱으로 관리하는 게 편합니다. CentOS에 원격 데스크톱으로 접속하는 방법을 알아봅니다. 패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가합니다. dnf install ...

CentOS 7 / ntsysv로 부팅할 때 서비스 자동으로 시작하게 하기

CentOS 7 / ntsysv로 부팅할 때 서비스 자동으로 시작하게 하기

서비스 관리는 보통 systemctl 명령어로 합니다. systemctl 명령어의 enable을 이용하면 시스템이 부팅할 때 서비스가 자동으로 시작하게 할 수 있습니다. 예를 들어 systemctl enable httpd.service 는 서버가 부팅할 때 httpd 서비스를 자동으로 시작합니다. 만약 이러한 서비스 관리를 명령어로 하는 불편하다면 ntsysv를 사용해보세요. TUI로 자동으로 시작하는 서비스를 관리할 수 있습니다. 다음과 같이 명령하여 ntsysv 패키지를 설치합니다. yum install ntsysv 다음과 같이 ...