CloudNet@ 팀의 가시다님께서 Leading 하시는 A101 Study 4주차 스터디 내용 정리
해당 스터디는 '앤서블로 시작하는 인프라 자동화' 책을 기반으로 진행하였습니다.
실습 환경은 'Control Node 1 대 + Target Node 3대' 로 구성하였습니다.
1. 모니터링 자동화
앤서블은 시스템 정보를 수집하는 팩트 기능을 제공합니다.
팩트 기능을 사용하여 시스템 기본 정보를 모니터링하고
CPU, Memory 사용률, 네트워크 상태 등을 다른 모니터링 도구에서 활용할 수 있도록 로그를 저장할 수 있습니다.
1.1. 팩트를 이용한 시스템 모니터링
상황
팩트를 이용하여 실행 중인 관리 노드의 인프라 정보를 파악하거나 이를 로그로 저장할 수 있습니다.
사전 분석
- 팩트를 이용하여 다음과 같은 정보 추출
- 호스트 이름
- 커널 버전
- 네트워크 인터페이스 이름
- 네트워크 인터페이스 IP 주소
- 운영체제 버전
- CPU 개수
- 사용 가능한 메모리
- 스토리지 장치의 크기 및 여유 공간
- 추출한 내용은 ansible.builtin.shell 모듈을 이용하여 /var/log/daily_check 디렉터리에 저장
플레이북 설계
- monitoring_facts.yml
플레이북 실행
다음과 같이 시스템 정보가 로그로 출력된 것을 확인할 수 있습니다.
1.2. CPU, 메모리, 디스크 사용률 모니터링
사전 분석
- 팩트에서 제공되지 않은 정보를 모니터링해야되는 상황
- 자세한 CPU, 메모리, 디스크 사용률 모니터링을 위해 dstat, iostat, vmstat 명령어 사용 → 툴 설치 필요
- 각각의 명령어 실행은 ansible.builtin.shell 이용하여 실행하고, loop 키워드를 이용하여 모니터링 명령어별로 여러 옵션을 추가하여 명령 실행
- 실행된 명령어 결과는 로그 디렉터리에 저장
플레이북 설계
별다른 구성 없이 메인 플레이북 하나를 생성합니다.
- vars_packages.yml
- monitoring_system.yml
플레이북 실행
디스크 사용률 외에도 네트워크, CPU, Memory 사용률 등을 확인할 수 있습니다.