# Dec 5th, 2021: \[ko\] Elastic Agent, 어떻게 사용하는건가요?

**URL:** <https://discuss.elastic.co/t/dec-5th-2021-ko-elastic-agent/290012>\
**Category:** Advent Calendar\
**Created:** [December 5, 2021, 8:00am UTC](https://discuss.elastic.co/t/dec-5th-2021-ko-elastic-agent/290012 "2021-12-05T08:00:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![JongminKim](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jongminkim/32/15223_2.png) [@JongminKim](https://discuss.elastic.co/u/JongminKim)\
**Post date:** [December 5, 2021, 8:00am UTC](https://discuss.elastic.co/t/dec-5th-2021-ko-elastic-agent/290012/1 "2021-12-05T08:00:17Z")

</div>

소문만 무성하고 얼굴을 잘 보여주지 않았던 **Elastic Agent** 가 7.8 버전에서 드디어 출시가 되었고 GA 가 되었습니다. 그런데 아직 많이들 사용 해 보지 않으셨죠?

그래서, 오늘 한번 Elastic Agent 를 어떻게 사용하는지 한번 살펴보려고 합니다.

예전에는 Elasticsearch 로 데이터 수집을 위해서는 **Logstash** 그리고 **Beats** 를 활용했습니다. 물론 지금도 사용이 가능합니다. 특히 시스템 정보를 수집하는 **metricbeat** 과 로그 파일을 수집하는 **filebeat** 모듈을 활용하면 ingest pipeline, 인덱스 템플릿, 그리고 자주 사용되는 대시보드 까지 한번에 설치가 가능했습니다.

하지만 Beats 를 사용하다 보면 부족하다 싶은 점이 많았는데요, 예를 들면

> - Metricbeat, Filebeat, Packetbeat ... 역할에 따라 서로 다른 수집기를 따로 따로 설치해야 했습니다.
> - 설정을 yaml 파일에서 하고, 설정이 바뀌면 직접 재시작 해야 했습니다.
> - 중앙에서 수집기들을 한꺼번에 모니터링하거나 업그레이드가 불가능했습니다.

네. 그래서 나온 것이 **Elastic Agent** 입니다. 특히 Elastic Agent 는 Elastic 이 보안 솔루션 쪽에 힘을 싣게 되면서 보안 데이터를 수집하는 **Endpoint Security** 수집기와 **Apm 서버** 의 역할까지 통합 하였고, 수집기들을 중앙 관리 하는 **Fleet** 기능과 함께 사용되게 되었습니다.

Elastic Agent 는 공식 홈페이지의 **[다운로드 페이지](https://www.elastic.co/downloads/elastic-agent)** 에서 내려받을 수 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/8/98fd6fc4e10d214b5b6e7afcbf12c8b511a4ef2d.png)

하지만 더 간단하게 Kibana 의 Fleet 메뉴 에서 Add agent 버튼을 클릭해서 받을 수도 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/1/5/15e77d803dff49d355c9fa724ffdfe1d9bfae17f.png)

Elastic Agent 가 설치될 호스트에 맞는 운영체제의 파일을 내려받아 압축을 풀고 디렉토리 안에 있는 파일들을 살펴보면 다음과 같습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/4/c/4cc8e6ba92051eff7a6abf6a37ac2c9b6f1ae4dd.jpeg)

apm-server, endpoint-secyrity, filebeat, metricbeat, heartbeat 들의 압축 파일들이 agent 안에 포함되어 있는 것이 보입니다.

그 다음은 agent 에 연결될 policy 를 지정해 줘야 하는데, 우선 미리 만든 agent policy 가 없기 때문에 처음부터 생성되어 있는 Default policy 를 선택합니다. Default Policy 는 system 메트릭을 수집합니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/d/fdf06bc09d6b76f3be6d9c1a3e6d603c95476d83.png)

그 다음에는 Elasticsearch 클러스터와 Elastic Agent 를 연결 해 줍니다. 이 과정을 **enroll** 이라고 합니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/3/7/372ded1496c5c77a6dace8e556ccb171377c1d39.png)

Elastic Agent 압축을 푼 경로에서 enroll 명령을 실행 해 줍니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/0/9/09344f3495ade0469b2336d1fa41f641c1811aef.png)

elastic agent 가 실행되고, ps 명령으로 실행중인 프로세스를 살펴보면 elastic-agent 의 fleet-server 가 모 프로세스로 filebeat, metricbeat 들을 실행시키고 관리중인 것을 확인할 수 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/2/f/2f7addb324dc35a1ecb33d0aec79c401241b5734.jpeg)

이제 호스트의 정보가 enroll 된 elastic 클러스터로 수집이 됩니다. kibana 의 fleet 메뉴에서도 방금 설치한 agent 가 실행중인 것을 확인할 수 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/2/f25fe7e50e04c373b905a24d7d14e747be3868af.png)

여기서 host 이름 또는 agent policy 링크를 클릭 해서 들어가보면 agent 의 수집 설정을 바꾸거나 수집되고 있는 실시간 데이터를 볼 수도 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/1/2/12f8d15cbf3c1b34c15527070695dcc40d76b45c.png)

수집하는 데이터의 종류는 integration 메뉴에서 수정하거나 추가할 수 있습니다. policy 라는 이름으로 수집할 데이터를 묶고, 그 policy 를 elastic agent 에 적용하는 식으로 수집 정보를 설정합니다.

한번 system 메트릭과 nginx 로그를 수집하는 policy 를 만들고 아까 설치한 agent 에 적용을 해 보겠습니다. Integrations 메뉴에 가서 Nginx 를 찾아 들어갑니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/4/94f2876226c4e0ba0c8c94a64622ce481f0e9f94.png)

Add Nginx 버튼을 클릭합니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/0/907aac1d1471d6a82695f8e4b4200a5a8de738ed.png)

Integration 이름을 설정하고, (여기서는 my-nginx 라고 했습니다) access.log 와 error.log 로그 파일이 저장되는 올바른 경로를 입력 해 줍니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/8/98d522666d222f09a1a4ba7319103efcd53e7595.png)

metric 도 같이 수집할 수 있도록 접속 정보도 입력하고

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/1/b/1b5ee0264416fb1838e29b75753f29af2eb58258.png)

현재 Default Policy 로 되어 있는 Agent policy 옆에 새 정책을 추가하기 위해 Create agent policy 링크를 눌러 새로운 정책도 등록합니다. 여기서는 정책 이름을 system and nginx 라고 했습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/7/2/72a7369bdbedfcef753e3ffabfaab32a4758f8b3.png)

그리고 Save integration 버튼을 눌러 integration 을 저장 해 줍니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/d/7/d745ccd0a5187ab720eed6984c355964f4eec799.png)

integration 목록에서 방금 만든 system and nginx 정책 이름을 클릭하면 정책의 상세 내용을 볼 수 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/b/a/bac3427a77fb4cf870f759c21a053f72f5f4b0ed.png)

system integration 도 이미 추가가 되어 있네요. 여기에 다른 integration 을 더 추가하고 싶으면 Add integrations 버튼을 눌러 추가하거나, 각 integrations 의 우측에 ... 이미지를 눌러 이미 있는 integration 을 편집하거나 삭제할 수도 있습니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/a/6/a6e8e29b7bdea3a9c1e403bb3101925982dc16ff.png)

이제 다시 **Fleet** 메뉴에 가서 처음 설치한 agent 에 assign new policy 를 선택하고 방금 만든 system and nginx 정책을 적용하면 이제 Elastic Agent 가 nginx 로그도 같이 수집하게 됩니다.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/b/3/b33b00a80e60d08cd4417e46c801ef35e586a967.png)

지금까지 과정의 3줄 요약입니다.

> - **Elastic Agent 를 내려받고 enroll 해서 Elastic 클러스터에 연결한다**
> - **Integrations 에서 수집할 로그의 종류들을 설정하고 policy 로 묶는다**
> - **Fleet 에서 실행중인 agent 에 policy 를 적용한다.**

![image](https://us1.discourse-cdn.com/elastic/original/3X/1/6/16c27f8b60997df5fee1e9b8798666960f20ca2d.jpeg)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 2, 2022, 8:00am UTC](https://discuss.elastic.co/t/dec-5th-2021-ko-elastic-agent/290012/2 "2022-01-02T08:00:58Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
