Computer/Server

Graylog 설치하기

kentakang 2018. 4. 28. 18:43
반응형

Graylog?

예전까지는 웹 서비스를 운영할 때 그냥 AWS에 올려 놓고 페이지를 수정하는 작업들만 해왔습니다.

하지만 직접 웹 서버를 운영하고, 서비스를 구축해나가다 보니 

로그를 직접 봐야하는 일이 많아져서 좀 더 로그를 체계적으로 관리하는 방법은 없을까? 알아보게 되었습니다.

제가 오늘 소개할 Graylog는 오픈 소스 로그 분석 시스템입니다.

우리는 Graylog를 통해 로그를 중앙에서 통합 관리하고, 로그에 내용을 실시간으로 분석하는 등 시스템의 안정화를 꾀할 수 있습니다.

오늘 이 글에서는 Graylog를 설치하는 과정을 다뤄보고자 합니다.


서버 환경

운영체제는 CentOS 7.4를 사용하고 있으며,

서비스의 구동을 위해 웹 서버로 NginxTomcat을 사용하고 있습니다.

설치 할 Graylog의 버전은 2.4.3 버전입니다.


Graylog 설치

1. JDK 설치

우선 Graylog를 설치하기 전 필요한 JDK를 설치하겠습니다.

OpenJDK를 설치하거나 Oracle JDK를 설치할 수 있는데, 저는 OpenJDK를 설치하도록 하겠습니다.

sudo yum install java-1.8.0-openjdk-headless.x86_64

2. MongoDB 설치

이제 MongoDB를 설치하겠습니다.

MongoDB는 NoSQL DBMS 중 하나입니다.

우선 /etc/yum.repos.d/mongodb-org-3.6.repo 파일을 생성한 뒤 아래 내용을 넣어주세요.

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

그 다음 부팅 후에도 자동으로 켜지게 MongoDB를 서비스에 등록하겠습니다.

sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl start mongod.service

MongoDB의 설치는 끝났습니다.


3. ElasticSearch 설치

우선 ElasticSearch 저장소의 GPG 키를 rpm에 추가해주세요.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

그 다음 /etc/yum.repos.d/elasticsearch.repo 파일을 생성한 뒤 아래와 같이 내용을 넣어주세요.

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

이제 yum을 이용해 ElasticSearch를 설치해주시면 됩니다.

sudo yum install elasticsearch

ElasticSearch 설치가 끝나셨다면, 설정 변경을 위해 /etc/elasticsearch/elasticsearch.yml 파일을 열어,

cluster.name 항목을 graylog로 변경해주세요.

처음에는 주석 처리가 되어 있으니, 맨 앞의 #도 제거해서 주석을 제거해주세요.

그 다음에는 ElasticSearch 서비스를 실행해주시면 됩니다.

sudo chkconfig --add elasticsearch
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service

4. Graylog 설치

이제 모든 준비가 끝났으니 Graylog를 설치하겠습니다.

우선 pwgen 패키지를 설치하겠습니다.

아래 명령어를 통해 pwgen을 설치해주세요.

sudo yum install epel-release
sudo yum install pwgen

그 다음 아래 명령어를 통해 Graylog-server를 설치해주세요.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.rpm
sudo yum install graylog-server

Graylog 서비스를 실행하기 위해서는 비밀번호를 설정해야 합니다.

우선 pwgen을 이용해서 비밀번호를 생성하겠습니다.

pwgen -N 1 -s 96

pwgen에서 나온 결과 값을 /etc/graylog/server/server.conf 파일의 password_secret 에 넣어주세요.

그 다음 아래 명령어를 통해 저희가 사용할 비밀번호를 만들겠습니다.

echo -n [비밀번호] | sha256sum

이 비밀번호는 root_password_sha2 부분에 넣어주세요.

이러면 Graylog 설정을 끝이 났습니다.

이제 Graylog 서비스를 실행시켜 보겠습니다.

sudo chkconfig --add graylog-server
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service

위에서 잘못된 부분이 없다면, 아마 정상적으로 서비스가 실행될겁니다.

Graylog의 기본 접속 주소는 http://127.0.0.1:9000/ 입니다.

저 주소로 접속하셨을때



이렇게 나온다면 제대로 실행이 된다고 보시면 됩니다.

만약 SSH를 통해서 설치중이셔서 내부에서 접속이 불가능하다면,

curl -X GET http://127.0.0.1:9000/

위 명령어를 실행하셨을때 제대로 접속이 확인된다면 설정이 완료된겁니다.

하지만 이렇게 하면 로그 관리를 제대로 할 수 없겠죠?

저는 웹 서버로 Nginx를 사용하고 있기 때문에 Nginx의 Reverse-Proxy를 통해 접속하는 방법을 알려드리려고 합니다.

5. Nginx Reverse-Proxy 설정

우선 현재 Nginx를 사용하고 있다는 가정하에, Nginx를 설치하고 설정하는 방법은 따로 적지 않겠습니다.

해당 부분은 구글에 검색해보시면 쉽게 정리되어 있는 글들이 많으니, 찾아보시면 쉽게 설정하실 수 있을겁니다.

nginx.conf를 수정하시거나 새로운 사이트 설정 파일을 여신 후 아래와 같이 설정해주세요.

server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name [접근 도메인];

    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/api;
      proxy_pass       http://127.0.0.1:9000;
    }
}

혹시 HTTPS로 연결하시려면 아래와 같이 인증서 정보를 추가해주시면 됩니다.

server
{
    listen      443 ssl spdy;
    server_name graylog.example.org;
    # <- your SSL Settings here!

    location /
    {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL https://$server_name/api;
      proxy_pass       http://127.0.0.1:9000;
    }
}

이렇게 설정을 하시고 Nginx를 Reload 하신 뒤 접속해 보셨을 때 아까 보셨던 화면이 뜬다면 성공!


이렇게 Graylog의 설치를 모두 마쳤습니다.

부족한 글 봐주셔서 감사합니다.

반응형