zabbix监控及邮件报警
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监控及邮件报警相关推荐
- 搭建zabbix监控及邮件报警(超详细教学)
zhbbix 一.zabbix 1.1 简介 1.2 zabbix主要功能 1.3 zabbix的主要特点 1.4 zabbix组件 1.5 zabbix原理 二.基于LNMP环境搭建zabbix监控 ...
- 自动化监控--zabbix中的邮件报警通知详解
前言 在自动化监控–zabbix安装和配置详解我们已经完成了zabbix监控的安装部署,今天我们就在它的基础上来实现一下自动监控的邮件报警通知. 添加一台主机 首先,添加一台host 只需填写Host ...
- 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)
环境说明 centos 7 版本 zabbix 6.0 版本 主机名 IP地址 备注 zabbix 192.168.10.150 服务端,同时自我监控 zabbix-2 192.168.10.151 ...
- Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]
-------------------- 添加 zabbix 客户端主机 -------------------- 关闭防火墙 systemctl disable --now firewalld se ...
- [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知
前提条件: (1) zabbixserver端已经安装成功而且执行. (2) zabbixclient已经成功建立而且执行. 1 下载而且安装msmtp软件 Wget http://sourcefo ...
- Zabbix 如何实现邮件报警通知以及免费短信报警通知
前提条件: (1) zabbix服务器端已经成功安装并且运行. (2) zabbix客户端已经成功建立并且运行. 1 下载并且安装msmtp软件 Wget http://sourceforge.ne ...
- linux 本机发送邮件 smtp-server 553,Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535...
原始问题背景: 前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来.因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通 ...
- zabbix之 qq邮件报警
一.安装sendmail或postfix [root@zabbix ~]# yum install sendmail –y #在线yum安装sendmail [ ...
- Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535
原始问题背景: 前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来.因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通 ...
最新文章
- C# WinForm 通过URL取得服务器上的某图片文件到本地
- SAP Commerce的路由实现(Route Implementation)
- C/C++函数指针与指针函数
- iOS之NSURLSessionDownloadTask下载
- 七牛云 转码_开发者选择短视频SDK,为何青睐七牛云?
- vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性
- RR调度(Round-robin scheduling)简单介绍
- HDU 2089:不要62(数位DP)
- 如何新建Spring Boot工程
- tasklist 结束进程_netstat -ano,ntsd;tasklist,tskill-查看杀死进程命令 | 学步园
- java 添加字段注释_java自定义注释
- fiddler对模拟器抓包
- 什么是虚短、虚断、虚地
- 优秀的求职者,是如何巧妙应对面试提问呢?
- freeswitch cdr mysql_freeswitch XML CDRS
- HDU 6080 2017百度之星程序设计大赛 - 资格赛
- 计算机类绘图的文献,绘图计算机论文,关于机械制图计算机绘图的有效融合相关参考文献资料-免费论文范文...
- 新库上线 | CnOpenData中国各地区方言信息数据
- 分享 60 个相见恨晚的神器工具
- 由FlexBox算法强力驱动的Weex布局引擎
热门文章
- wps 表格边框内文字往下移动自动就没了,也不显示在下一页
- GFP、GSP和VCG的特点和介绍
- 国内首家!HMS创新解决AGV系统安全急停难题!
- centos安装KDE桌面
- java 对象验证非空_判断Bean对象指定字段非空
- led灯串怎么摆造型_LED发光铜线灯串
- 软件工程习题,耦合性的概念如何与软件可移植性相关联?举例支持你的论述,应用逐步求精法为下列程序开发三种不同级别的过程抽象
- 供应链解决方案SRM是什么?企业实施SRM有什么价值?
- 关于数据中台建设,“新旧”两种思路对比
- js array formdata_这样写的 JS 代码看着就很舒服