Zabbix自动化运维之问题主机定时上报

该博客介绍了如何使用Django框架构建邮件发送接口,以实现Zabbix自动化运维中的问题主机定时上报。首先讲解了Django环境配置、接口路由设定和邮件发送核心代码。接着讨论了pandas模块在数据处理中的应用,以及如何通过Zabbix API获取未解决的问题主机。最后,阐述了定时上报问题主机的实现和邮件发送的安全性问题。
摘要由CSDN通过智能技术生成

实验介绍

在本节以及后续内容会大量用到邮件服务,为避免重复写邮件发送代码,本节实验将先编写一个基于Django框架编写的调用邮件的接口,需发送邮件时直接调用这个接口即可。之后再获取最近处于故障状态仍未解决的触发器信息,然后发送邮件通知用户。

知识点

  • 基于Django框架编写邮件发送接口
  • pandas模块介绍
  • 获取最近处于故障状态仍未解决的触发器信息【zabbix监控系统dashboard 上的显示信息】
  • 编写html文件,定时上报问题主机

基于Django框架编写邮件发送接口

环境安装配置

关于Django框架的学习,可参考Django 官网,本实验中因篇幅问题只做简单介绍。

环境安装采用虚拟环境,参考实验二《配置python的虚拟环境》,虚拟环境创建好后,安装Django,方式如下:

(test) root@074dfb2b3e3c:~# pip install -r requirements.txt

安装完成后,便可以使用Django的管理工具django-admin,首先创建一个名为zaopermail的项目:

(test) root@074dfb2b3e3c:~/script/code5# django-admin  startproject zaopermail
# 查看目录结构:
(test) root@074dfb2b3e3c:~/script/code5# tree  zaopermail/
zaopermail/
├── manage.py
└── zaopermail
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

1 directory, 5 files

接口路由配置

首先配置路由,再zaopermail/urls.py配置:

urlpatterns = [
    path('mail/', views.ZaMail.as_view()),
]

再创建文件zaopermail/views.py,内容为调用这个接口的处理逻辑,具体内容如下:

from django.http import HttpResponse
from django.views.generic import View
from libs import mailclient
import json


class ZaMail(View):
    def post(self, request):
        requestbody = json.loads(request.body)
        if 'to_receiver' in requestbody.keys():
            to_receiver = requestbody['to_receiver']
        else:
            to_receiver = None
        if 'cc_receiver' in requestbody.keys():
            cc_receiver = requestbody['cc_receiver']
        else:
            cc_receiver = None
        if 'subject' in requestbody.keys():
            subject = requestbody['subject']
        else:
            subject = None
        if 'mailbody' in requestbody.keys():
            mailbody = requestbody['mailbody']
        else:
            mailbody = None

        if 'attach_images' in requestbody.keys():
            attach_images = requestbody['attach_images']
        else:
            attach_images = None

        result = mailclient.sendmail(to_receiver, subject, mailbody, cc_receiver, attach_images)
        return HttpResponse(result)

发送邮件核心代码介绍

编写调用邮件接口的客户端代码,考虑可扩展性,代码中包含了邮件中添加图片的代码逻辑,邮件中配置了SMTP的SSL认证,使用时可根据实际情况判断是否

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值