相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒。zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其当邮件服务器、短信服务器不与zabbix server在同一台服务器时,自定义脚本基本上成为我们唯一可靠的方式。

  在本文中,我们将在zabbix server上安装邮件客户端,并以脚本方式将报警信息通过邮件发出来,若以后想做短信提醒、微信提醒,技术路径都是一样的。

安装msmtp

  msmtp是一个SMTP客户端,可将邮件发送至SMTP服务端,其官网地址为http://msmtp.sourceforge.net/index.html 。

  • 下载并安装msmtp
cd /usr/local/src
wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download
tar jxvf msmtp-1.4..tar.bz2
cd msmtp-1.4.
./configure --prefix=/usr/local/msmtp
make && make install
  • 配置msmtp
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
#添加如下内容:
account default
host smtp..com
port
from xxx@.com
auth login
tls off
user xxx
password xxx
logfile /var/log/mmlog chmod 777 /var/log/mmlog
  • 测试msmtp
/usr/local/msmtp/bin/msmtp  xxx@.com
hello,test
ctrl d
# 查看日志有无成功
cat /usr/local/msmtp/msmtp.log
# 查看163邮箱,看看信收到没有。

安装Mutt

  Mutt是一个Email客户端,它不能直接发送邮件,更多的是承担对email的管理功能,与msmtp可搭配使用。其官网地址为:http://www.mutt.org/

若想了解更多Mutt与msmtp的搭配使用,可查看如下地址:http://msmtp.sourceforge.net/doc/msmtp.html#Using-msmtp-with-Mutt

  • 下载并安装Mutt
cd /usr/local/src
wget ftp://ftp.mutt.org/pub/mutt/mutt-1.5.24.tar.gz
tar xvf mutt-1.5..tar.gz
cd mutt-1.5.
./configure –prefix=/usr/local/mutt
make && make install
  • 配置Mutt
vi /usr/local/mutt/etc/Muttrc
#在最后添加如下几行:
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="xxx"
set from=xxx@.com
set envelope_from=yes
  • 测试Mutt
echo "hello,world"|/usr/local/mutt/bin/mutt –s "test mail" xxx@.com
#上述语句将发送一封标题为"test mail",内容为"hello,world",收件人为xxx@163.com的邮件,可检查该邮箱能否收到邮件

  至此,邮件客户端已配置完成,那zabbix如何将报警信息传递给Mutt呢?我们仅需要写如下一段脚本:

cd /usr/local/zabbix/share/zabbix/alertscripts
touch notification.sh
chmod +x notification.sh vi notification.sh
#添加如下内容
#!/bin/bash
echo "$3"| /usr/local/mutt/bin/mutt -s "$2" $

  其中$1为zabbix传递的收件人地址,$2为邮件标题,$3为邮件内容。

  而上述路径/usr/local/zabbix/share/zabbix/alertscripts是默认的zabbix脚本调用路径,当有报警信息时,zabbix会在该路径下查找并调用指定的脚本,如我们自定义的notification.sh脚本。

  下一篇文章我们将介绍如何在zabbix server界面完成报警提醒的全过程设置。

[原创] zabbix学习之旅四:mail客户端安装的更多相关文章

  1. [原创] zabbix学习之旅二:yum安装

    对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题.   本文将介绍如 ...

  2. [原创] zabbix学习之旅三:agent安装

    部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...

  3. [原创] zabbix学习之旅五:如何快速搭建一个报警系统

    通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...

  4. [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题

    通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...

  5. [原创] zabbix学习之旅七:如何远程操作被监控机器

    虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...

  6. [原创] zabbix学习之旅一:源码安装

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

  7. zabbix学习-如何部署一个agent客户端

    1. 部署一个agent客户端很简单,比如监控服务器本身 yum install zabbix-agent -y 2.配置文件位置: vim /etc/zabbix/zabbix-agendt.con ...

  8. SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon

    通过上一章<SpringCloud开发学习总结(三)—— 服务治理Eureka>,我们已经搭建起微服务架构中的核心组件——服务注册中心(包括单点模式和高可用模式).同时还注册了一个服务,命 ...

  9. Spring学习之旅(四)--高级装配Bean

    条件化 bean 有时候我们要满足某种情况才将bean 初始化放入容器中. 基于环境初始化不同的 bean 1.申明接口并创建两个实现类 public interface Teacher { void ...

随机推荐

  1. Part 8 AngularJS filters

    Filters in angular can do 3 different things 1. Format data 2. Sort data 3. Filter data Filters can ...

  2. Part 82 to 85 Talking about Generic queue, stack collection class

    Part 82   Generic queue collection class Part 83   Generic stack collection class Part 84   Real tim ...

  3. DNS服务器搭建

    注意正式运行的dns服务器主dns设置 中没有启用转发器,所以部分网页如taobao解析时可能很慢.开启转发器即可转发器地址指向电信dns. [root@master ~]# lsb_release ...

  4. SQL取某个字段最大(小)数值及其相应行的其他字段值的句语

    如下表Z 中,取 字段a 最大的那行 字段a           字段a    字段cSP000016964 5 20SP000016964 7 30SP000016964 1 15SP0000177 ...

  5. 下拉框的选择跳转事件(jqure)

    <select id="coupontype"> <option value="@CouponType.全部" href="@Url ...

  6. c# 读取远程主机性能计数器

    PerformanceCounter pc = new PerformanceCounter("Web Service", "Current Connections&qu ...

  7. Stack Overflow 2016最新架构探秘

    这篇文章主要揭秘 Stack Overflow 截止到 2016 年的技术架构. 首先给出一个直观的数据,让大家有个初步的印象. 相比于 2013 年 11 月,Stack Overflow 在 20 ...

  8. setuid函数解析

    在讨论这个setuid函数之前,我们首先要了解的一个东西就是内核为每个进程维护的三个UID值.这三个UID分别是实际用户ID(real uid).有效用户ID(effective uid).保存的设置 ...

  9. [大牛翻译系列]Hadoop(3)MapReduce 连接:半连接(Semi-join)

    4.1.3 半连接(Semi-join) 假设一个场景,需要连接两个很大的数据集,例如,用户日志和OLTP的用户数据.任何一个数据集都不是足够小到可以缓存在map作业的内存中.这样看来,似乎就不能使用 ...

  10. php更新修改excel中的内容例子

    代码如下 复制代码 //模板存放目录$dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';  $templateName = '1.xlsx';$ou ...