相信大家使用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. CSS Sprite 图标

    HTML <body> <!-- ul.sprite>li*5>s.s-icon+a{CSS Sprite} --> <!-- 以上是Sublime Text ...

  2. Oracle 日期查询

    转自:http://hi.baidu.com/fengboy_7334/blog/item/b0aa60035f36a1e809fa935d.html 例如:select * from c where ...

  3. hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online

    Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...

  4. Part 52 Attributes in C#

  5. linux 用户打开进程数和文件数调整

    1 查看nproc(max user processes)命令 [root@vm-cdh4 ~]# ulimit -u 14866 2 修改nproc 临时修改, 重登录或重启后失效: [root@v ...

  6. centOS6.5x64简单的安装openfire

    yum install java libldb.i686 mysql-server mysql-connector-java 创建数据库 create database openfire defaul ...

  7. UIView的frame的扩展分类,轻松取出x、y、height、width等值

    一.引言: 在ios开发中,就界面搭建.控件布局时,都会很恶心的通过很长的代码才能取出控件的x.y.height.width等值,大大降低了开发效率.那为了省略这些恶心的步骤,小编在这里给UIView ...

  8. 转载:简单介绍Python中的try和finally和with方法

    用 Python 做一件很平常的事情: 打开文件, 逐行读入, 最后关掉文件; 进一步的需求是, 这也许是程序中一个可选的功能, 如果有任何问题, 比如文件无法打开, 或是读取出错, 那么在函数内需要 ...

  9. Ant打jar包指定MainClass

    一般用ant打jar的时候不用指定程序的入口!这个jar一般是给其他app引用的. 但是如果该jar就是程序的启动jar.例如: java -jar abc.jar  这个时候需要指定jar的入口类! ...

  10. Linux platform设备简介

    Technorati 标签: Linux platform     Linux在2.6内核中,针对一系列设备驱动,提供新的管理框架,成为platform机制,推出的目的,在于隔离驱动的资源和实现,使得 ...