본문 바로가기

LogAnalysis

Elastic Stack 빠른설치(CentOS 7.x)

RPM으로 Elasticsearch 설치

Elasticsearch PGP 키 가져 오기

Elasticsearch 서명 키 ( https://pgp.mit.edu 에서 사용 가능한 PGP 키 D88E42B4 )를 지문으로 모든 패키지에 서명합니다 .

4609 5ACC 8548582C 1A26 99A9 D27D 666C D88E 42B4

공개 서명 키를 다운로드하고 설치합니다.

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

RPM 저장소에서 설치

라는 파일 만들기 elasticsearch.repo에서 /etc/yum.repos.d/레드햇 기반의 배포판에 대한 디렉토리를, 또는에 /etc/zypp/repos.d/포함, 오픈 수세 기반의 배포판에 대한 디렉토리 :

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

그리고 저장소를 사용할 준비가되었습니다. 이제 다음 명령을 사용하여 Elasticsearch를 설치할 수 있습니다.

sudo yum install --enablerepo=elasticsearch elasticsearch 

RPM을 수동으로 다운로드 및 설치

Elasticsearch v7.10.0 용 RPM은 웹 사이트에서 다운로드하여 다음과 같이 설치할 수 있습니다.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-7.10.0-x86_64.rpm.sha512 
sudo rpm --install elasticsearch-7.10.0-x86_64.rpm

다운로드 한 RPM의 SHA와 게시 된 체크섬을 비교하여 elasticsearch-{version}-x86_64.rpm: OK.

SysV init vs systemd

Elasticsearch는 설치 후 자동으로 시작되지 않습니다. Elasticsearch를 시작하고 중지하는 방법은 시스템이 SysV를 사용하는지 init또는 systemd(최신 배포에서 사용 되는지)에 따라 다릅니다 . 다음 명령을 실행하여 사용중인 것을 알 수 있습니다.

ps -p 1

SysV로 Elasticsearch 실행 init

chkconfig명령을 사용하여 시스템이 부팅 될 때 자동으로 시작되도록 Elasticsearch를 구성합니다.

sudo chkconfig --add elasticsearch

Elasticsearch는 다음 service명령을 사용하여 시작 및 중지 할 수 있습니다 .

sudo -i service elasticsearch start
sudo -i service elasticsearch stop

어떤 이유로 Elasticsearch가 시작되지 않으면 실패 이유를 STDOUT에 인쇄합니다. 로그 파일은 /var/log/elasticsearch/.

Elasticsearch 실행 systemd

시스템이 부팅 될 때 Elasticsearch가 자동으로 시작되도록 구성하려면 다음 명령을 실행하십시오.https://github.com/elastic/elasticsearch/edit/7.10/docs/reference/setup/install/systemd.asciidoc)

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

Elasticsearch는 다음과 같이 시작 및 중지 할 수 있습니다.

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

이러한 명령은 Elasticsearch가 성공적으로 시작되었는지 여부에 대한 피드백을 제공하지 않습니다. 대신이 정보는에있는 로그 파일에 기록됩니다 /var/log/elasticsearch/.

Elasticsearch 키 저장소를 암호로 보호 systemd한 경우 로컬 파일 및 시스템 환경 변수를 사용하여 키 저장소 암호 를 제공해야 합니다. 이 로컬 파일은 존재하는 동안 보호해야하며 Elasticsearch가 실행되고 실행되면 안전하게 삭제할 수 있습니다.

echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service

기본적으로 Elasticsearch 서비스는 systemd 저널에 정보를 기록하지 않습니다 . journalctl로깅 을 활성화하려면 파일 --quietExecStart명령 줄에서 옵션을 제거해야 elasticsearch.service합니다.

systemd로깅이 활성화 되면 다음 journalctl명령을 사용하여 로깅 정보를 사용할 수 있습니다 .

저널을 마무리하려면 :

sudo journalctl -f

elasticsearch 서비스에 대한 저널 항목을 나열하려면 다음을 수행하십시오.

sudo journalctl --unit elasticsearch

지정된 시간부터 시작하는 elasticsearch 서비스에 대한 저널 항목을 나열하려면 다음을 수행하십시오.

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

Elasticsearch가 실행 중인지 확인

다음의 포트 9200에 HTTP 요청을 전송하여 Elasticsearch 노드가 실행 중인지 테스트 할 수 있습니다 localhost.

GET /

다음과 같은 응답을 제공해야합니다.

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch 구성

/etc/elasticsearch디렉토리 Elasticsearch에 대한 기본 런타임 구성이 포함되어 있습니다. 이 디렉토리 및 포함 된 모든 파일의 소유권은 root:elasticsearch패키지 설치시 로 설정됩니다 .

setgid플래그는에 그룹 권한을 적용 /etc/elasticsearch Elasticsearch 어떤 포함 된 파일 및 서브 디렉토리를 읽을 수 있도록 디렉토리. 모든 파일과 하위 디렉터리는 root:elasticsearch소유권을 상속합니다 . 이 디렉터리 또는 elasticsearch-keystore 도구 와 같은 하위 디렉터리에서 명령을 실행 하려면 root:elasticsearch 권한이 필요합니다 .

Elasticsearch /etc/elasticsearch/elasticsearch.yml는 기본적으로 파일 에서 구성을로드합니다 . 이 구성 파일의 형식은 Elasticsearch 구성에 설명되어 있습니다.

RPM으로 Kibana 설치

Elastic PGP 키 가져 오기

모든 패키지에 Elastic Signing Key (PGP 키 D88E42B4 , https://pgp.mit.edu 에서 사용 가능 )를 지문으로 서명합니다 .

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

공개 서명 키를 다운로드하고 설치합니다.

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

RPM 저장소에서 설치

라는 파일 만들기 kibana.repo에서 /etc/yum.repos.d/레드햇 기반의 배포판에 대한 디렉토리를, 또는에 /etc/zypp/repos.d/포함, 오픈 수세 기반의 배포판에 대한 디렉토리 :

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

그리고 저장소를 사용할 준비가되었습니다. 이제 다음 명령 중 하나로 Kibana를 설치할 수 있습니다.

sudo yum install kibana 

RPM을 수동으로 다운로드 및 설치

Kibana v7.10.0 용 RPM은 웹 사이트에서 다운로드하여 다음과 같이 설치할 수 있습니다.

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-x86_64.rpm
shasum -a 512 kibana-7.10.0-x86_64.rpm 
sudo rpm --install kibana-7.10.0-x86_64.rpm

에서 생성 한 SHA를 게시 된 SHAshasum 와 비교합니다 .

SysV init vs systemd

Kibana는 설치 후 자동으로 시작되지 않습니다. Kibana를 시작하고 중지하는 방법은 시스템에서 SysV를 사용하는지 init또는 systemd(최신 배포판에서 사용 하는지)에 따라 다릅니다 . 다음 명령을 실행하여 사용중인 것을 알 수 있습니다.

ps -p 1

SysV로 Kibana 실행 init

다음 chkconfig명령을 사용하여 시스템이 부팅 될 때 자동으로 시작되도록 Kibana를 구성합니다.

sudo chkconfig --add kibana

다음 service명령을 사용하여 Kibana를 시작하고 중지 할 수 있습니다 .

sudo -i service kibana start
sudo -i service kibana stop

어떤 이유로 든 Kibana가 시작되지 않으면 실패 이유를 STDOUT. 로그 파일은 /var/log/kibana/.

Kibana 실행 systemd

시스템이 부팅 될 때 Kibana가 자동으로 시작되도록 구성하려면 다음 명령을 실행하십시오.

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service

Kibana는 다음과 같이 시작 및 중지 할 수 있습니다.

sudo systemctl start kibana.service
sudo systemctl stop kibana.service

이러한 명령은 Kibana가 성공적으로 시작되었는지 여부에 대한 피드백을 제공하지 않습니다. 로그 정보는를 통해 액세스 할 수 있습니다 journalctl -u kibana.service.

구성 파일을 통해 Kibana 구성

Kibana /etc/kibana/kibana.yml 는 기본적으로 파일 에서 구성을로드합니다 . 이 구성 파일의 형식은 Kibana 구성에 설명되어 있습니다.

Logstash 설치

다운로드 한 바이너리에서 설치

파일의 압축을 풉니다. 콜론 (:) 문자가 포함 된 디렉토리 경로에 Logstash를 설치하지 마십시오.

패키지 저장소에서 설치

APT 및 YUM 기반 배포에 사용할 수있는 저장소도 있습니다. 패키지는 Logstash 빌드의 일부로 생성되므로 바이너리 패키지 만 제공하고 소스 패키지는 제공하지 않습니다.

Logstash 패키지 저장소를 버전별로 별도의 URL로 분할하여 주요 버전간에 우발적 인 업그레이드를 방지했습니다. 모든 7.xy 릴리스의 경우 버전 번호로 7.x를 사용합니다.

Elastic의 서명 키인 PGP 키 D88E42B4 를 지문과 함께 사용합니다.

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

모든 패키지에 서명합니다. https://pgp.mit.edu 에서 구할 수 있습니다 .

APT

공개 서명 키를 다운로드하고 설치합니다.

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

apt-transport-https계속하기 전에 Debian에 패키지 를 설치해야 할 수 있습니다 .

sudo apt-get install apt-transport-https

저장소 정의를 /etc/apt/sources.list.d/elastic-7.x.list다음에 저장하십시오 .

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

실행 sudo apt-get update하면 저장소를 사용할 수 있습니다. 다음과 같이 설치할 수 있습니다.

sudo apt-get update && sudo apt-get install logstash

YUM

공개 서명 키를 다운로드하고 설치합니다.

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

예를 들어 접미사 /etc/yum.repos.d/가있는 파일 의 디렉토리에 다음을 추가합니다..repo``logstash.repo

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

그리고 저장소를 사용할 준비가되었습니다. 다음과 같이 설치할 수 있습니다.

sudo yum install logstash

Systemd를 사용하여 Logstash 실행

Debian Jessie, Ubuntu 15.10+ 및 많은 SUSE 파생물과 같은 배포판은 systemd 및 systemctl명령을 사용하여 서비스를 시작 및 중지합니다. Logstash /etc/systemd/system는 deb 및 rpm 모두 에 대해 systemd 단위 파일을 배치합니다 . 패키지를 설치 한 후 다음을 사용하여 Logstash를 시작할 수 있습니다.

sudo systemctl start logstash.service

Filebeat 빠른 시작 : 설치 및 구성

  • 모니터링하려는 각 시스템에 Filebeat를 설치하십시오.
  • 로그 파일의 위치 지정
  • 로그 데이터를 필드로 구문 분석하여 Elasticsearch로 보냅니다.
  • Kibana에서 로그 데이터 시각화

시작하기 전에

데이터를 저장하고 검색하려면 Elasticsearch가 필요하고 시각화하고 관리하려면 Kibana가 필요합니다.

1 단계 : Filebeat 설치

모니터링하려는 모든 서버에 Filebeat를 설치합니다.

Filebeat를 다운로드하고 설치하려면 시스템에서 작동하는 명령을 사용하십시오.

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-x86_64.rpm
sudo rpm -vi filebeat-7.10.0-x86_64.rpm

또는

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-linux-x86_64.tar.gz
tar xzvf filebeat-7.10.0-linux-x86_64.tar.gz

2 단계 : Elastic Stack에 연결

Filebeat를 설정하려면 Elasticsearch 및 Kibana에 대한 연결이 필요합니다.

에서 연결 정보를 설정합니다 filebeat.yml. 이 구성 파일을 찾으려면 디렉토리 레이아웃을 참조하십시오 .

Filebeat가 Elasticsearch 설치를 찾을 수있는 호스트 및 포트를 설정하고 Filebeat를 설정할 권한이있는 사용자의 사용자 이름과 비밀번호를 설정합니다. 예를 들면 :

output.elasticsearch:
  hosts: ["myEShost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD" 

이 예는 하드 코딩 된 비밀번호를 보여 주지만 중요한 값은 secrets keystore 에 저장해야합니다 .

사전 구축 된 Kibana 대시 보드를 사용하려는 경우 Kibana 엔드 포인트를 구성하십시오. Kibana가 Elasticsearch와 동일한 호스트에서 실행중인 경우이 단계를 건너 뜁니다.

  setup.kibana:
    host: "mykibanahost:5601" 
    username: "my_kibana_user"  
    password: "{pwd}"

Kibana가 실행중인 머신의 호스트 이름 및 포트 (예 : mykibanahost:5601. 포트 번호 뒤에 경로를 지정하는 경우 스킴과 포트를 포함하십시오 : http://mykibanahost:5601/path.

Kibana 의 usernamepassword설정은 선택 사항입니다. Kibana에 대한 자격 증명을 지정하지 않으면 Filebeat는 Elasticsearch 출력에 대해 username및 지정된를 사용합니다 password.

사전 빌드 된 Kibana 대시 보드를 사용하려면이 사용자에게 대시 보드를 볼 수있는 권한이 있거나 kibana_admin 기본 제공 역할 이 있어야합니다 .

3 단계 : 데이터 수집 모듈 활성화 및 구성

Filebeat는 모듈을 사용하여 로그 데이터를 수집하고 구문 분석합니다.

  1. 활성화해야하는 모듈을 식별합니다. 사용 가능한 모듈 목록을 보려면 다음을 실행하십시오.
filebeat modules list

설치 디렉토리에서 하나 이상의 모듈을 활성화합니다. 예를 들어, 다음 명령은 수 system, nginxmysql모듈 CONFIGS를 :

filebeat modules enable system nginx mysql

모듈 구성에서 modules.d환경에 맞게 모듈 설정을 변경합니다.

예를 들어 로그 위치는 OS에 따라 설정됩니다. 로그가 기본 위치에없는 경우 paths변수를 설정합니다 .

- module: nginx
  access:
    var.paths: ["/var/log/nginx/access.log*"] 

구성 파일을 테스트하려면 Filebeat 바이너리가 설치된 디렉토리로 변경하고 다음 옵션을 지정하여 포 그라운드에서 Filebeat를 실행합니다 ./filebeat test config -e.. 구성 파일이 Filebeat에서 예상하는 경로에 있는지 확인하거나 ( 디렉토리 레이아웃 참조 ) -c플래그를 사용하여 구성 파일의 경로를 지정합니다.

4 단계 : assets 설정

Filebeat는 데이터 구문 분석, 인덱싱 및 시각화를위한 사전 정의 된 자산(assets)과 함께 제공됩니다. 이러한 자산을로드하려면 :

  1. 에 지정된 사용자 filebeat.ymlFilebeat를 설정할 권한 이 있는지 확인하십시오 .
  2. 설치 디렉토리에서 다음을 실행하십시오.
filebeat setup -e
  1. -e 선택적이며 구성된 로그 출력 대신 표준 오류로 출력을 보냅니다.

이 단계에서는 Elasticsearch에 쓰기위한 권장 인덱스 템플릿 을 로드하고 Kibana에서 데이터를 시각화하기위한 샘플 대시 보드를 배포합니다.

이 단계는 로그 라인을 구문 분석하는 데 사용되는 수집 파이프 라인을로드하지 않습니다. 기본적으로 수집 파이프 라인은 모듈을 처음 실행하고 Elasticsearch에 연결할 때 자동으로 설정됩니다.

5 단계 : Filebeat 시작

Filebeat를 시작하기 전에에서 사용자 자격 증명을 수정하고 이벤트 게시 권한filebeat.yml 이있는 사용자를 지정 합니다 .

Filebeat를 시작하려면 다음을 실행하십시오.

systemctl enable filebeat
systemctl start filebeat

로그확인

journalctl -u filebeat.service

6 단계 : Kibana에서 데이터보기

Filebeat는 로그 데이터 시각화를위한 사전 구축 된 Kibana 대시 보드 및 UI와 함께 제공됩니다. setup명령을 실행할 때 이전에 대시 보드를로드했습니다 .

대시 보드를 열려면 :

  1. Kibana를 시작합니다.

브라우저에서 http : // localhost : 5601을localhost 가리키고 Kibana 호스트의 이름으로 바꿉니다 .

2.측면 탐색에서 클릭 발견을 . Filebeat 데이터를 보려면 사전 정의 된 filebeat-*인덱스 패턴이 선택되어 있는지 확인하십시오 .

Kibana에 데이터가 표시되지 않으면 시간 필터를 더 큰 범위로 변경해보십시오. 기본적으로 Kibana는 지난 15 분을 표시합니다.

3.측면 탐색에서 대시 보드를 클릭 한 다음 열려는 대시 보드를 선택합니다.

대시 보드는 예제로 제공됩니다. 필요에 맞게 사용자 지정 하는 것이 좋습니다 .