Django简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。

Django环境安装

操作系统要求

Centos7.5以上

1、安装python3和pip3

版本信息:Python-3.8.0a1和pip-20.0.2

2、安装Django

版本信息:Django-3.0.3(注:离线环境可能需要sqlparse 0.3.0、pytz 2019.3、asgiref 3.2.3等安装包,下载地址:https://pypi.org/search)

3、Sqlite3升级

版本信息:sqlite-autoconf-3280000

4、安装psycopg2

版本信息:psycopg2-2.8.4(注:确认centos已安装postgresql-devel)

5、安装uwsgi

版本信息:uwsgi-2.0.18

对接alertmanager

alertmanager配置:
alertmanager.yml

global:resolve_timeout: 5mroute:group_by: ['alertname','severity','hosttype']group_wait: 10sgroup_interval: 10srepeat_interval: 1hreceiver: 'webhook'
receivers:
- name: 'webhook'webhook_configs:- url: 'http://localhost:9999/receivefromprometheus/'

Django接收告警信息功能模块:

receivefromprometheus.py

# -*- coding: utf-8 -*-
from PgModel.models import Warn_Info,Warn_List #引用定义好的表对象
from django.http import HttpResponse
from django.shortcuts import render
import datetime
import pytz
import logging
import json
from . import selectpg
from django.core import serializers
from . import modelcontrol
models = [Warn_Info,Warn_List]
def receivefromprometheus(request):postBody=request.body #接收alertmanager消息体,一般为json格式data= json.loads(postBody) #将json格式消息体转换为字典f = open('/opt/test.txt', 'a+') #记录消息体,方便问题跟踪,及确认解析方法current_time=datetime.datetime.now()f.write(datetime.datetime.strftime(current_time,'%Y-%m-%d %H:%M:%S')+'\n')for var in data.get("alerts"): #结构化alertmanager消息体warn_status=var['status']warn_id=var['annotations']['warnid']warn_id_foreign=Warn_Info.objects.get(id=warn_id)current_value=var['annotations']['value']f.write(warn_status+'\n')           warnlist=Warn_List.objects.filter(warn_id=warn_id,warn_status='firing')if warn_status=='firing' and len(warnlist)==0:  #如果消息体为预警状态,判断之前未存在未恢复同类告警,则插入告警信息warnlistadd=Warn_List(current_value=current_value,warn_id=warn_id_foreign,warn_status=warn_status)warnlistadd.save()elif warn_status=='resolved' and len(warnlist)>0: #如果消息体为恢复状态,判断之前存在未恢复同类告警,则更新告警状态warnlist.update(warn_status='resolved',end_time=current_time)elif warn_status=='firing' and len(warnlist)>0: #如果消息体为恢复状态,判断之前存在未恢复同类告警,则更新告警当前值warnlist.update(current_value=current_value,end_time=current_time)f.close()return HttpResponse('success')

效果展示

左侧目录树包含四类告警类型,子菜单为监控主机IP,主机下挂对应的告警指标,如CPU、内存等。

Django自研告警平台-让告警排好队相关推荐

  1. 统一告警平台设计方案

    功能概述:主动告警.被动告警.系统告警.项目性能告警.业务告警 告警指标:成功率.服务响应时间.longUrl.longSQL.OOM .服务离线.健康检查.服务器性能.自动扩缩容,以及恢复 日志埋点 ...

  2. 这样建统一告警平台,运维的告警麻痹症有救了

    一.背景 一套监控系统的检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人.vivo监控系统1.0时代各个监控系统分别维护一套计算.存储.检测.告警收敛逻辑,这种架构下对底层数 ...

  3. vivo统一告警平台建设与实践

    作者:vivo互联网服务器团队-Chen Ningning 一.背景 一套监控系统检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人.vivo监控系统1.0时代各个监控系统分别 ...

  4. vivo统一告警平台设计与实践

    一.背景 一套监控系统检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人.vivo监控系统1.0时代各个监控系统分别维护一套计算.存储.检测.告警收敛逻辑,这种架构下对底层数据 ...

  5. 设计一个靠谱的监控告警平台

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  6. 云告警平台 OneAlert :如何帮助运维工程师做好汇报?

    OneAlert 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,可集成 Zabbix ,Nagios ,Solarwinds ,AWS CloudWatch ,阿里云 ,监 ...

  7. OneAlert:国内首家 SaaS 模式的云告警平台

    2019独角兽企业重金招聘Python工程师标准>>> 随着互联网行业的高速发展,企业 IT 应用环境日趋复杂.几分钟的故障就会严重到用户体验,那么如何有效降低IT故障带来的影响呢? ...

  8. Zabbix(五)利用Zabbix部署onealert云告警平台

    一.利用Zabbix部署onealert云告警平台 人的精力是有限的,当我们部署好zabbix监控,为监控主机添加各种监控项完毕之后,不可能时时刻刻去盯着我们的主机看,如果一个主机出现异常,我们该如何 ...

  9. 中国首个 SaaS 模式的云告警平台 iOS 版 APP 上线

    2019独角兽企业重金招聘Python工程师标准>>> 今天上午,国内首个 SaaS 模式的云告警平台 OneAlert 正式发布 ios 版 APP,每个 ios 用户,无需电脑, ...

最新文章

  1. MVC--Razor(2)
  2. qtdesigner设计表格_QT Designer基础——登录界面设计基础版
  3. 使用HttpMessageConverter实现HTTP的序列化和反序列化
  4. SAP Fiori Elements - object detail batch roundtrip triggered by binding property in embedded xml vie
  5. 使用nginx+tomcat实现动静分离
  6. 【leetcodeMySQL每周一练】- 5道题带你练习mysql
  7. app启动页自动跳转源码_Jenkins集成appium自动化测试(Windows篇)
  8. devops 解决了啥问题_您的DevOps有什么问题?
  9. OxA6可以作为C语言常量吗,淮阴师范学院期末考试c语言题库
  10. angular.isString()
  11. 发现这里才是我的地方
  12. 产品案例分析 - 华为软件开发云
  13. 威联通服务器操作系统,QNAP 威联通 453BT3 网络存储服务器 使用手记,Nas中的小钢炮...
  14. 运行npm install 出现thon Python is not set from command line or npm configuration解决方案
  15. 使用INT4/INT类型替换INT8/BIGINT类型能够节省多少磁盘空间?
  16. 社区生态 | openEuler、龙蜥Anolis、统信UOS三大主流操作系统下编译GreatSQL二进制包
  17. Win7安装Python补丁要求
  18. php手册学习记录(入门指引处理表单)
  19. android版本的微信更新,安卓微信8.0版本在哪里更新?安卓微信8.0下载更新教程...
  20. 打字文章计算机方面,电脑打字

热门文章

  1. c++ 旅行家的预算
  2. 泊松分布 指数分布 及其数字特征
  3. 超适合初学者学习的3d建模小技巧!
  4. 数据库 蚂蚁_蚂蚁集团把夺得世界第一数据库的 OceanBase 独立公司化
  5. husky gazebo
  6. 20日盗版XP系统黑屏的解决办法
  7. Linux 不重启添加SCSI硬盘方法
  8. mysql意见反馈表设计_山西省住房和城乡建设厅 关于开展2021年度山西省建设工程企业信用评价工作的通知(第209号)...
  9. Ubuntu 18.04 版本中安装mysql 8的方法
  10. LinkPdf转换器-PDF转换成Word使用教程