zabbix监控及邮件报警

zabbix安装部署请参考
(https://blog.csdn.net/weixin_45636702/article/details/102952949)

一、安装zabbix客户端

既然要监控我们就要添加要监控的主机,在添加主机之前我们首先要在被检测主机上面安装 agent,安装 agent 比较简单,我们也是按照安装 server 的流程,下载软件包,在编译的时 候,我们只选择 agent

192.168.1.250 作为 zabbix 的被监控端,提供 web 和 mysql 应用

安装 Zabbix,配置 Zabbix agent:

[root@localhost ~]# tar zxf zabbix-3.2.1.tar.gz
[root@localhost ~]# cd  zabbix-3.2.1/
[root@localhost zabbix-3.2.1]# ./configure  --prefix=/usr/local/zabbix  --enable-agent
[root@localhost zabbix-3.2.1]# make  &&  make  install
[root@localhost zabbix-3.2.1]# cp  misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/
[root@localhost zabbix-3.2.1]# mkdir  -p  /usr/local/zabbix/logs
[root@localhost zabbix-3.2.1]# useradd  zabbix  -s  /sbin/nologin   -M
[root@localhost zabbix-3.2.1]# chown  -R zabbix:zabbix  /usr/local/zabbix/

配置开机自启动:

[root@localhost zabbix-3.2.1]# chkconfig  --add  zabbix_agentd
[root@localhost zabbix-3.2.1]# chkconfig  zabbix_agentd  on
[root@localhost zabbix-3.2.1]# vim  /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid

修改zabbix_agentd.conf文件:

[root@localhost ~]# vim  /usr/local/zabbix/etc/zabbix_agentd.conf
[root@localhost ~]# grep -v  ^#  /usr/local/zabbix/etc/zabbix_agentd.conf  |  grep -v ^$
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.1.10
ListenPort=10050
ServerActive=192.168.1.10
Hostname=192.168.1.250
Timeout=3
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

注: 其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动后者是主 动。也就是说 Server 这个配置是用来允许 192.168.31.225 这个 ip 来我这取数据。而 serverActive 的 192.168.31.225 的意思是,客户端主动提交数据给他。 Hostname=XXX,这个定义的名字必须和 web 页面里面 host 的名字一样

启动zabbix_agent:

[root@localhost ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl): [ 确定 ]

到此,zabbix监控系统的基本环境安装完成

二、实现 zabbix 添加监测项

添加对 Linux 主机的监控
在浏览器中打开:http://192.168.1.10/zabbix
登录zabbix,配置----主机----创建主机

选择模板添加Template OS Linux模板,点击添加


配置过一段时间后,观察下监控图效果出来了没:

三、监控MySQL

使用脚本一键安装MySQL:
Zabbix_agent 客户端操作:

[root@localhost ~]# sh  mysql.sh
Starting MySQL. SUCCESS!
mysql: [Warning] Using a password on the command line interface can be insecure

首先在客户端的 mysql 里添加权限,使用 zabbix 账号连接本地的 mysql :

[root@localhost ~]# mysql -uroot -p123
mysql>  grant all on *.* to zabbix@'192.168.1.%' identified by "123.com";

在 zabbix_agent 服务目录下创建.my.cnf 连接文件:

[root@localhost ~]# cd  /usr/local/zabbix/etc/
[root@localhost etc]# vim  .my.cnf
[client]
host=192.168.1.20
user=zabbix
password=123.com
socket=/usr/local/mysql/mysql.sock

注意:

如果在数据库 grant 授权时,针对的是 localhost,这个.my.cnf 里面就不用加 host 参数了
但如果 grant 授权时针对的是本机的 ip,那么在.my.cnf 文件里就要加上host 参数进行指定了

配置 MySQL 的 key 文件 :
这个可以从 zabbix3.2 安装时的解压包里拷贝过来:

[root@localhost ~]# cp  zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf  /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@localhost ~]# cd  /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@localhost zabbix_agentd.conf.d]# vim  userparameter_mysql.conf

看到类似 HOME=/var/lib/zabbix 的路径设置,把路 径全都替换为 /usr/local/zabbix/etc/,也就是上面的.my.cnf 文件所在的目录路径。 mysql命令路径也要改给就对路径

UserParameter=mysql.status[*],echo “show global status where Variable_name=’$1’;” | HOME=/usr/local/zabbix/etc /usr/local/mysq/bin/mysql -N | awk ‘{print $$2}’

UserParameter=mysql.size[*],bash -c 'echo “select sum($(case “$3” in both|”") echo “data_length+index_length”;; data|index) echo “$3_length”;; free) echo “data_free”;; esac)) from information_schema.tables $([[ “$1” = “all” || ! “$1” ]] || echo " where table_schema="KaTeX parse error: Can't use function '\"' in math mode at position 2: 1\̲"̲")([[ “$2” = “all” || ! “$2” ]] || echo “and table_name=”$2"");" | HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N’

UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysqladmin ping | grep -c alive
UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V

重启 zabbix_agent:

[root@localhost ~]# /etc/init.d/zabbix_agentd  restart

在 zabbix_server 服务端进行命令行测试:

[root@localhost ~]# zabbix_get  -s  192.168.1.20  -p  10050  -k  "mysql.status[Threads_connected]"
1
[root@localhost ~]# zabbix_get -s 192.168.1.20 -p 10050 -k "mysql.status[Uptime]"
2773

如果出现类似这一串 key 的数字,就说明配置 ok,服务端能监控到客户端的 mysql 数据了!
成功啦,之后在监控界面增加主机对应的 MySQL 模板就 ok 了。
zabbix_get 命令介绍 :
参数说明:
-s --host:指定客户端主机名或者 IP
-p --port:客户端端口,默认 10050
-I --source-address:指定源 IP,写上 zabbix server 的 ip 地址即可,一般留空,服务器如果有 多 ip 的时候,你指定一个。
-k --key:你想获取的 key
zabbix_get 获取数据

回到web界面:
配置----主机----选择刚才创建的主机----模板----选择Template App MySQL模板—添加

zabbix 邮件报警设置:

Zabbix 监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix 监控运行正常。 在 Zabbix 服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送 报警邮件到指定邮箱

以下操作在 Zabbix 监控服务端进行

安装sendmeail软件:
首先安装依赖包:

[root@localhost ~]# yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

解压软件,然后将 sendemail 复制到/usr/local/bin/目录下,并加上可执行权限,然后修改用 户和群组:

[root@localhost ~]# tar zxf sendEmail-v1.56.tar.gz
[root@localhost sendEmail-v1.56]# cp  sendEmail /usr/local/bin/sendEmail
[root@localhost sendEmail-v1.56]# chown  zabbix:zabbix  /usr/local/bin/sendEmail

进入/usr/local/zabbix/share/zabbix/alertscripts/目录,后在这个目录下创建报警脚本mail.sh:

[root@localhost ~]# cd  /usr/local/zabbix/share/zabbix/alertscripts/
[root@localhost alertscripts]# vim  mail.sh
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail  -o  tls=auto  -f  2960824193@qq.com  -t  "$to"  -s  smtp.qq.com  -u  "$subject"  -o  message-content-type=html  -o  mesage-charset=utf8  -xu  2960824193@qq.com   -xp  eckcyhwcaumyddhd  -m  "$body

命令主要选项说明:
/usr/local/bin/sendEmail:命令主程序
-f 2960824193@qq.com:发件人邮箱
-t:收件人邮箱
-s smtp.qq.com:发件人邮箱的 smtp 服务器
-u:邮件的标题
-o message-content-type=html:邮件内容的格式,html 表示它是 html 格式
-o message-charset=utf8:邮件内容编码
-xu 2960824193@qq.com:发件人邮箱的用户名
-xp mgrhqixlxvvudcdi:开启POP3/SMTP服务,在第三方客户端登录时,密码框输入的授权码
-m:邮件的具体内容

授权码操作:

登录qq邮箱,点击设置—帐户,往下拉,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启POP3/SMTP服务

修改/usr/local/bin/senmail:
将1906行修改为:
if (! IO::Socket::SSL->start_SSL($SERVER)) {

执行脚本测试发邮件:

[root@localhost alertscripts]# sh  mail.sh  2960824193@qq.com  test  123


zabbix web 端配置 :

上面的邮件脚本配置好后,就要在 web 端添加报警媒介:

管理—报警媒介类型—创建报警媒介类型:


管理----用户----Admin----报警媒介----添加:


配置----动作----创建动作


点击上面的操作: ----发送到用户选择Admin—仅发送邮件报警—添加


恢复操作一样的配置: —然后点击添加



配置触发器:
配置----主机----触发器----群组选择Template----主机选择Template App Zabbix Agent----将Zabbix agent on {HOST.NAME} is unreachable for 5 minutes改为1分钟


报警测试:
将192.168.1.20服务器的zabbix进程关闭:

[root@localhost ~]# /etc/init.d/zabbix_agentd  stop

等待邮件报警:

启动zabbix_agente:

[root@localhost ~]# /etc/init.d/zabbix_agentd  start


企业微信报警:
登录企业微信后台----通讯录----添加子部门----导入用户----查看部门ID

应用管理----创建应用----名称随便写----添加部门—选择刚才创建的子部门和主部门和用户----创建完成后可以查看到Secret AgentID


查看企业CorpID------我的企业:

编写脚本:

[root@localhost alertscripts]# pwd
/usr/local/zabbix/share/zabbix/alertscripts
[root@localhost alertscripts]# vim  weixin.sh
#!/bin/bashCropID='ww0977cd1ab2b55439'  #这里填写企业CorpID
Secret='VCk5AlFZnKJmhV_vHk8fYyhKl_2MMXs6dJ_HAdYHc_Y'  #这里填写应用Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl  $GURL -H "DNT: 1" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/8.1 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "X-DevTools-Emulate-Network-Conditions-Client-Id: B546FC80-414C-403F-95F0-EB0F70E58EF7" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed | awk -F \" '{print $10}')PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {local int appId=1000002 #这里填写应用AgentIDlocal userId=$1local partyId=2   #这里填写部门IDlocal msg=$(echo "$@" | cut -d" " -f3-)printf '{\n'printf '\t"touser":"'"$userId"\"",\n"printf '\t"toparty":"'"$partyId"\"",\n"printf '\t"msgtype": "text",'"\n"printf '\t"agentid":"'"$appId"\"",\n"printf '\t"text":{\n'printf '\t\t"content":"'"$msg"\"printf '\n\t},\n'printf '\t"safe":"0"\n'printf '}\n'
}
body $1 $2 $3
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
[root@localhost alertscripts]# chmod  +x  weixin.sh

回到web界面,再创建一个报警媒介类型:

管理----用户----admin-----报警媒介—添加


配置----动作----创建动作:


操作:



恢复操作:


配置触发器:


报警测试:
将 192.168.1.20 服务器的 zabbix_agent 进程关闭

[root@localhost alertscripts]# /etc/init.d/zabbix_agentd  stop


已经收到了报警信息

zabbix监控及邮件报警相关推荐

  1. 搭建zabbix监控及邮件报警(超详细教学)

    zhbbix 一.zabbix 1.1 简介 1.2 zabbix主要功能 1.3 zabbix的主要特点 1.4 zabbix组件 1.5 zabbix原理 二.基于LNMP环境搭建zabbix监控 ...

  2. 自动化监控--zabbix中的邮件报警通知详解

    前言 在自动化监控–zabbix安装和配置详解我们已经完成了zabbix监控的安装部署,今天我们就在它的基础上来实现一下自动监控的邮件报警通知. 添加一台主机 首先,添加一台host 只需填写Host ...

  3. 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)

    环境说明 centos 7 版本 zabbix 6.0 版本 主机名 IP地址 备注 zabbix 192.168.10.150 服务端,同时自我监控 zabbix-2 192.168.10.151 ...

  4. Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]

    -------------------- 添加 zabbix 客户端主机 -------------------- 关闭防火墙 systemctl disable --now firewalld se ...

  5. [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知

     前提条件: (1) zabbixserver端已经安装成功而且执行. (2) zabbixclient已经成功建立而且执行. 1 下载而且安装msmtp软件 Wget http://sourcefo ...

  6. Zabbix 如何实现邮件报警通知以及免费短信报警通知

     前提条件: (1) zabbix服务器端已经成功安装并且运行. (2) zabbix客户端已经成功建立并且运行. 1 下载并且安装msmtp软件 Wget http://sourceforge.ne ...

  7. linux 本机发送邮件 smtp-server 553,Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535...

    原始问题背景: 前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来.因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通 ...

  8. zabbix之 qq邮件报警

    一.安装sendmail或postfix [root@zabbix ~]# yum install sendmail –y                     #在线yum安装sendmail [ ...

  9. Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535

    原始问题背景: 前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来.因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通 ...

最新文章

  1. C# WinForm 通过URL取得服务器上的某图片文件到本地
  2. SAP Commerce的路由实现(Route Implementation)
  3. C/C++函数指针与指针函数
  4. iOS之NSURLSessionDownloadTask下载
  5. 七牛云 转码_开发者选择短视频SDK,为何青睐七牛云?
  6. vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性
  7. RR调度(Round-robin scheduling)简单介绍
  8. HDU 2089:不要62(数位DP)
  9. 如何新建Spring Boot工程
  10. tasklist 结束进程_netstat -ano,ntsd;tasklist,tskill-查看杀死进程命令 | 学步园
  11. java 添加字段注释_java自定义注释
  12. fiddler对模拟器抓包
  13. 什么是虚短、虚断、虚地
  14. 优秀的求职者,是如何巧妙应对面试提问呢?
  15. freeswitch cdr mysql_freeswitch XML CDRS
  16. HDU 6080 2017百度之星程序设计大赛 - 资格赛
  17. 计算机类绘图的文献,绘图计算机论文,关于机械制图计算机绘图的有效融合相关参考文献资料-免费论文范文...
  18. 新库上线 | CnOpenData中国各地区方言信息数据
  19. 分享 60 个相见恨晚的神器工具
  20. 由FlexBox算法强力驱动的Weex布局引擎

热门文章

  1. wps 表格边框内文字往下移动自动就没了,也不显示在下一页
  2. GFP、GSP和VCG的特点和介绍
  3. 国内首家!HMS创新解决AGV系统安全急停难题!
  4. centos安装KDE桌面
  5. java 对象验证非空_判断Bean对象指定字段非空
  6. led灯串怎么摆造型_LED发光铜线灯串
  7. 软件工程习题,耦合性的概念如何与软件可移植性相关联?举例支持你的论述,应用逐步求精法为下列程序开发三种不同级别的过程抽象
  8. 供应链解决方案SRM是什么?企业实施SRM有什么价值?
  9. 关于数据中台建设,“新旧”两种思路对比
  10. js array formdata_这样写的 JS 代码看着就很舒服