준비물은 Grafana의 기본적인 설정과 시각화 할 수 있는 데이터 소스입니다. 현재 Grafana를 통해 Alert를 설정하고 있습니다.개인 프로젝트이기에 엄청 심화된 내용은 다루지 않으니 처음 하시는 분들이 참고하시기에 좋을 것 같습니다. 먼저 Grafana의 Alert 메뉴입니다.1. Alert rules - 임계값이나 여러 표현식을 사용하여 알람을 설정하는 메뉴입니다.2. Contact points - Alert message의 템플릿을 만들거나 Alert를 어떠한 플랫폼(gmail, slack 등)으로 전송할지 정하는 메뉴입니다.3. Notification policies - Label을 체계적으로 정리하여 그룹화 시켜 확인할 수 있는 메뉴입니다.4. Silences - 특정 시간에 Alert를..
분류 전체보기
먼저 준비물은 다음과 같습니다. ansible이 설치된 서버와 다른 pc와 연결된 상태여야 합니다. 연결이 됐는지 확인하려면 ansible hosts에 다른 pc IP를 입력한 후 ansible all -m ping 을 통해 연결이 됐는지 확인할 수 있습니다. 연결 방법에 대해서는 개개인의 설정이 다르기에 알맞은 정보를 찾아서 연결하셔야 됩니다. ping을 통해 연결이 된 것을 확인하면 다음과 같이 ansible playbook을 작성합니다. node-exporter.yml --- - hosts: exporter gather_facts: no tasks: - name: Create node-exproter dir # exporter가 설치 될 디렉토리를 만들어 줍니다. file: path: /home/d..
준비물은 Docker가 설치된 node pc가 필요하며, 해당 node pc와는 연결이 되어있는 상태여야 합니다. node pc에 Docker와 Docker-compose를 설치하는 방법은 아래와 같습니다. https://cleaning-toolbox.tistory.com/90 Ansible playbook으로 Docker를 설치시켜보자 준비물은 이렇습니다. Ansible의 hosts파일에 연결될 node pc의 IP를 작성하고, 해당 node pc를 ansible ping을 통해 연결이 된 후에 아래의 playbook을 실행시킬 수 있습니다. 위의 준비물은 다른 게시글에도 cleaning-toolbox.tistory.com docker-compose.yml version: "3" services: no..
현재 Grafana는 V8.4.4를 사용하고 있고 제가 원하는 바는 이렇습니다. 아래와 같은 Grafana의 대시보드가 있으면파랑색 박스는 그 전날과 비슷한 시간에 똑같이 CPU의 사용률이 올랐기에 Alert를 발생하지 않고빨간색 박스는 그 전날과 다르게 CPU의 사용률이 측정되었기에 Alert를 발생시킵니다. 이것을 응용한다면 어제가 아닌 지난 주의 값을 비교할 수 있고 반복적인 작업이 있다면 그 부분을 제외하고 Alert를 발생할 수 있는 것입니다. 위와 같이 설정하고 싶다면 Grafana의 Alert Rule의 쿼리 부분을 계산해야합니다.먼저 새로운 Alert Rule을 만든 다음 핵심적인 부분은 2개의 빨간색 박스입니다.먼저 전날과 비교하려면 총 2개의 Query와 3개의 Expression이..
준비물은 이렇습니다. Ansible의 hosts파일에 연결될 node pc의 IP를 작성하고, 해당 node pc를 ansible ping을 통해 연결이 된 후에 아래의 playbook을 실행시킬 수 있습니다. 위의 준비물은 다른 게시글에도 많기에 저는 playbook내용을 준비했습니다. 핵심인 playbook의 내용입니다. --- - hosts: exporter gather_facts: no tasks: - name: Create main dir # 없어도 되는 부분입니다. file: path: /home/daou_docker/exporters state: directory - name: Install packages # docker-compose를 위해 wegt을 설치해줍니다. vars: ansibl..
제가 원하는 바는 아래와 같습니다. Grafana에 알람이 발생했을 경우 그것을 Slack으로 확인하고 필요한 Command를 Slack에 날려주면 Flask(bot)이 이를 확인하여 Command를 실행시키는 것입니다. 코드는 아래와 같습니다. 준비물은 Salck bot의 토큰, Grafana의 Slack을 통한 알람, 실행할 Command가 필요합니다. import json, requests, subprocess from flask import Flask, request, make_response from slack_sdk import WebClient token = "" # Slack bot의 토큰 app = Flask(__name__) def post_message(token, channel, t..
·OS
제가 참고할 내용이기에 별 도움이 되진 않습니다. Xshell로 Gateway에 접속했으면 ~/.ssh 경로에 접속할 EC2 Pem키를 저장하고 chmod 400 key.pem 을 하여 권한을 줍니다. 그 후 ssh -i key.pem ec2-user@퍼블릭IP 를 하면 EC2에 접속됩니다.
·OS
Ansible Playbook을 통해서 다른 가상 서버에 node-exporter를 설치하였지만, 정상적으로 작동이 되지 않아 해당 서버에 접속해서 아래의 명령어를 작성했습니다. systemctl status node_exporter active(running)이 떴지만 해당 인스턴스 IP:9100으로 접속이 안되는 상황이었습니다. 뭔가 이상함을 느껴 아래와 같이 방화벽 포트를 설정해봤습니다. firewall-cmd --list-all - 방화벽 설정을 확인한 다음 firewall-cmd --add-port=9090/tcp --permanent firewall-cmd --add-port=9100/tcp --permanent 으로 방화벽 포트를 설정했습니다 firewall-cmd --reload 를 해주셔..