Datadog로 AWS EC2에서 로그 전송

4503 단어 DatadogAWS
Datadog에 임의의 로그를 전송하는 방법을 조사했습니다.

Datadog에 대한 로그 전송 방법



공식 매뉴얼 을 보면 여러가지 방식이 준비되어 있는 것을 알 수 있다.

Datadog Agent 경유로 보낼 뿐만 아니라, 기존의 여러가지 툴(Rsyslog, Syslog-ng, NXlog, FluentD, Logstash)과도 제휴할 수 있다는 것.

무엇이 기본인지 모르기 때문에, 우선 Datadog Agent 경유로의 로그 전송에 대해 조사해 보기로 했다.

Datadog Agent를 통한 로그 전송



Datadog Agent 경유로의 로그 전송은 기본적으로 비활성화 로 되어 있는 것 같고, 우선 그 활성화가 필요하다.
그런 다음 conf.yaml 파일을 만들고 모니터링 할 파일 이름을 나열합니다.

Datadog Agent의 다양한 설정 파일



환경: EC2, AmazonLinux

Datadog Agent의 설정 파일은 아래와 같은 구조로 되어 있었다.
$ pwd
/etc/datadog-agent

$ ls -al
total 168
drwxr-xr-x   7 dd-agent dd-agent  4096 Dec 29 17:01 .
drwxr-xr-x  80 root     root      4096 Dec 28 13:24 ..
-rw-------   1 dd-agent dd-agent    64 Dec 28 13:25 auth_token
drwxr-xr-x   2 dd-agent dd-agent  4096 Dec 11 15:20 checks.d
drwxr-xr-x   2 dd-agent dd-agent  4096 Dec 28 13:24 compliance.d
drwxr-xr-x 149 dd-agent dd-agent  4096 Dec 29 16:40 conf.d
-rw-r-----   1 dd-agent dd-agent 64795 Dec 29 16:37 datadog.yaml
-rw-r--r--   1 dd-agent dd-agent 64745 Dec 11 15:20 datadog.yaml.example
-rw-r--r--   1 root     root       117 Dec 28 13:25 install_info
drwxr-xr-x   2 dd-agent dd-agent  4096 Dec 28 13:24 runtime-security.d
drwxr-xr-x   2 dd-agent dd-agent  4096 Dec 28 13:24 selinux
-r--r-----   1 dd-agent dd-agent  1066 Dec 11 15:20 system-probe.yaml.example

로그 전송을 유효화하기 위한 설정 파일은 아래와 같다.

/etc/datadog-agent/datadog.yaml
    570 ##################################
    571 ## Log collection Configuration ##
    572 ##################################
    573
    574 ## @param logs_enabled - boolean - optional - default: false
    575 ## Enable Datadog Agent log collection by setting logs_enabled to true.
    576 #
    577 # logs_enabled: false


이것을 true로 수정하고 Agent를 다시 시작합니다.

맞춤 로그를 전송해보십시오.



이번에는 어떤 로그라도 좋기 때문에 개인적으로 좋아하는 에러 코드의 로그를 전송해 본다.

아래의 로그 파일을 작성.

/var/opt/alert.log
2020-12-29 17:07:13.000000 +09:00 ORA-00600: internal error code, arguments: [AAA], [BBB], [CCC], [DDD], [EEE]
2020-12-29 17:07:18.000000 +09:00 ORA-00600: internal error code, arguments: [AAA], [BBB], [CCC], [DDD], [EEE]

다음 설정을 추가하고 Datadog Agent를 다시 시작합니다.

/etc/datadog-agent/conf.d/mydatabase.d/conf.yaml
logs:
  - type: file
    path: "/var/opt/alert.log"
    service: "myoracle"
    source: "mydatabase"

재부팅 후 로그 파일에 몇 줄의 로그를 추가.
이것에 의해, 로그가 전송되고 있는 것을 확인할 수 있었다.


요약



Datadog로의 로그 전송은 매우 간단했으며 다양한 방법이 준비되어 있음을 알 수 있습니다. 매뉴얼도 매우 정중하게 기재되어 있어, 각종 서비스마다, 플랫폼마다, 버전마다 세세하게 쓰여져 있어 매우 알기 쉽다.
실제로 도입을 검토할 때에도 곤란한 일은 없을 것 같다.

커스텀 로그를 전송하는 경우에는 그 어플리케이션명이나 서비스명 등 Datadog측에서 분석할 때의 태그? 이해하고 올바르게 부여하는 것이 필요할 것으로 보인다.

메모



로그 전송을 수행하기 위해서는 Datadog Agent가 대상 파일을 읽을 수 있어야 한다.
Datadog Agent는 「datadog-agent 유저」로 동작하고 있기 때문에, 이 유저로부터 액세스 가능한 권한으로 할 필요가 있다.
당연히 말하면 당연하지만, 빠졌다. . .

공식 문제해결 가이드 에 여러가지 기재되어 있지만, Agent의 스테이터스 체크나, Agent의 로그등은 매우 참고가 되었다.

Datadog를 공식적으로 사용할 때 Agent의 로그를 datadog로 전송할 수 있습니까?

좋은 웹페이지 즐겨찾기