dd-agent로 RDS MySQL을 모니터링하려고했습니다.
개요
Datadog에서는 MySQL을 모니터링하기 위한 MySQL Integration이 제공되고 있지만, 기본적으로 MySQL이 가동하고 있는 서버에 datagg-agent를 인스톨 해 localhost의 mysqld로부터 데이터를 취득하는 것을 상정해 각종 문서 등이 쓰여져 있는 느낌이 있다.
RDS에서 MySQL을 이용하고 있는 경우, CloudWatch로 취득할 수 있는 값은 제작도 없이 Datadog에 먹일 수 있는 것이지만, 간신히 OS 리소스적인 메트릭스가 많아, MySQL 고유의 값을 모니터링의 대상으로 하고 싶은 경우 부족하다 .
따라서 다른 서버에 datadog-agent를 설치하고 거기에서 RDS에 연결하여 Datadog에 데이터를 가져올 수 있습니다.
했던 일
RDS 보안 그룹 설정
AWS 전문가의 형제라면 특히 설명이 필요하지 않으므로 생략
Datadog용 사용자 만들기
RDS의 MasterUser를 사용해도 모니터링은 가능하지만, 후술하는 바와 같이 설정 파일(mysql.yaml)에 UserID/Password를 임베드할 필요가 있기 때문에 권한이 강한 유저를 사용하는 것은 추천할 수 없다. 따라서 읽기 전용 사용자를 만들어야합니다.
MySQL Integration의 인스톨 화면의 Configuration 탭에 아래와 같은 유저 작성 순서가 있다.
sudo mysql -e "CREATE USER 'datadog'@'localhost' IDENTIFIED BY 'GENERATED_PASSWORD';"
sudo mysql -e "GRANT REPLICATION CLIENT ON *.* TO 'datadog'@'localhost' WITH MAX_USER_CONNECTIONS 5;"
If you'd like to get the full metrics catalog please also grant the following privileges:
sudo mysql -e "GRANT PROCESS ON *.* TO 'datadog'@'localhost';"
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'datadog'@'localhost';"
위의 예에서는 datag@localhost라는 사용자를 만들고 *. *에 대해 REPLICATION을 허용하도록 권한을 설정합니다.
또한 모든 메트릭을 취하고 싶은 경우는 *.*에 대해서 SELECT, performance_schema.*에 대해서 SELECT를 허가하라는 것이다.
이대로의 순서로 유저를 만들면 localhost만이 접속할 수 있게 되어 버리기 때문에, 아래와 같이 변경했다.
(요점은 @localhost
sudo mysql -e "CREATE USER 'datadog' IDENTIFIED BY 'GENERATED_PASSWORD';"
sudo mysql -e "GRANT REPLICATION CLIENT ON *.* TO 'datadog' WITH MAX_USER_CONNECTIONS 5;"
sudo mysql -e "GRANT PROCESS ON *.* TO 'datadog';"
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'datadog';"
/etc/dd-agent/conf.d/mysql.yaml에 모니터링 대상 설정
datadog-agent가 실행중인 서버의/etc/dd-agent/conf.d/mysql.yaml에 대상 RDS의 정보를 설정합니다.
원래 mysql.yaml.example 가 존재하고 있으므로,
cp mysql.yaml.example mysql.yaml
라고 하는 느낌으로 오리지날을 보존한 상태로 mysql.yaml 를 작성해, 수정하는 것이 좋다고 생각한다.필자가 사용하고 있는 것은 아래와 같이 샘플 기술을 모두 지운 것이 되고 있다.
init_config:
instances:
- server: rds1.hogehoge.ap-northeast-1.rds.amazonaws.com
user: datadog
pass: YOUR_GENERATED_PASSWORD
tags:
- dbname:rds1
- server: rds2.hogehoge.ap-northeast-1.rds.amazonaws.com
user: datadog
pass: YOUR_GENERATED_PASSWORD
tags:
- dbname:rds2
전술한 바와 같이 복수의 RDS가 기술될 수 있다. 또한 태그에 태그를 설정하면 dashboard 등으로 대상 RDS를 지정할 때 태그를 사용할 수 있습니다.
대시보드에서 설정
이상
Reference
이 문제에 관하여(dd-agent로 RDS MySQL을 모니터링하려고했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takashi0314/items/f487c77736113229bc62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)