就这个小小的东西,弄了一天,弄的头晕眼花,毕竟第一次弄这个,记录下来,若干年之后,回看这些笔记,不知是什么样的感想,哈哈。我学一个东西的时候喜欢系统的来,一点一点的来,做这个的时候想法很简单,搭建出来服务端和客户端了,得把zabbix用起来,怎么用,怎么用好。就想到先来一个简单的,监控客户端,当客户端宕机的时候,发送邮件报警,这里监控宕机是通过不能ping通来判断,事实上,ping并不能代表客户端宕机了,只是先来做个这样的测试。先用起来看看。
       然后就百度了一下,监控主机是否存在使用fping,然后一直以为是Template ICMP Ping这个模块,后来发送邮件,想修改它的值时,在这个模块中,怎么也找不到,后来在运维群里,问了问,今天这群挺给力的,平时都是瞎扯,嘿嘿。然后那位大哥说,不是这个模块吧,后来仔细的看了一下,确实是,是Template App Zabbix Agent 这个模块里的Agent ping Item,突然之间恍然大悟,一直困惑的东西,突然感觉就通了。整个思路也通了。
 
 
一、安装sendEmail 
       
 
二、邮件报警的设置       
 
1)安装好sendEmail之后,修改zabbix的配置文件   vim /etc/zabbix/zabbix_server.conf  把这个参数打开

    AlertScriptsPath=/usr/local/zabbix-3.2./share/zabbix/alertscripts
2)以及把脚本放到zabbix的指定路径下
 /usr/local/zabbix-3.2.6/share/zabbix/alertscripts 
 

      
sendEmail的内容:       
    #!/bin/bash
to=$
subject=$
body=$
sendEmail -f le.li@xxxxx-t "$to"-s smtp.exmail.qq.com -u "$subject"-o message-content-type=html -o message-charset=utf--xu le.li@xxxxx-xp 密码-m "$body"
      
3)创建报警媒介类型

 
 

 
 
4)给用户添加报警媒介

 
 
把用户群组的调试模式打开:

 
 
5)创建动作

 
 
 

 
然后点击旁边的操作:

 
里面的默认接收人为:
    故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障
 
默认信息为:
    告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
然后再设置它的恢复操作:

 
里面的默认接收人为:

    故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}已恢复
默认信息为:
    告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
三、zabbix设置
     
1)先添加一个主机,在这台主机上要把客户端的进程启动

 
 
2)在10.0.0.13这台主机的模版里添加Template App Zabbix Agent 模版

 
 
3)然后可以看到10.0.0.13这台主机的状态

 
 
4)然后点击监控项,可以看到里面有一个Agent ping

 
 
5)然后找到这个监控项对应的触发器

  
点进去,看他的具体设置:

 
 
这里表达式的具体的意思(可以看官网):5分钟都没有收到ping的数据,就触发

 
 
为了实验能够快一点,把这里可以修改成为1分钟,要不然得等5分钟,刚开始的时候,不知道,然后一直以为是没成功,这里修改得从模版那里进去修改,从主机这里点进修改是修改不了的
 

 

 
 
点进去,然后修改为1分钟 
 

 
 
四:测试
 
把客户端的网卡停掉,ifdown eth0,然后过一分钟就可以收到邮件(这里的格式还没做处理,弄成竖的好看一些):
 

 
这里的邮件格式有问题,把脚本改一下就可以了,把html格式去掉:
    #!/bin/bash
to=$
subject=$
body=$
sendEmail -f le.li@xxxxx -t "$to" -s smtp.exmail.qq.com -u "$subject" -o message-charset=utf- -xu le.li@xxxxx -xp 密码 -m "$body"

就是这样了:

 
 

邮件报警以及服务端能否ping通客户端的小例子(三)的更多相关文章

  1. git的CentOS服务端安装和windows客户端的使用

    git的CentOS服务端安装和windows客户端的使用 此教程以 搬瓦工vps CentOS 6 x64 的系统为环境,搭建 git 服务端.windows 7 系统为客户端. git客户端 在W ...

  2. Identity4实现服务端+api资源控制+客户端请求

    准备写一些关于Identity4相关的东西,最近也比较对这方面感兴趣.所有做个开篇笔记记录一下,以便督促自己下一个技术方案方向 已经写好的入门级别Identity4的服务+api资源访问控制和简单的客 ...

  3. SuperWebSocket实现服务端和WebSocket4Net实现客户端

    SuperWebSocket实现服务端和WebSocket4Net实现客户端具体实现如下: SuperWebSocket实现服务端 注:本作者是基于vs2019 enterprise版本,所有项目均为 ...

  4. windows10 64位 安装mysql服务端 并使用navicat客户端链接 掉的一堆坑

    1.目的 安装mysql服务端 并使用navicat客户端链接 2.过程 1)下载mysql服务端 下载过程(参考https://blog.csdn.net/youxianzide/article/d ...

  5. thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)

    关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1)                 Linux下环境配置 ...

  6. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  7. 自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie

    如何手动设置AuthCookie ASP.NET中实现可以自己实现FormsAuthentication.SetAuthCookie方法,控制更为灵活 /// <summary> /// ...

  8. FireFly 服务端 Unity3D黑暗世界 客户端 问题

    启动服务端成功截图: 连接成功截图: 测试服务端是否启动成功: 在Web输入:http://localhost:11009/  按回车 (查看cmd启动的服务端 是否多出如下显示) 服务端启动成功.P ...

  9. Socket(TCP)客户端请求和服务端监听和链接基础(附例子)

    一:基础知识回顾 一: Socket 类 实现 Berkeley 套接字接口. Socket(AddressFamily, SocketType,ProtocolType) 使用指定的地址族.套接字类 ...

随机推荐

  1. 【shell脚本】 变量基础学习整理

    1.linux系统环境 echo 'echo /etc/profile ' >> /etc/profile echo 'echo /etc/bashrc' >> /etc/ba ...

  2. 利用Fiddler编写Jmeter接口测试

    利用Fiddler抓包APP应用接口,在Jmeter编写接口测试脚本 1.用Fiddler对Android用用进行抓包 Fiddler介绍: Fiddler是一款非常流行并且实用的http抓包工具,它 ...

  3. JS正则表达式分组模式

    分组的概念 分组就是在正则表达式中用()包起来的内容代表了一个分组,如下: var reg=/([0-9]{3})([a-z]{2})/ var str="123ab" conso ...

  4. PIL合并4张图demo 800px以下的居中显示小例子

    from PIL import Image #新建一个空白文件 大小为1600*1600 颜色为白色 newIm= Image.new('RGB', (1600, 1600), 'white') #打 ...

  5. MongoDB一键安装(参数全部定制)

    cat  init_MongoDB.sh #!/bin/bash export lang=C export my_port=27019 export my_dbpath=/opt/var/data/m ...

  6. node 安装 vue-cli 创建vue项目

    $ npm install -g vue-cli $ vue init webpack-simple my-project $ cd my-project $ npm install $ npm ru ...

  7. react+classnames

    之前做项目的时候一直不知道有不知道有classnames这个东西,一直用的都是字符串拼接,感觉用的很别扭. classnames用法和angular1.x及vue差不多,所以用起来会比较顺手 1)安装 ...

  8. Jmeter对HTTP请求压力测试、并发测试的简单使用方法

    对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...

  9. oracle数据库连接 ORA-12638:身份证明检索失败

    连数据库的时候突然报了一个这个 查找各种办法,发现自己从10g换成了11g,不过这个没有什么关系,跟oracle的安全设置有关系, 首先从开始菜单找到Net Manager 打开,选择本地,概要文件, ...

  10. 事务理解及Spring中的事务

    一.隔离级别理解 1.脏读 首先理解,一个事务对数据进行了改变,尽管该事务尚未提交,但此时其他事务中的查询语句(注意一定是处于事务中的语句,不处于事务中的语句查到的是正常的)查到的数据,是该事务修改之 ...