当前位置:   article > 正文

Linux云计算架构-zabbix4-4-6自动报警并发送邮件以及自动发现服务器添加到指定群组_zabbix 发送测试邮件

zabbix 发送测试邮件

Linux云计算架构-zabbix4-4-6自动报警并发送邮件以及自动发现服务器添加到指定群组

1. 自动报警并发送邮件

1.1 zabbix服务器配置邮件服务

邮件服务可以使用系统自带的邮件服务或者第三方邮件服务。

# zabbix配置mailx组件
[root@master ~]# yum install mailx -y
# 设置账户信息,允许登录第三方客户端并使用第三方客户端发送邮件。
[root@master ~]# vim /etc/mail.rc
 71 set from=123456@qq.com   # 邮件发送方
 72 set smtp=smtp.qq.com
 73 set smtp-auth-user=123456@qq.com
 74 set smtp-auth-password=xxxxxx    # qq邮箱设置的客户端授权码
 75 set smtp-auth=login
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

获取qq邮箱客户端授权码的方法:
在这里插入图片描述

在这里插入图片描述

# 编写邮件发送脚本
[root@master ~]# cd /usr/lib/zabbix/alertscripts/
# $1 收件方   $2邮件标题   $3 邮件正文
[root@master alertscripts]# vim sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1
[root@master alertscripts]# chown zabbix:zabbix sendmail.sh
[root@master alertscripts]# chmod +x sendmail.sh
# 发邮件测试下
[root@master ~]# /usr/lib/zabbix/alertscripts/sendmail.sh 1254735891@qq.com test "this is test_mail"
# 可以看到,客户端上已经可以收到邮件了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
总结:zabbix服务器配置了mailx组件,但是需要使用客户端才可以发送邮件。而qq邮箱授权给zabbix服务器上的mailx组件,允许它使用qq邮箱来发送发送邮件。然后以脚本的形式来发送邮件,并且zabbix服务器是知道这个脚本的位置的。

# 告警脚本存在位置
[root@master ~]# vim /etc/zabbix/zabbix_server.conf 
516 AlertScriptsPath=/usr/lib/zabbix/alertscripts
  • 1
  • 2
  • 3

1.2 创建报警媒介类型和报警用户

创建报警媒介类型:
在这里插入图片描述
在这里插入图片描述

脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
  • 1
  • 2
  • 3
  • 4

创建报警用户:
在这里插入图片描述
点一下更新:
在这里插入图片描述

1.3 创建动作

创建动作:
在这里插入图片描述
修改动作的名称:
在这里插入图片描述
修改动作的操作:
在这里插入图片描述

# 默认标题
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
# 消息内容
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

添加执行动作的用户和报警媒介类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改恢复操作:
在这里插入图片描述

# 默认标题
已恢复!{TRIGGER.STATUS}, 服务器:{HOSTNAME1}, 故障:{TRIGGER.NAME}
# 消息内容
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述添加动作完成:
在这里插入图片描述
在这里插入图片描述

步骤:
①授权第三方邮箱发送邮件
②创建报警媒介类型,表示当报警时应该通过什么方式响应
③创建报警用户,表示是哪个用户发现的这个报警,可以为报警用户指定报警媒介
④创建触发器动作,有故障动作、恢复动作。用于在客户端故障或者恢复时的操作。一般指标题和正文;
总结:报警媒介类型-报警用户-动作

1.4 测试效果

我这里用的是WIFI,IP地址时不时会变,只要对zabbix进行相应的调整即可,这个不影响验证。
在模板这里修改触发器所对应的表达式的监控项的更新间隔才会生效。
在这里插入图片描述
点击触发器对应的表达式,其中包含了对应的监控项。
在这里插入图片描述
缩短更新间隔,有利于测试,生产具实际而定。
在这里插入图片描述

# 停止客户端的zabbix服务,看是否会触发操作。
[root@client ~]# systemctl stop zabbix-agent.service 
# 等一会,看看会不会自动发送邮件
# 重新启动客户端的zabbix服务,看是否会触发恢复操作。
[root@client ~]# systemctl  restart zabbix-agent.service 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

1.5 优化数据收集频率和触发时间

以mysql模板为例:
找到mysql监控模板:
在这里插入图片描述
查看下该模板的触发器:
有一个当mysql服务器挂了,就会触发的触发器。
在这里插入图片描述
点一下对应的表达式:
在这里插入图片描述
可以看到那个触发器是建立在这个监控项的基础上的。

# 键值:通过ping mysql服务器的IP地址和检测端口号来判断mysql服务器是否宕机。
mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"]
  • 1
  • 2

在这里插入图片描述

修改更新间隔,即检测mysql服务器是否宕机的时间间隔,这里设置为3s,方便看到效果。生产环境要以实际为准。

# 停掉客户端上的mysql、apache
[root@client ~]# systemctl stop httpd.service 
[root@client ~]# systemctl stop mariadb.service 
  • 1
  • 2
  • 3

在这里插入图片描述

# 重新启动客户端上的mysql、apache
# 又会发送邮件过来,告诉故障已恢复。
[root@client ~]# systemctl start httpd.service 
[root@client ~]# systemctl start mariadb.service 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

2. 自动发现远程监控主机并添加到指定群组

自动发现原理:创建一个自动发现,即多久检查一次。然后创建一个自动发现动作,当动作的条件与zabbix客户端匹配上,则执行动作的操作。这里所说的zabbix客户端都是正确配置了zabbix-agent的主机。

2.1 创建自动发现和创建关联动作

# zabbix服务端获取客户端的系统信息
[root@master ~]# zabbix_get -s 192.168.8.175 -p 10050 -k system.uname
Linux client 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

# 查看下客户端的内核信息
[root@client ~]# uname -a
Linux client 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

添加自动发现:
在这里插入图片描述
在这里插入图片描述
添加关联动作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置动作的操作:
在这里插入图片描述

# 默认标题
自动发现主机:{DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}
# 消息内容
发现规则: {DISCOVERY.RULE.NAME}
设备 IP:{DISCOVERY.DEVICE.IPADDRESS}
设备 DNS: {DISCOVERY.DEVICE.DNS}
设备状态: {DISCOVERY.DEVICE.STATUS}
设备运行时间: {DISCOVERY.DEVICE.UPTIME}
设备服务端口: {DISCOVERY.SERVICE.NAME}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

2.2 创建一台新的zabbix客户端

[root@client2 ~]# ll zabbix-agent-4.4.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 438076 2月  29 11:52 zabbix-agent-4.4.6-1.el7.x86_64.rpm
[root@client2 ~]# rpm -ivh zabbix-agent-4.4.6-1.el7.x86_64.rpm
警告:zabbix-agent-4.4.6-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-agent-4.4.6-1.el7         ################################# [100%]
[root@client2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
98 Server=192.168.8.174          # 服务端IP
139 ServerActive=192.168.8.174   # 服务端IP
150 Hostname=192.168.8.176      # 客户端主机名

# 开放客户端上的10050端口号
[root@client2 ~]# firewall-cmd --permanent --zone=public --add-port=10050/tcp
success
[root@client2 ~]# firewall-cmd --reload 
success

# 设置zabbix客户端启动和开机自启
[root@client2 ~]# systemctl start zabbix-agent.service
[root@client2 ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

设置了5s自动发现,但是添加zabbix客户端还是需要一会,耐心等。多刷新几次。
如果没有看到对应的主机出现,可以检查下自动发现和动作是否创建成功,还可以看看服务端和客户端日志有没有报错。

在这里插入图片描述
总结:自动发现即zabbix服务器按照自动发现规则主动去寻找对应的远程主机,如果远程主机上正确安装了zabbix客户端,那么就会把该远程主机加入到监控中,对其进行监控。由于zabbix服务器主动发现zabbix客户端,对zabbix服务器的内存使用压力较大,适合于发现少量客户端。【服务端发现客户端】

3. 客户端自动注册并添加到指定群组

自动注册原理:创建一个动作,条件为包含主机名,并为其指定操作。这时zabbix客户端会发送主机名给服务端,当zabbix客户端的配置文件内设置的主机名与动作的条件对应上,则客户端直接注册到zabbix监控中。

3.1 创建自动注册动作

添加自动注册动作:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 测试客户端自动注册

测试下:
把自动发现和自动发现关联的动作去掉,去掉主机,然后重启下zabbix客户端,看是否会注册进去。可以看到已经注册进去了。
在这里插入图片描述

3.3 客户端自动注册并发送邮件

如果想把自动发现或者自动注册的动作信息记录下来【在动作日志中可以查看到】,并发送邮件,要指定动作操作的操作细节的操作类型为发送消息,指定发送到用户。否则默认不会发送邮件通知用户。
在这里插入图片描述
在这里插入图片描述
再测试下,移除主机,然后重启zabbix客户端。可以看到又添加进去了。
在这里插入图片描述
查看下动作日志,可以看到已经发送邮件了。
在这里插入图片描述

在这里插入图片描述

4. 总结

①zabbix可以实现邮件报警。
②zabbix可以实现服务端自动发现zabbix客户端,并为其添加主机、添加群组、链接模板。
③zabbix可以实现客户端自动注册,并添加主机、添加群组、链接模板。
④zabbix还可以实现其他方式告警。如微信、短信等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/49241
推荐阅读
  • 文章浏览阅读2.2k次,点赞98次,收藏98次。expect是由DonLibes基于Tcl(ToolCommandLanguage)语言开发的,是一种脚本语言,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程... [详细]

  • 文章浏览阅读1w次,点赞141次,收藏140次。探索LinuxDocker管理神器Portainer,解锁远程访问技巧,轻松图形化管理你的容器。LinuxDocker图形化工具Portainer远程访问文章目录前言1.部署Portainer... [详细]

  • 文章浏览阅读4.6k次,点赞126次,收藏147次。操作系统进程状态,以及Linux中的进程状态,僵尸进程,孤儿进程【Linux】探索Linux进程状态|僵尸进程|孤儿进程最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现... [详细]

  • 文章浏览阅读5.1k次,点赞151次,收藏135次。LinuxAMH服务器管理面板远程访问LinuxAMH服务器管理面板远程访问文章目录1.前言2.Linux安装AMH面板3.本地访问AMH面板4.Linux安装Cpolar5.配置AMH面... [详细]

  • 文章浏览阅读1.1w次,点赞32次,收藏103次。Linux安装MySQL【超详细版】_linux安装mysqllinux安装mysql一、安装MySQL的准备工作1.查看系统版本cat/etc/redhat-release12.查看系统是... [详细]

  • 文章浏览阅读723次。拿到dotnet-sdk-8.0.100-linux-x64.tar.gz文件。1.有些环境比较老的服务器,会出现如下的错误提示,需要更新c++库。执行命令检测是否安装成功,执行dotnet--version。2.把文... [详细]

  • 文章浏览阅读1.6k次,点赞77次,收藏70次。ssh操作需要免密附上本机免密脚本ssh_keygen.sh。执行完脚本成功登录。【Linux】Centos7shell实现MySQL5.7tar一键安装... [详细]

  • 文章浏览阅读987次,点赞43次,收藏32次。使用上面的Cpolarhttps公网地址,在任意设备的浏览器进行访问,即可成功看到我们AMH面板界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器... [详细]

  • 文章浏览阅读950次,点赞49次,收藏46次。本篇博客作为Linux常见指令的总结,主要是方便个人进行回顾使用。以上就是我对于Linux常见指令的总结。!!Linux:常见指令个人主页:个人主页个人专栏:《数据结构》《C语言》《C++》文章... [详细]

  • 文章浏览阅读2.8w次,点赞73次,收藏317次。ps命令用来查看系统进程,ps-ef:查看所有进程ps-aux:查看所有进程ps-ef|greptomcat:查看指定进程_psefgrep命令看进程psefgrep命令看进程「作者主页」:... [详细]

  • 文章浏览阅读1.2w次,点赞64次,收藏74次。Crontab是一个在Unix和Linux操作系统上用于定时执行任务的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab是crontable的缩... [详细]

  • 文章浏览阅读1.1k次,点赞76次,收藏65次。Linux|创建|删除|查看|基本命名详解Linux|创建|删除|查看|基本命名详解Linux|创建|删除|查看|基本命名详解文章目录Linux|创建|删除|查看|基本命名详解前言一、安装Li... [详细]

  • DataEase是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。在本地搭建后,借助cpolar内网穿透实现远... [详细]

  • 介绍socket编程,简单实现一个UDP服务器✨✨【Linux】套接字编程目录套接字IP+PORTTCP和UDP的介绍TCPUDP网络字节序转换接口UDP服务器的编写服务器的初始化 socketbindsockaddr结构服务器的... [详细]

  • 本文是对Linux中文件和目录权限的总结。以上就是我对于Linux中文件和目录权限的总结。!!Linux:权限个人主页:个人主页个人专栏:《数据结构》《C语言》《C++》《Linux》文章目录前言一、Linux权限的管理文件访问者的分类(身... [详细]

  • 看了这篇文章你将学到软硬链接的使用,以及制作自己的动静态库,并使用他们✨✨_动态库的软连接动态库的软连接系列文章收录于【Linux】文件系统 专栏关于文件描述符与文件重定向的相关内容可以移步 文件描述符与重定向操作。可以... [详细]

  • 讲述Linux的基本指令:man、cp、mv、cat、more、less、head、tail等指令。【走进Linux的世界】Linux---基本指令(2)个人主页:平行线也会相交欢迎点赞... [详细]

  • 上一篇文章中我们讲到了很多的网络名词以及相关知识,下面我们就直接进入udp服务器的实现。一、udp服务器的实现cc=g++.PHONY:allclean:我们通过all就可以创建多个可执行程序了,对于cc这个变量我们设置为g++,以后如果想... [详细]

  • Linux防火墙服务和区的不同配置操作,放行端口或服务等_linux防火墙配置linux防火墙配置目录防火墙介绍zones预定义服务firewalld启动与停止查看firewalld当前状态和设置使⽤CLI查看firewalld设置fire... [详细]

  • Linux MeterSphere一站式开源持续测试平台远程访问
    MeterSphere是一站式开源持续测试平台,涵盖测试跟踪、接口测试、UI测试和性能测试等功能,全面兼容JMeter、Selenium等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付,推... [详细]

相关标签
  

闽ICP备14008679号