#docker repo 추가
dnf -y config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
#docker 설치
dnf -y install docker-ce docker-ce-cli containerd.io
#rsyslog 설치
dnf -y install rsyslog
#docker compose 설치#docker를 설치할때 같이 설치되지만 설치가 안되어 있다면 수동으로 설치
dnf -y install docker-compose-plugin
#git clone 명령어로 git 저장소에 있는 docker-elk 프로젝트를 로컬로 복사합니다.#docker-elk 프로젝트를 로컬에 저장하여 기본 설정은 되어있습니다.
git clone https://github.com/deviantony/docker-elk.git
#서비스 실행
systemctl start docker
systemctl enable docker
systemctl start rsyslog
systemctl enable rsyslog
방화벽 설정
#rsyslog port
firewall-cmd --permanent --zone=public --add-port=514/tcp
firewall-cmd --permanent --zone=public --add-port=514/udp
#elasticsearch port
firewall-cmd --permanent --zone=public --add-port=9200/tcp
#kibana port
firewall-cmd --permanent --zone=public --add-port=5601/tcp
#logstash port
firewall-cmd --permanent --zone=public --add-port=5044/tcp
#설정 적용 및 확인
firewall-cmd --reload
firewall-cmd --list-ports
rsyslog 파일 설정
#rsyslog conf파일 수정
vim /etc/rsyslog.conf
#UDP,TCP 통신을 위한 주석 제거#32,33,37,38 line number 주석 제거#logstash 통신을 위한 설정
*.* @@127.0.0.1:5044
# *.*=유형,등급# @@ 로그 메시지를 TCP를 통해 통신 @=UDP @@=TCP# 5044 logstash port#설정 적용을 위한 서비스 재시작
systemctl restart rsyslog
ELK 설정
logstash 설정
#logstash.conf 파일 수정#저는 opt 경로에 설치하였습니다.
vim /opt/docker-elk/logstash/pipeline/logstash.conf
#아래 내용 삽입
input {
tcp {
port => 5044
type => "rsyslog"
}
}
filter { }
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "rsyslog-%{+YYYY.MM.dd}"
}
}
#rsyslog를 받아오고 elasticsearch로 전송하는 내용
Docker compose 실행
#docker compose 실행
docker-compose up -d
#옵션
-d : 백그라운드에서 실행
-t : 컨테이너 타임아웃시간 설정
--no-deps : 링크된 서비스는 실행하지 않음
--no-build : 이미지를 빌드하지 않음
#명령어
up : 컨테이너를 생성 및 실행
ps : 컨테이너 목록 확인
logs : 컨테이너 로그 출력
start : 컨테이너를 실행
stop : 컨테이너를 중지
restart : 컨테이너를 재시작
kill : 실행중인 컨테이너를 강제 종료
rm : 컨테이너 삭제
elasticsearch 클러스터 실행 확인
웹 브라우저 -> http://localhost:9200 접속
kibana 로그 데이터 시각화 설정
kibana 접속
웹 브라우저 -> http://localhost:5601
index patterns 등록
(데이터 시각화를 위한 로그 데이터 패턴 등록)
Stack Management -> Data views -> Create data view index pattern 을 수집중인 로그 파일명에 맞춰 패턴 설정
로그 데이터 확인 및 Field 구성
Discover에 들어가면 수집한 로그 목록 확인 가능합니다.
Discover -> Data view를 생성한 rsyslog로 변경 field 값의 로그 데이터 확인
데이터 시각화
Visualize Library에서 Field를 추가하여 그래프와 차트를 생성하여
로그 데이터를 시각화할 수 있습니다.
Visualize Library에서 생성한 그래프,차트는 Dashboards에서 확인 가능합니다.