【zabbix系列】报警系统的设置和排除
关于邮件报警,有非常多方案,这里选择的是稳定性较好。使用较多的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系列】报警系统的设置和排除的更多相关文章
- zabbix系列(八)zabbix添加对web页面url的状态监控
通过zabbi做web监控不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警 1.对需要监控的主机添加web监控 在configuration—hosts 中打开主机列 ...
- zabbix系列-Grafana4.6.3+Zabbix 的安装部署
zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: zabb ...
- Grafana +Zabbix 系列二
Grafana +Zabbix 系列二 Grafana 简介补充 Grafana自身并不存储数据,数据从其他地方获取.需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化图形 ...
- Zabbix监控Linux主机设置
说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配 ...
- zabbix系列(三)zabbix3.0.4微信告警配置详解
一.准备工作 申请微信公众号,并且是可以有发送消息的接口.添加有个脚本去调用微信的api. 之后可以参考下zabbix 的搭建,然后了解下脚本报警,之后再考虑报警方式的多样化. 个人微信一个 个人邮箱 ...
- TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】
转自:http://www.right.com.cn/forum/thread-103082-1-1.html 最近买了一个华为的E303s的上网卡,之前703的openwrt是按照需要拨号和使用U盘 ...
- zabbix系列之六——安装后配置二Items
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...
- Atitit.故障排除系列-----apache 不能启动的排除
Atitit.故障排除系列-----apache 不能启动的排除 能直接使用cli启动httpd ,,详细打印出信息.. C:\Users\ASIMO>"C:\wamp\apach ...
- 同步IDEA系列软件的设置,再也不用但心我的配置丢失了
同步IDEA系列软件的设置 问题描述:重装idea,之前配置好的快捷键就没有了.之前一直是每隔几个月要把配置导出一下,上传百度云盘.现在好了,通过配置可以自动同步配置了.我再也不用但心配置丢失了. 快 ...
随机推荐
- oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序
15511477451 原文 oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序? 环境:win7 64位系统.oracle11g数据库 问题描述:在win7 64位系统 ...
- java解析XML四种方法
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML. XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便 ...
- C# 替换文本文件中的某一行
C# 替换文本文件中的某一行 (要求此文件存在) /// <summary> /// LineIndex 表示新的内容所在的行位置 /// </summary> /// < ...
- <译>Selenium Python Bindings 5 - Waits
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
- 2015NOIP简单说说
在机房度过最后两节课然后滚回去赶文化课,准备期中考试,高考.AFO的称号毫无悬念的归来了.DAY1T2的失误不能拿下230,只能190滚粗,DAY2一上午都在混沌.旁边的哥们求我给看第一题,于是他就对 ...
- Codeforces Round #365 (Div. 2) C - Chris and Road 二分找切点
// Codeforces Round #365 (Div. 2) // C - Chris and Road 二分找切点 // 题意:给你一个凸边行,凸边行有个初始的速度往左走,人有最大速度,可以停 ...
- 恒天云单节点部署指南--OpenStack H版本虚拟机单节点部署解决方案
本帖是openstack单节点在虚拟机上部署的实践.想要玩玩和学习openstack的小伙伴都看过来,尤其是那些部署openstack失败的小伙伴.本帖可以让你先领略一下openstack的魅力.本I ...
- 关于python的import
在软件包里,必须添加__init__.py文件. 想要对外公开的module必须在__init__.py内import一次,这样这些module才能被外部代码import并调用.
- .NET中获取字符串的MD5码
C# 代码: 导入命名空间(需要在Web页面的代码页中引用) using System.Web.Security; 获取MD5码 string Password = FormsAuthenticati ...
- 你想成为优秀的Java程序员吗?
Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...