[原创] zabbix学习之旅四:mail客户端安装
相信大家使用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客户端安装的更多相关文章
- [原创] zabbix学习之旅二:yum安装
对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题. 本文将介绍如 ...
- [原创] zabbix学习之旅三:agent安装
部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...
- [原创] zabbix学习之旅五:如何快速搭建一个报警系统
通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...
- [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...
- [原创] zabbix学习之旅七:如何远程操作被监控机器
虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...
- [原创] zabbix学习之旅一:源码安装
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...
- zabbix学习-如何部署一个agent客户端
1. 部署一个agent客户端很简单,比如监控服务器本身 yum install zabbix-agent -y 2.配置文件位置: vim /etc/zabbix/zabbix-agendt.con ...
- SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon
通过上一章<SpringCloud开发学习总结(三)—— 服务治理Eureka>,我们已经搭建起微服务架构中的核心组件——服务注册中心(包括单点模式和高可用模式).同时还注册了一个服务,命 ...
- Spring学习之旅(四)--高级装配Bean
条件化 bean 有时候我们要满足某种情况才将bean 初始化放入容器中. 基于环境初始化不同的 bean 1.申明接口并创建两个实现类 public interface Teacher { void ...
随机推荐
- SQL 复制订阅 异常后 强制删除
最近做数据库同步备份工作,将 主库 通过SQLService 自带的 [复制] 订阅出去后,因为 订阅方(从库) 发生异常,主库 无法确定 从库的订阅,就想清理了,订阅重新做同步,结果.....主库上 ...
- iOS-图片拉伸,最常用的图片拉伸操作总结(干货)
概念介绍 直接拉伸图片有时候会导致图片四周变的很模糊 所以要想办法使图片四周的形状不变.于是,端盖(end cap)的概念出来了,用来指定图片中的哪一部分不用拉伸.比如下图中,黄色代表需要被拉伸的矩形 ...
- 后台获取ajax发送过来的值
user.CityId = int.Parse(HttpContext.Request[ "bindArea"]); 以上为获取方法:
- 异常getaddrinfo enotfound
在看NodeJS开发指南这本书时,书中的一个例子,讲解http.request的.代码如下: var http = require('http'); var querystring = require ...
- 字符集转换: Unicode - Ansi
字符集转换: Unicode - Ansi string UnicodeToAnsi ( const wstring& wstrSrc ) { /*!< 分配目标空间, 一个16位Uni ...
- MYSQL基础02(查询)
查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表, ...
- 杭电ACM2096--小明A+B
http://acm.hdu.edu.cn/showproblem.php?pid=2096 本来就是很简单.但是数据的大小有要求. (a%100+b%100)%100和(a+b)%100本来没有什么 ...
- POJ 1273(EK)
题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水第一行有两个整数N,M接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水超级模板题,一个有 ...
- int * const 与 const int * 的区别
type * const 与 const type * 是在C/C++编程中特别容易混淆的两个知识点,现在就以 int * const 和 const int * 为例来简略介绍一下这两者之间的区别. ...
- 深度模拟java动态代理实现机制系类之三
这里的内容就比较复杂了,要实现的是对任意的接口,对任意指定的方法,以及对任意指定的代理类型进行代理,就更真实的模拟出java虚拟机的动态代理机制 罗列一下这里涉及的类.接口之间的关系,方便大家学习.1 ...