惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
The Register - Security
The Register - Security
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
博客园 - 司徒正美
罗磊的独立博客
U
Unit 42
S
SegmentFault 最新的问题
Y
Y Combinator Blog
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
S
Securelist
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
Scott Helme
Scott Helme
博客园 - 聂微东
博客园 - 【当耐特】
T
Tenable Blog
I
Intezer
D
DataBreaches.Net
B
Blog RSS Feed
Security Latest
Security Latest
C
Cisco Blogs
T
Tor Project blog
N
Netflix TechBlog - Medium

博客园 - linwinfan

ZABBIX新功能系列1-使用Webhook将告警主动推送至第三方系统 xenserver添加静态路由 redmine常见问题 Opennms 问题整理 OpenERP 使用与开发笔记(一) KEEPALIVED 双机自动切换部署备忘 使用flume-ng聚合双活Nginx日志 迁移 VMware 虚拟机到 KVM 安装设置squid3代理更新 iscsiadm基本用法 第4章.计算节点 第三章.可扩展性 第二章 云控制器设计 OpenStack实施管理手册-第一章 部署准备 VMware workstation to exsi openQRM在CENTOS64上的安装部署 在服务器上排除问题的头五分钟(转) u960s指令 某程序反向工程记录
ZABBIX新功能系列2-通过Webhook调用虚拟化API重启故障主机
linwinfan · 2022-05-06 · via 博客园 - linwinfan

     Zabbix老版本当发生故障时我们可以定义“动作”(Action)可以通过客户端Zabbix agent执行某些操作来使故障自动恢复,如检查发现磁盘可使用空间小于10%时,自动执行清理临时文件与日志文件的Shell脚本等方法来清理磁盘空间达到告警消除的目的,从而做到故障自愈。但这种方法一般只适用于监控主机仍然存活且Zabbix agent客户仍然可用的情景下。

       现在我们很多生产环境部署在各种虚拟化或云环境下,这时可能会因为各种原因主机会发生死机等情况,这时zabbix agent也就无法正常访问了,这时我们通常的做法是通过云管平台重启云主机,这通常需要我们手动去操作,为了减少手工操作,同时使一线运维人员快速处理这类问题,这里我们提出一种可以通过Zabbix监控发现这种问题并自动处理或者集成到ZABBIX扩展菜单里使一线人员在确认问题可以直接通过扩展菜单功能来重启发生死机等故障的云主机。

       这里我们就以创建一个在ZABBIX里手动重启Proxmox虚拟机的脚本为例来介绍有关操作。

  1. "管理"->"脚本"->"创建脚本"

  2. 输入创建脚本的有关参数。

    名称 脚本的唯一名称
    Scope Action operation 作为动作使用的脚本,可以告警操作中使用。
    Manual host action 扩展监控主机操作菜单 ,在任何可以显示主机操作菜单中手动选择菜单项进行操作。
    Manual event action 事件扩展菜单,如本系列1中所讲,可以配置一个事件操作菜单,手工选择来发送特定告警。
    Memu path 菜单显示配置
    类型 可以选择Webhook,脚本,SSH,Telnet,IPMI
    参数 值对列表,与系列1中相同,将传递给脚本使用,请参考系列1.
    脚本 同系列1相同,输入有关Javascript脚本,实现Webhook操作。
    主机群组 选择脚本可用的主机组 ( 如这里我们选择PROXMOX集群)。
    用户群组 选择脚本可用的用户群组
    应用确认 选中复选框在执行脚本之前将显示确认消息。对于潜在的危险操作(如重新启动脚本)添加相关提示信息将特别有用。
    确认文 字 输入确认弹出窗口的自定义确认文本 (例如,{HOST.NAME}将要重启,您确定吗?)(这里可以相关宏)
  3. 输入调用Proxmox Api重启主机脚本。

    try {
        var params = JSON.parse(value),
            req = new HttpRequest(),
            response;
        if (params.HTTPProxy) {
            req.setProxy(params.HTTPProxy);
        }
        req.addHeader('PVEAPIToken:USER@REALM!TOKENID=UUID');
        Zabbix.log(4, '[ PROXMOX webhook ] Webhook request with value=' + value);
        response = req.post(params.hook_url, 'vmid=' + params.vmid);
        Zabbix.log(4, '[ PROXMOX webhook ] Responded with code: ' + req.Status() + '. Response: ' + response);
        try {
            response = JSON.parse(response);
        }
        catch (error) {
            if (req.getStatus() < 200 || req.getStatus() >= 300) {
                throw 'Request failed with status code ' + req.getStatus();
            }
            else {
                throw 'Request success, but response parsing failed.';
            }
        }
        if (req.getStatus() !== 200 || !response.ok || response.ok === 'false') {
            throw response.error;
        }
        return '执行成功';
    }
    catch (error) {
        Zabbix.log(3, '[ Pro webhook ] Sending failed. Error: ' + error);
        throw '执行失败,发生错误: ' + error;
    }
    
  4. "监测"->"主机"选择Proxmox集群,将列表有关监控主机,然后单击主机名将显示可操作菜单,其中就有新添加的“重启PROXMOX虚拟机",如下图:

  5. 点击该菜单就可以测试脚本相关功能,从而实现在监控系统里对故障主机的相关操作。

如果您喜欢这个系统,请扫码关注: