Gnoti

ELK설치 6편 (Metricbeat)

Metricbeat은 다양한 시스템 및 서비스 메트릭을 수집하여 지정된 출력 대상에 제공하는 경량 log수집기입니다.

Metricbeat은 사용자 환경의 다른 서버에 설치되며 성능 모니터링뿐만 아니라 서버에서 실행중인 다른 외부 서비스의 성능 모니터링에도 사용됩니다. 예를 들어, Metricbeat을 사용하여 시스템 CPU, 메모리 등을 모니터링하고 분석 할 수 있습니다. 

서버스펙

운영 서버에 필요한 CPU, RAM, 저장장치
  – OS : Centos 7
  – CPU : 4core
  – RAM : 4GB
  – JAVA : Openjdk 8

Metricbeat 설치

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.2-x86_64.rpm

rpm -vi metricbeat-6.4.2-x86_64.rpm

# vi /etc/metricbeat/metricbeat.yml

kibana 대시보드, 수집된 데이터를 elasticsearch로 보내기 위한 설정

시스템 모듈 활성화

metricbeat modules enable system

Metricbeat 실행

#metricbeat setup

#metricbeat -e -c /etc/metricbeat/metricbeat.yml

Windows, Centos 복수대의 서버에 Metricbeat를 실행한 결과

ELK설치 5편 (Application Performance Monitoring)

안정적인 서비스 운영을 위해 꼭 필요한 APM(Application Performance Management)을 구성하여 현재 시스템의 어느 곳이 성능 병목 구간인지, 어떤 에러가 발생하는지 추적해보겠습니다.

APM 설치

APM서버 다운로드 및 설치

환경설정

vi /etc/apm-server/apm-server.yml

APM서버 실행

/usr/share/apm-server/bin/apm-server -c /etc/apm-server/apm-server.yml

APM Agent 다운로드

https://search.maven.org/search?q=a:elastic-apm-agent

https://search.maven.org/remotecontent?filepath=co/elastic/apm/elastic-apm-agent/0.7.0/elastic-apm-agent-0.7.0.jar

APM Agent 실행

java -javaagent:/home/min/elastic-apm-agent-0.7.0.jar -Delastic.apm.service_name=my-application -Delastic.apm.server_url=http://localhost:8200 -Delastic.apm.application_packages=org.example -jar my-application.jar

또는
 # vi /home/min/apache-tomcat-7.0.91/bin/catalina.sh 에 이하 내용 추가

APM Agent 서비스 실행 실패의 경우

서비스 기동후, Tomcat서버에서 ELK서버로의 connect 실패의 경우

ELK서버에서 # vi /etc/elasticsearch/elasticsearch.yml 

network.host: 0.0.0.0

변경 후, elasticsearch 재기동하면 접속 성공

ELK설치 4편 (Tomcat log Visualization)

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA, Beats)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

Tomcat서버에서 수집된 로그를 kibana에서 모니터링 합니다.

수집된 데이터의 시각화

menu Visualize 선택 후, [Create a visualization] 클릭
Line, Area and Bar charts, Heat maps, Pie chart, Data table, Maps 등 다양한 차트 중, 파이 차트를 선택합니다.

파이차트에 표시할 데상 데이터 셋을 선택

Y축에 대한 메트릭 집계(Sum, Count 등)을 선택하고 실행 버튼을 클릭하면 원하는 데이터가 표시됨

ELK설치 3편 (Tomcat log monitoring with Kibana)

ELK설치 및 모니터링 테스트 3편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA, Beats)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

Tomcat서버에서 수집된 로그를 kibana에서 모니터링 합니다.

Kibana 로그인 화면

http://localhost:5601/

Elasticsearch Index 생성

 

1) Elasticsearch index, 2) Kibana index patterns

 

1) Elasticsearch Index

Health 상태

RED : 일부 또는 전부가 준비되지 않음.
YELLOW : Elasticsearch가 모든 기본 샤드를 할당했지만 복제본의 일부 또는 전부가 할당되지 않음
GREEN : 클러스터가 완전히 작동중.Elasticsearch는 클러스터 내의 시스템에 모든 샤드 및 복제본을 할당 할 수 있음

2) Kibana Index Patterns

Elasticsearch 색인의 데이터 시각화
index pattern 선택
filebeat로 수집된 데이터의 메터 정보 확인

Discovery menu에서 수집된 데이터 확인

수집된 데이터가 5초 간격으로 표시

Discover 페이지에서 대화식으로 데이터를 탐색 할 수 있고 선택한 색인 패턴과 일치하는 모든 색인에 대해 액세스 할 수 있습니다. 해당 데이터를 선택 할 경우, 수집된 상세 내용도 확인 가능 합니다.

ELK설치 2편 (Tomcat, Filebeat 설치 및 logstash연결)

ELK설치 및 모니터링 테스트 2편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA, Beats)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

1편에 이어서 tomcat서버에 beats를 설치하고 elasticsearch 와 kibana연동을 목표로 합니다.

BEATS 설치

filebeat 다운로드
# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

filebeat 설치
# yum install filebeat-6.4.2-x86_64.rpm

filebeat 환경설정filebeat 다운로드
# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

filebeat 설치
# yum install filebeat-6.4.2-x86_64.rpm

 filebeat 환경설정

# vi /etc/filebeat/filebeat.yml

filebeat.prospectors:

– input_type: log
paths:
– /home/min/apache-tomcat-7.0.91/logs/*.txt

output.logstash:
hosts: [“192.168.0.113:5044”]

filebeat 실행

 # /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -d “publish”

ELK서버에서 logstash 실행

# /usr/share/logstash/bin/logstash -f /etc/logstash/tomcat.conf

ELK서버에서 tomcat서버의 로그 수집을 위한 환경 설정

/usr/share/logstash/bin/logstash -f /etc/logstash/tomcat.conf

# [Beats input plugin]
# listen on port 5044 for incoming Beats connections
input {
beats {
port => 5044
}
}

# The filter part of this file is commented out to indicate that it is
# optional.

filter {
grok {
match => [ “message” , “%{IPV4:clientIP} – %{NOTSPACE:user} \[%{DATA:timestamp}\] \”%{WORD:method} %{NOTSPACE:request} HTTP/1.1\” %{NUMBER:status} %{NUMBER:bytesSent}” ]
}
geoip {
source => “clientip”
}
}

# [Elasticsearch output plugin]
# index into Elasticsearch
output {
elasticsearch {
hosts => “localhost:9200”
manage_template => false
index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”
}
}

ELK설치 1편 (Elasticsearch,Logstash,Kibana) 설치

ELK설치 및 모니터링 테스트 1편

CENTOS 7에서 ELK(ELASTICSEARCH, LOGSTASH, KIBANA)를 구축하고 TOMCAT서버 를 실시간 모니터링 하는 방법을 설명합니다.

  • Beats 6.4.2 : 가벼운 데이터 수집기. 로그, 메트릭, 네트워크, 이벤트, 감사데이터, 가동시간 모니터링 등을 실시간 수집
  • Logstash 6.4.2 : 데이터 집계, 변환, 저장. 다양한 소스에서 동시에 데이터를 수집하여 변환한 후 분석, 변환하여 저장소(elasticsearch)에 전달
  • Elasticsearch 6.4.2 : 분산형 RESTful 검색 및 분석 엔진. 정형, 비정형 데이터, 위치정보, 메트릭등 다양한 데이터를 원하는 방식으로 검색하고 저장
  • Kibana 6.4.2 : 로그 검색, 관계 분석 등을 위한 인터랙티브 시각화 도구

목표 시스템 구성도.

서버스펙

운영 서버에 필요한 CPU, RAM, 저장장치
  – OS : Centos 7
  – CPU : 4core
  – RAM : 4GB
  – JAVA : Openjdk 8

Elasticsearch 설치

Elasticsearch 다운로드
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

Elasticsearch 설치
# yum install elasticsearch-6.4.2.rpm

kibana설치

kibana 다운로드
# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpm

kibana 설치
# yum install kibana-6.4.2-x86_64.rpm

Logstash 설치

logstash 다운로드
# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm

logstash 설치
# yum install logstash-6.4.2.rpm

kibana & elasticsearch & logstash 기동

[root@localhost min]# systemctl start elasticsearch

 

[root@localhost min]# systemctl start kibana

[root@localhost min]# systemctl start logstash

설치 관련 로그 위치

[root@localhost elasticsearch]# pwd
/var/log/elasticsearch
[root@localhost elasticsearch]# ls -al
합계 144
drwxr-x—. 2 elasticsearch elasticsearch 218 10월 11 00:56 .
drwxr-xr-x. 20 root root 4096 10월 11 00:15 ..
-rw-r–r–. 1 elasticsearch elasticsearch 8068 10월 11 00:56 elasticsearch.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_access.log
-rw-r–r–. 1 elasticsearch elasticsearch 263 10월 11 00:56 elasticsearch_deprecation.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_index_indexing_slowlog.log
-rw-r–r–. 1 elasticsearch elasticsearch 0 10월 11 00:56 elasticsearch_index_search_slowlog.log
-rw-r–r–. 1 elasticsearch elasticsearch 66276 10월 11 01:10 gc.log.0.current