Netdata 및 Ansible을 사용한 실시간 모니터링 배포
안녕, 조엘!나는 더 많은 사람들과 실시간 시스템과 응용 프로그램 모니터링을 배치하는 것을 돕고 있다.나는 이 Ansible 안내서가 너희들 중 일부가 비범한 인프라 시설을 구축하는 데 도움을 줄 수 있기를 바란다.
Netdataone-line kickstart는 0으로 구성되어 적응성이 강하며 대량의 다른 운영체제와 Linux 버전과 호환된다.베어 메탈, 가상 머신, 컨테이너 및 둘 사이의 모든 장치에서 사용할 수 있습니다.
그러나 인프라 모니터링 솔루션을 가능한 한 빨리 시작하려면 어떻게 해야 합니까?여러 노드가 있는 전체 인프라에 Netdata를 배치하려면 어떻게 해야 합니까?만약 이 배치를 신뢰할 수 있고 중복될 수 있으며 幂 등을 원한다면 어떻게 해야 합니까?인프라나 클라우드 모니터링 시스템, 예를 들어 코드를 작성하고 배치하려면 어떻게 해야 합니까?
EnterAnsible는 일반적인 시스템 프로비저닝, 구성 관리 및 인프라 코드(IaC) 툴입니다.Ansible은 Playbook을 사용하여 간단한 구문을 사용하여 많은 표준화된 작업을 결합한 다음 표준적이고 안전한 SSH 연결을 통해 이러한 작업을 실행합니다.원격 시스템에 설치할 수 있는 에이전트가 없기 때문에 응용 프로그램과 모니터링 소프트웨어만 걱정할 수 있습니다.
Ansible는 Puppet나 Chef 등과 약간의 경쟁이 있지만 Ansible의 가장 가치 있는 특징은 모든 요소가 幂 등이라는 것이다.출처:
An operation is idempotent if the result of performing it once is exactly the same as the result of performing it repeatedly without any intervening actions.
幂 등급은 노드가 실행 방식에 영향을 주지 않고 Ansible playbook을 임의로 실행할 수 있음을 의미합니다.Ansible을 사용하여 Netdata를 배치할 때, 코드로 배치하는 것도 감시합니다.
이 가이드에서는 Ansible glossary를 사용하여 Netdata Agent를 원하는 수의 분산 노드에 자동으로 배치하고 각 노드의 구성을 관리하며 이를 Netdata Cloud 계정에 선언하는 과정을 설명합니다.몇 분 안에 일부 모니터링되지 않은 노드에서 인프라 모니터링 솔루션으로 전환할 수 있습니다.
Ansible 시나리오 선결 조건
SSH 공개 키 시나리오 다운로드 및 구성
먼저 다운로드 를 통해 현재 디렉토리로 이동하고 Ansible playbook을 사용하는 데 필요하지 않으므로 클론 저장소의 나머지 부분을 삭제합니다.
git clone https://github.com/netdata/community.git
mv community/netdata-agent-deployment/ansible-quickstart .
rm -rf community
그런 다음 cd
Ansible 디렉토리에 들어갑니다.cd ansible-quickstart
극본 호스트 파일 편집
hosts
파일에는 Ansible이 playbook을 실행하려고 시도하는 IP 주소나 호스트 이름 목록이 포함되어 있습니다.저장소와 함께 제공되는 hosts
파일에는 두 개의 예제 IP 주소가 포함되어 있으며 노드의 IP 주소/호스트 이름을 기준으로 교체해야 합니다.203.0.113.0 hostname=node-01
203.0.113.1 hostname=node-02
로컬 프록시 대시보드와 Netdata Cloud에 동시에 나타나는 변수hostname
를 설정할 수도 있고, 시스템의 기본 호스트 이름을 사용하려면 hostname=
문자열을 완전히 무시할 수도 있습니다.로그인 사용자 설정(옵션)
root
이외의 사용자 신분으로 SSH를 노드에 연결하려면 이 사용자 이름에 따라 설정해야 한다hosts
.ansible_user
변수를 사용하여 로그인 사용자를 설정합니다.예를 들면 다음과 같습니다.203.0.113.0 hostname=ansible-01 ansible_user=example
SSH 키 설정(옵션)
~/.ssh/id_rsa
이외의 SSH 키 로그인 노드를 사용하는 경우 hosts
파일에서 ansible_ssh_private_key_file
변수를 노드별로 설정할 수 있습니다.예를 들어, AWS에서 제공하는 두 개의 서로 다른 SSH 키를 사용하여 Lightsail 인스턴스에 로그인합니다.203.0.113.0 hostname=ansible-01 ansible_ssh_private_key_file=~/.ssh/LightsailDefaultKey-us-west-2.pem
203.0.113.1 hostname=ansible-02 ansible_ssh_private_key_file=~/.ssh/LightsailDefaultKey-us-east-1.pem
vars/main을 편집합니다.yml 파일
Netdata Cloud에서 노드를 공간에 표시하고 에서 모든 지표를 실시간으로 보거나 composite charts 실행하려면
claim_token
변수와 claim_room
변수를 설정해야 합니다.claim_token
와 claim_room
를 찾으려면 Netdata Cloud로 이동한 다음 위쪽 내비게이션에서 공간 이름을 클릭하고 관리 공간을 누르십시오.나타나는 패널의 노드 탭을 클릭합니다. 패널에는 token
및 room
문자열이 있는 스크립트가 표시됩니다.Metric Correlations
문자열을
claim_token
및 claim_rooms
변수로 복사합니다.claim_token: XXXXX
claim_rooms: XXXXX
디스크 공간을 더 많이 할당하거나 적게 할당하여 메트릭을 저장하여 메트릭 보존 정책을 변경하려면dbengine_multihost_disk_space
기본값은 2048 Mib 또는 2GiB입니다.이 노드를 Netdata Cloud로 선언하고 노드의 IP 주소나 호스트 이름 대신 대시보드를 볼 것이기 때문에 플레이북은
web_mode
를 none
로 설정하여 로컬 대시보드를 비활성화합니다.로컬 계기판에 불필요한 접근을 허용하지 않기 때문에 안전성을 약간 높일 수 있습니다.우리 에서 이 결정에 대한 정보를 더 읽거나, 다른 방식으로 로컬 계기판을 잠글 수 있습니다.
Curious about why Netdata's dashboard is open by default? Read our blog post on that zero-configuration design decision.
노드 보안 문서 시나리오 실행
관리 시스템에서 시나리오를 실행하는 시간부터
ansible-playbook -i hosts tasks/main.yml
Ansible은 먼저 SSH를 통해 노드에 연결한 다음
시스템에 연결합니다.이 매뉴얼은 이러한 사실을 사용하지 않았지만, 사용자는 인프라 시설의 구성에 따라 이를 확장하여 특정한 유형의 시스템을 제공할 수 있습니다.다음에 Ansible은 시나리오에 정의된
tasks
와 collects facts에 따라 각 노드를 변경합니다. 모든 작업이 변경되거나 실패하거나 완전히 건너뛰었든 상관없습니다.Netdata를 설치하는 작업은 노드마다 몇 분 정도 걸리므로 기다려 주십시오!플레이북이 성명 작업에 도착하면 노드가 Netdata Cloud에 공간을 채우기 시작합니다.
되돌아오다 다음은요?
Netdata를 사용하세요!
Netdata를 사용하여 상태 모니터링 및 성능 문제 해결에 대한 지침이 더 필요하시면 을 참조하십시오.Netdata에 대해 무엇을 하고 싶은지에 대한 전면적인 안내서처럼 설계되었으니, 이러한 분류를 사용해서 깊이 있게 연구해 주십시오.
몇 가지 가장 좋은 출발점:
Reference
이 문제에 관하여(Netdata 및 Ansible을 사용한 실시간 모니터링 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/netdata/deploy-real-time-monitoring-with-netdata-and-ansible-3d49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)