웹사이트 검색

Ubuntu 15.10에 Graylog2 및 Elasticsearch를 설치하는 방법


Elasticsearch는 OpenSource 소프트웨어로 제공되는 Lucene 기반의 분산 검색 서버입니다. HTTP 웹 인터페이스가 있는 자바로 작성된 전체 텍스트 검색 엔진이며 기본적으로 JSON 문서를 지원합니다. Elasticsearch는 모든 종류의 문서를 검색하는 데 사용할 수 있으며 확장 가능한 검색 및 실시간 검색 솔루션을 제공합니다. Elasticsearch는 많은 대규모 조직인 Mozilla, Netflix, Stack Exchange 등에서 사용됩니다.

Graylog2는 Elasticsearch 및 MongoDB를 기반으로 하는 중앙 집중식 로그 관리 및 로그 분석 프레임워크입니다. 다양한 소스의 로그 메시지를 분석하고 누적할 수 있습니다.

이 튜토리얼에서는 Graylog2, Elasticsearch 및 MongoDB 설치 과정을 안내합니다. 이 설치에는 Ubuntu 15.10을 사용하겠습니다.

전제 조건

  • 우분투 15.10 - 64비트
  • 4GB RAM
  • 루트 권한

1단계 - MongoDB 설치

MongoDB는 문서 지향 NoSQL 데이터베이스입니다. MongoDB 문서 체계는 JSON과 유사하며 BSON이라고 합니다. MongoDB Debian 리포지토리에서 MongoDB 3를 설치합니다.

리포지토리를 추가하고 업데이트하고 설치합니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get update

다음 apt 명령을 사용하여 MongoDB를 설치합니다.

apt-get install mongodb-org

다음으로 mongodb를 시작하고 부팅 시 시작되도록 활성화합니다.

systemctl start mongod
systemctl enable mongod

2단계 - 자바 설치

이 튜토리얼에서 사용할 모든 응용 프로그램은 Java를 기반으로 하므로 지금 설치해야 합니다 :). Graylog 설치를 위해서는 Java 7 이상이 필요합니다. Java 7은 우분투 리포지토리에서 사용할 수 있으므로 다음 apt 명령으로 설치할 수 있습니다.

apt-get install openjdk-7-jre

이제 자바 버전을 확인하십시오.

java -version

그리고 자바 버전을 가져와야 합니다.

java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

3단계 - Elasticsearch 설치

이 튜토리얼에서는 elasticsearch 버전 1.7을 설치합니다.

시스템에 GPG 키를 다운로드하고 추가합니다.

sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

이제 Elasticsearch 리포지토리를 sources.list.d 디렉터리에 추가하고 apt-get update를 실행합니다.

echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get update

이제 Elasticsearch를 설치합니다.

sudo apt-get install elasticsearch

그리고 설치가 완료되면 Elastcisearch 데몬을 시작하고 부팅 시 시작되도록 활성화합니다.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Elastisearch 설치가 완료되고 데몬이 시작되었습니다. 이제 구성할 시간입니다.

vim을 사용하여 \/etc/elasticsearch/\ 디렉터리의 구성 파일을 편집합니다.

vim /etc/elasticsearch/elasticsearch.yml

\cluster.name\ 줄의 주석을 해제하고 값을 \graylog2\로 변경합니다.

cluster.name = graylog2

프로덕션 서버에 대해 아래 구성을 추가하여 동적 스크립트를 비활성화하고 원격 실행을 방지합니다.

script.disable_dynamic: true

파일을 저장하고 종료합니다.

그런 다음 Elasticsearch를 다시 시작하고 curl 명령으로 테스트합니다.

systemctl restart elasticsearch

포트 9200에 대한 curl 연결로 Elasticsearch를 테스트하고 있습니다.

curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

4단계 - Graylog2 서버 설치

다음 단계는 Graylog2 서버를 설치하는 것입니다. 이 설치에는 Graylog 1.3.2를 사용하겠습니다. wget 명령으로 graylog2를 다운로드하고 압축을 푼 다음 구성합니다.

pwgen 설치를 시작하기 전에 무작위 암호를 생성하려면 pwgen이 필요합니다.

pwgen 설치:

apt-get install pwgen

이제 다음 명령을 사용하여 새 비밀번호를 생성하십시오.

pwgen -N 1 -s 96

내 비밀 코드:

GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua

아래 명령을 사용하여 새 sha256 해시를 생성합니다.

echo -n mypassword | sha256sum

이것은 내 비밀번호입니다.

9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1

다음으로 /opt/ 디렉토리로 이동하여 wget 명령을 사용하여 graylog-server를 다운로드합니다.

cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz

graylog-server를 추출하고 디렉터리 이름을 graylog2로 바꿉니다.

tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/

Graylog-server가 다운로드되고 설치를 위해 /opt/ 디렉토리를 사용합니다.

graylog-server를 구성하려면 새 graylog 디렉토리를 만들고 graylog-server 샘플 구성 파일을 \server.conf\에 복사합니다.

mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf

구성을 편집합니다.

vim /etc/graylog/server/server.conf

pwgen으로 생성된 암호를 password_secret 줄에 붙여넣습니다.

password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua

생성된 sha256 비밀번호를 붙여넣으십시오. 이 비밀번호는 graylog 관리 대시보드에 로그인하는 데 사용됩니다.

root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1

elasticsearch 멀티캐스트 검색을 비활성화하고 유니캐스트 호스트를 추가합니다.

elasticsearch_discovery_zen_ping_multicast_enabled = false  
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

모든 것을 이 단일 서버에 설치하므로 elasticsearch 샤드를 1로 변경합니다.

elasticsearch_shards = 1
elasticsearch_replicas = 0

파일을 저장하고 종료합니다.

이제 graylog 디렉터리에서 bin 파일을 실행하여 graylog-server를 시작합니다.

cd /opt/graylog/bin/
./graylogctl start

이제 로그 디렉터리에서 graylog-server의 로그 파일을 볼 수 있습니다. tail 명령으로 확인하세요.

tail -f /opt/graylog/log/

로그 파일에서 다음을 확인해야 하는 경우:

Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.

graylog-server가 제대로 시작되었음을 의미합니다.

5단계 - Graylog-Web 설치

wget 명령을 사용하여 graylog 웹 인터페이스를 /opt/directory에 다운로드합니다.

cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz

graylog 웹 인터페이스를 추출하고 이름을 \graylog-web\으로 바꿉니다.

tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/

그런 다음 pwgen을 사용하여 graylog-web에 대한 새 애플리케이션 비밀 코드를 생성합니다.

pwgen -N 1 -s 96

이것은 내 비밀입니다.

zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE

graylog-web 디렉토리로 이동하여 구성 파일을 편집합니다.

cd graylog-web/
vim graylog

graylog2-server.uris 줄에 graylog2-server 주소를 추가합니다.

graylog2-server.uris="http://127.0.0.1:12900/"

application.secret 줄에 이전에 생성된 비밀 코드를 붙여넣습니다.

application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"

파일을 저장하고 종료합니다.

이제 graylog-web을 시작합니다.

cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080

Graylog-web은 포트 8080에서 실행됩니다.

서버 방문 - http://myipaddress:8080/

이제 \admin\ 사용자와 sha256 비밀번호로 로그인하십시오.

Elasticsearch 및 Graylog 웹 인터페이스가 있는 Graylog2 서버가 설치되었습니다.

결론

Elasticsearch는 HTTP 인터페이스와 JSON을 지원하는 분산 서버 검색 엔진입니다. Graylog와 함께 사용하면 서버의 모든 로그 파일을 검색할 수 있습니다. Graylog는 Elasticsearch 및 mongoDB를 기반으로 하는 로그 관리 및 분석 소프트웨어입니다. Elasticsearch, Graylog 및 MongoDB를 사용하여 분산 로그 서버를 구축할 수 있습니다.