关于邮件报警,有非常多方案,这里选择的是稳定性较好。使用较多的msmtp+mutt方案。

该方案有一个非常好的地方在于不用自己来搭建独立的mailserver,能够使用第三方mail。这样的方法不仅能够有效的解决未知email地址被处理为垃圾邮件的问题。同一时候因为第三方的稳定服务来提供报警的准确和及时性。

事实上最关键的一点是msmtp能够使用gmail。

我们须要两个组件msmtp和mutt,当中msmtp是发送email的关键。mutt来优化msmtp。

【msmtp】

sudo apt-get install -y msmtp

配置msmtp

touch /var/log/msmtp.log





vim ~/.msmtprc





account default

host smtp.126.com

port 25

from cl0554@126.com

auth login

tls off

user cl0554@126.com

password xxxxxxx

logfile /var/log/msmtp.log





chmod 600 .msmtprc

chown zabbix.zabbix /var/log/zabbix -R

chown zabbix.zabbix /var/log/msmtp.log

chmod 777 /var/log/msmtp.log





【mutt】

安装

sudo apt-get install -y mutt

sudo mv /etc/Muttrc /etc/Muttrc.back

sudo vim /etc/Muttrc





set sendmail="/usr/bin/msmtp" #你的msmtp命令路径

set use_from=yes

set realname="cl0554@126.com"

set editor="vim"





測试邮件





echo "hello zabbix" | mutt -s "zabbix test" chenlong0554@qq.com





【zabbix配置】

改动zabbix的脚本位置路径

sudo vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/scripts/

重新启动zabbix

sudo service zabbix-server restart





sudo mkdir -p /usr/local/zabbix/scripts/

sudo chown zabbix.zabbix /usr/local/zabbix -R

sudo vim /usr/local/zabbix/scripts/mail.sh

#!/bin/sh

echo "$3" | mutt -s "$2" $1





sudo chown zabbix.zabbix mail.sh

sudo chmod 777 mail.sh

測试脚本

./mail.sh chenlong0554@qq.com zabbix測试 你好zabbix





zabbix web界面通过右上角的 profile中的media设置发送的邮箱

通过工具栏的administrator-Media types中的email 来配置mail发送的方式

type选择 script

name是mail.sh





PS:报警系统的web配置教复杂,在下一节研究mysql和系统基础报警中具体讨论。本节将仅仅实现基础报警功能。







【关于package安装zabbix无法报警的问题】

假设日志和数据库中都显示zabbix发送了邮件可是你却没有收到邮件。

排除垃圾邮件被屏蔽的问题,那么就是zabbix本身的问题。网上并没有类似的解决方式,可是通过分析能够找出问题所在。

分析问题:

1.zabbix的权限不存在问题。脚本已经赋予了最高权限而且所属组和用户都是zabbix。

2.脚本本身假设直接用ubuntu用户运行是能够正确发送和接收到邮件的。那么排除脚本本身的问题。

3.既然zabbix的日志和DB中都显示了已经send了mail。说明至少zabbix在做sendmail这一项操作,可是事实上并没有send成功。那么问题的根源就出在zabbix send mail这一过程之中。

4.我们知道mutt是调用msmtp去发送email,那么zabbix在发送mail的过程应该是这种。

  触发报警—>zabbix用户调用bash—>运行mail.sh脚本

  假设运行成功则发送肯定成功。假设运行失败则肯定无法收到邮件。

測试和解决这个问题

1.手动登录zabbix用户来模拟zabbix发送邮件。我们发现第一步就会出错。由于ubuntu在apt-get安装zabbix时自己主动创建的zabbix用户默认是不具有home文件夹和登录shell的。那么至少应该给与zabbix 调用bash的权限否则zabbix用户是不可能成功运行mail.sh脚本的。

解决方法例如以下:

sudo vim /etc/passwd

将zabbix行最后的/bin/false 改为 /bin/bash。

保存退出后。这时用sudo su - zabbix切换到zabbix ,尽管没有home文件夹 可是是有登录shell的。





2.运行mail.sh測试 

./mail.sh chenlong0554@qq.com zabbix測试 你好zabbix

提示

msmtp: account default not found: no configuration file available

Error sending message, child exited 78 ().

Could not send the message.





通过对msmtp我们了解,在有用apt-get安装的msmtp,它的配置文件默认调用的当前用户home文件夹下的.msmtprc,我们尽管在ubuntu用户下创建了.msmtprc可是zabbix文件夹下却没有这个文件,所以zabbix还是无法有用msmtp。

解决方法例如以下:

sudo mkdir /home/zabbix

sudo chown zabbix.zabbix -R /home/zabbix

sudo vim /etc/passwd

将zabbix的/var/lib/zabbix改为/home/zabbix

sudo cp /home/ubuntu/.msmtprc /home/zabbix/.msmtprc

chown zabbix.zabbix /home/zabbix/.msmtprc

chmod 600 /home/zabbix/.msmtprc

再次通过zabbix用户运行測试脚本,成功。

【zabbix系列】报警系统的设置和排除的更多相关文章

  1. zabbix系列(八)zabbix添加对web页面url的状态监控

    通过zabbi做web监控不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警 1.对需要监控的主机添加web监控   在configuration—hosts 中打开主机列 ...

  2. zabbix系列-Grafana4.6.3+Zabbix 的安装部署

    zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: ​ zabb ...

  3. Grafana +Zabbix 系列二

    Grafana +Zabbix 系列二 Grafana 简介补充 Grafana自身并不存储数据,数据从其他地方获取.需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化图形 ...

  4. Zabbix监控Linux主机设置

          说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配 ...

  5. zabbix系列(三)zabbix3.0.4微信告警配置详解

    一.准备工作 申请微信公众号,并且是可以有发送消息的接口.添加有个脚本去调用微信的api. 之后可以参考下zabbix 的搭建,然后了解下脚本报警,之后再考虑报警方式的多样化. 个人微信一个 个人邮箱 ...

  6. TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】

    转自:http://www.right.com.cn/forum/thread-103082-1-1.html 最近买了一个华为的E303s的上网卡,之前703的openwrt是按照需要拨号和使用U盘 ...

  7. zabbix系列之六——安装后配置二Items

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...

  8. Atitit.故障排除系列-----apache 不能启动的排除

    Atitit.故障排除系列-----apache 不能启动的排除 能直接使用cli启动httpd   ,,详细打印出信息.. C:\Users\ASIMO>"C:\wamp\apach ...

  9. 同步IDEA系列软件的设置,再也不用但心我的配置丢失了

    同步IDEA系列软件的设置 问题描述:重装idea,之前配置好的快捷键就没有了.之前一直是每隔几个月要把配置导出一下,上传百度云盘.现在好了,通过配置可以自动同步配置了.我再也不用但心配置丢失了. 快 ...

随机推荐

  1. history命令

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令 ...

  2. Slalom

    题意: 有n个宽度为w的门,给出门的左端点的水平位置x和高度y,和恒定的垂直速度,现有s个速度,求能通过这n个门的最大速度. 分析: 二分速度判断 #include <map> #incl ...

  3. 软件测试技术(五)——Software Review

    本周的测试课上进行了一次同行评审的演练,大家讨论的很热烈,不过我也发现了一些不太理解的过程,如如何进行计划活动,走读.技术评审.正规检视是基于什么目的,并应该在何时进行.我做了一下详细的研究. 首先, ...

  4. Redrain仿酷狗音乐播放器开发完毕,发布测试程序

    转载请说明原出处,谢谢~~ 从暑假到现在中秋刚过,我用duilib开发仿酷狗播放器大概经历了50天.做仿酷狗的意图只是看原酷狗的界面比较漂亮,想做个完整一些的工程来练习一下duilib.今天把写好的程 ...

  5. Gridview数据导出到ExcelWord 防止出现乱码

    1.页面中添加绿色字体代码<%@ Page Language="C#" CodeFile="111.aspx.cs" Inherits="111 ...

  6. 在asp.net mvc中使用PartialView返回部分HTML段

    问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...

  7. CSS:不可思议的border属性

    原文:Magic of CSS border property 译文:不可思议的CSS border属性 译者:dwqs 在CSS中,其border属性有很多的规则.对于一些事物,例如三角形或者其它的 ...

  8. 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)

    #把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...

  9. Oauth2 接口api

    weibo:http://open.weibo.com/wiki/API weixin:http://mp.weixin.qq.com/wiki/home/index.html   qq开发平台: 1 ...

  10. 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子

    一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...