로그 수집 목적은 대부분은 수치 데이터를 연산, 시각화, 분석해 사용자에게 더 좋은 서비스를 제공하는 것입니다. 비츠 제품 중 Metricbeat는 대상 호스트의 OS 관련 수치나 호스트에서 동작하는 여러 서비스의 수치 데이터를 수집할 목적으로 개발되었습니다. 대상 호스트에 설치하면 데이터를 수집해 로그스태시로 전달, 가공시키거나 엘라스틱서치로 직접 인덱싱하게 할 수 있습니다. 잘 알려진 데이터 형식(Apache, Jolokia, Nginx, MongoDB, MySQL, PostgreSQL, Prometheus 등)은 모듈을 사용해 더 쉽고 간편하게 데이터를 수집하고 시각화 할 수 있습니다.
이 실습에서는 별도의 어플리케이션의 데이터가 아닌 로컬 호스트에서 발생하는 메트릭을 수집하여 엘라스틱서치에 색인하고, Metricbeat 모듈의 기능을 사용하여 간단하게 대시보드를 구성해 볼 것입니다.
ElasticStack 설치 (based Docker)
metricbeat 실행
docker-compose up -d --no-deps --no-recreate metricbeat
키바나에서 Discover 페이지로 이동
metricbeat에 의해 수집된 데이터 확인

metricbeat 컨테이너로 접속
docker exec -it metricbeat bash
현재 설정 확인
cat metricbeat.yml
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml --- 1
reload.enabled: false --- 2
processors:
- add_cloud_metadata:
output.elasticsearch: --- 3
hosts: ['elasticsearch:9200']
protocol: "https"
username: elastic
# Read PW from metricbeat.keystore
password: "${ELASTIC_PASSWORD}"
ssl.certificate_authorities: ["/usr/share/metricbeat/certs/ca/ca.crt"]
setup.kibana: --- 4
host: "<http://kibana:5601>"
username: elastic
password: "${ELASTIC_PASSWORD}"
protocol: "http"
ssl.enabled: false
ssl.certificate_authorities: ["/usr/share/metricbeat/certs/ca/ca.crt"]
xpack.monitoring.enabled: true
활성화 된 모듈 확인
./metricbeat -c metricbeat.yml modules list
Enabled:
system
Disabled:
aerospike
apache
ceph
couchbase
docker
dropwizard
... 생략 ...
modules.d 디렉토리 하위의 비활성화된 모듈을 활성화 하려면 아래 명령 실행
./metricbeat -c metricbeat.yml modules enable mysql
모듈 기능을 사용하여 키바나에 각종 차트들과 대시보드를 생성하려면 다음 명령 실행
./metricbeat -c metricbeat.yml setup --dashboards