django 기반alert 관리자 경고 및 경고 기록

django 기반alert 관리자 경고 및 경고 기록
alert 관리자의 스파이크 경고 인터페이스를 썼는데 그림이 붙지 않아서readme를 보러 갈 수 있습니다
github: https://github.com/huangwjwork/dingding_robot_alertmanager
django를 바탕으로 이루어진alert 관리자가 경고 메시지 전송을 박고 전송된 경고 내용을 기록한다. 이는 경고 이름, 실례, 시간, 횟수, 수신자 등을 포함한다.
경고 메시지는 mysql에 기록되고grafana를 통해 mysql를 조회하여 서로 다른 규칙 아래 TOP10의 경고를 표시합니다. 현재 경고를 해제하지 않았습니다. 그리고 최근 100개의 경고 기록이 있습니다.
경고에는 유니버설 필드만 저장되며, 사용자 정의 labels를 저장할 필요가 있으면 스스로 수정하십시오api/modules.py단일 receiver는 여러 개의 스파이크 로봇에 대응하여 스파이크 API의 분당 20회 제한을 해결하는 데 사용
현재 아직 학습 단계에 있어서 실현이 비교적 거칠고 이상 처리도 하지 않았으니 문제가 있으면 issue에서 지적해 주십시오
개발 환경
python 3.7.3
django 2.1.8
mysql 5.7.27
alertmanager v0.18.0
prometheus v2.11.2

구조 설명
dingding_robot_alertmanager/
├── api
│   ├── admin.py	# admin
│   ├── apps.py
│   ├── dingtalk.py	#    
│   ├── __init__.py
│   ├── models.py	#       
│   ├── templates
│   ├── test	#     ,   
│   │   ├── 000alert.py
│   │   ├── alert-msg.json	# alert json
│   │   ├── post_firing.py	# alertmanager post firing
│   │   ├── post_resolved.py	# alertmanager post resolved
│   │   ├── test_prometheus.yaml	# k8s    ,prometheus alertmanager  config
│   │   └── time_reverse.py		#     ,   
│   ├── tests.py
│   └── views.py	# api  
├── dingding_robot_alertmanager
│   ├── __init__.py
│   ├── settings.py		# django    
│   ├── urls.py
│   └── wsgi.py
├── grafana-dashboard	# grafana dashboard
│   └── alert-1566911356524.json
├── images	#   
│   ├── admin-index.bmp
│   ├── admin-receivers.bmp
│   ├── alert.bmp
│   └── grafana.bmp
├── manage.py
├── README.md
└── requirements.txt	# pip  

배치하다
Python3 설치 및 종속 패키지 설치
pip3 install -r requirements.txt

mysql 데이터베이스 만들기
create database prometheus_alert default charset utf8;

mysql 워크시트
python3 manage.py makemigrations api
python manage.py migrate

django admin 백그라운드 관리자 계정 만들기
python3 manage.py createsuperuser

응용 프로그램 시작
python3 manage.py runserver 0.0.0.0:8000

django admin 백그라운드http://localhost:8000/admin
백그라운드receivers에 못박이 로봇을 추가하면 같은receiver에 여러 개의 웹훅을 추가할 수 있습니다.receivernum 구분 및 표시
alert 관리자에receiver와route 추가
example.yml
global:
templates: 
- '/etc/alertmanager/template/*.tmpl'
route:
  group_by: ['alertname','job']
  group_wait: 30s
  group_interval: 15s
  repeat_interval: 1m
  receiver: 'ops'
  routes:
  - match:
      job: 'prometheus'
    receiver: 'dev'
    
receivers:
- name: 'dev'
  webhook_configs:
  - send_resolved: true
    url: 'http://192.168.0.3:8000'
- name: 'ops'
  webhook_configs:
  - send_resolved: true
    url: 'http://192.168.0.3:8000'

마지막으로grafana를 설치하고dashboardgrafana-dashboard/alert-1566911356524.json를 가져와 mysql 데이터 원본을 추가합니다
rpm -ivh https://dl.grafana.com/oss/release/grafana-6.3.3-1.x86_64.rpm

경고하다

좋은 웹페이지 즐겨찾기