AWS

AWS MSK+Docker+Prometheus+Grafana(테스트)

KK_Ryong 2023. 3. 6. 18:11

aws 문서
https://catalog.us-east-1.prod.workshops.aws/workshops/c2b72b6f-666b-4596-b8bc-bafa5dcca741/en-US/openmonitoring/installwithdocker

도커 설치
sudo yum install docker -y

도커 서비스 실행
sudo service docker start

sudo 명령어 없이 commands 실행
sudo usermod -aG docker ec2-user

디렉토리 생성
/home/ec2-user/prometheus 

yml.json 파일 생성 

-------------------------------------------------------------------------------------------------------------------
■■■prometheus.yml■■■
-------------------------------------------------------------------------------------------------------------------
# file: prometheus.yml
# my global config
global:
  scrape_interval:     10s

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
  static_configs:
  # 9090 is the prometheus server port
  - targets: ['localhost:9090']
- job_name: 'broker'
  file_sd_configs:
  - files:
    - 'targets.json'
-------------------------------------------------------------------------------------------------------------------
■■■targets.json■■■
-------------------------------------------------------------------------------------------------------------------
[
  {
    "labels": {
      "job": "jmx"
    },
    "targets": [
      "b-1.cocomskcluster01.lg9j5t.c4.kafka.ap-northeast-2.amazonaws.com:11001",
      "b-2.cocomskcluster01.lg9j5t.c4.kafka.ap-northeast-2.amazonaws.com:11001"
    ]
  },
  {
    "labels": {
      "job": "node"
    },
    "targets": [
      "b-1.cocomskcluster01.lg9j5t.c4.kafka.ap-northeast-2.amazonaws.com:11002",
      "b-2.cocomskcluster01.lg9j5t.c4.kafka.ap-northeast-2.amazonaws.com:11002"
    ]
  }
]
-------------------------------------------------------------------------------------------------------------------

도커 런 
docker run -d -p 9090:9090 --name=prometheus -v /home/ec2-user/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /home/ec2-user/prometheus/targets.json:/etc/prometheus/targets.json prom/prometheus --config.file=/etc/prometheus/prometheus.yml

EC2 ip:9090으로 접속 테스

-------------------------------------------------------------------------------------------------------------------
■■■Grafana■■■
 
도커 런
docker run -d -p 3000:3000 --name=grafana -e "GF_INSTALL_PLUGINS=grafana-clock-panel" grafana/grafana

접속(admin/admin)
ip:3000

prometheus 연동
Configuration - Add data source - prometheus 선택 - URL = ip:9090 // cookies Server - Save&test (오류 시 보안그룹에 EC2 IP 넣기)

대시 보드
https://grafana.com/grafana/dashboards (https://grafana.com/grafana/dashboards/?search=msk msk 대시보드)
Dashboards - import - 해당 코드 넣기

차후에는 커스텀

-------------------------------------------------------------------------------------------------------------------
■■■telegram 연동■■■

■Token 발급■
Alerting - Contact points - Telegram (토큰 먼저 생성)

Telegram bot token 생성
검색창에 BotFather 검색
V표 선택

/newbot

username 은 텔레그렘 시스템 안에서 중복 안되게 뒤에 bot 으로 끝나게끔
token 값 받아서 grafana에 입력

■ChatID 발급■
웹브라우저에 https://api.telegram.org/bot{토큰값}/getUpdates
(bot11111AAAA...) 약간 시간 걸림

쭉 값이 나오는데 음수 값이 ChatID 

grafana에 입력 하기 

알람 받을 방은 아까 만든 bot 이름을 채팅방에 초대 하면 그쪽으로 알람이 옴