通过部署Zabbix监控可以简单的部署zabbix server端,这篇博文主要介绍如何部署zabbix agent端。前提是必须基于上述博文zabbix server的环境。
博文大纲:一、部署zabbix agent端二、配置zabbix server的web页面可以监控到客户端主机三、客户端部署Mysql服务四、配置zabbix server可以监控mysql五、配置邮件报警六、配置企业微信报警
下载zabbix软件
[root@agent ~]# tar zxf zabbix-3.2.1.tar.gz && cd zabbix-3.2.1/ [root@agent zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install // --enable-agent :开启zabbix agent模式 [root@agent ~]# useradd zabbix [root@agent ~]# cp /root/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ //将zabbix agent脚本文件复制到/etc/init.d/目录下 [root@agent ~]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd //编译启动脚本中指定zabbix的安装路径 [root@agent ~]# chmod +x /etc/init.d/zabbix_agentd [root@agent ~]# cd /usr/local/zabbix/etc/ [root@agent etc]# sed -i '/PidFile=/s/^#//' zabbix_agentd.conf [root@agent etc]# sed -i 's/Server=127.0.0.1/Server=192.168.1.10/g' zabbix_agentd.conf [root@agent etc]# sed -i '/ListenPort=/s/^#//' zabbix_agentd.conf [root@agent etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.10/g' zabbix_agentd.conf [root@agent etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.1.8/g' zabbix_agentd.conf [root@agent etc]# echo -e "Timeout=15" >> zabbix_agentd.conf [root@agent etc]# echo -e "Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/" >> zabbix_agentd.conf [root@agent etc]# egrep -v '^$|^#' zabbix_agentd.conf //确保配置文件没有错误 PidFile=/tmp/zabbix_agentd.pid LogFile=/tmp/zabbix_agentd.log Server=192.168.1.10 //指定zabbix server的IP地址(被动模式下) ListenPort=10050 //指定监听的端口 ServerActive=192.168.1.10 //指定zabbix server的IP地址(主动模式下) Hostname=192.168.1.8 //指定的名字必须和web页面的host的名字一样 Timeout=15 //超时时间 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ [root@agent ~]# /etc/init.d/zabbix_agentd start //启动zabbix服务 Reloading systemd: [ 确定 ] Starting zabbix_agentd (via systemctl): [ 确定 ] [root@agent ~]# netstat -anpt | grep zabbix //确认其监听端口 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 9587/zabbix_agentd
如图:
至此在zabbix server提供的web页面中,已经可以监控到zabbix agent端的信息!
zabbix agent端可以使用yum的方式部署mysql服务,但是建议使用源码编译的方式,但是考虑到源码编译安装时间太长,所以提供一键式脚本安装mysql,与源码编译安装一致!对源码编译安装感兴趣的可以参考编译安装mysql
以下操作需在zabbix agent端进行配置!
[root@agent ~]# ls | grep mysql mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz mysql.sh [root@agent ~]# sh mysql.sh Starting MySQL. SUCCESS! mysql: [Warning] Using a password on the command line interface can be insecure. [root@agent ~]# cd /root/zabbix-3.2.1/conf/zabbix_agentd/ [root@agent zabbix_agentd]# cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ //复制zabbix源码包自带的mysql模板文件 [root@agent zabbix_agentd]# cd /usr/local/zabbix/etc/ [root@agent etc]# echo -e "[client]\nhost=192.168.1.8\nuser=test\npassword=123.com\nsocket=/usr/local/mysql/mysql.sock" > .my.cnf [root@agent etc]# cat .my.cnf [client] host=192.168.1.8 //指定mysql数据库IP地址 user=test //指定用于测试的用户 password=123.com //用户对应的密码 socket=/usr/local/mysql/mysql.sock //指定mysql.sock文件所在的路径(rpm安装的可以不用写) [root@agent etc]# mysql -u root -p123 //脚本提供的mysql数据库root用户密码默认是123 mysql> grant all on *.* to test@'192.168.1.%' identified by '123.com'; //创建授权规则 [root@agent etc]# cd zabbix_agentd.conf.d/ [root@agent zabbix_agentd.conf.d]# sed -i 's#HOME=/var/lib/zabbix mysql#HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql#g' userparameter_mysql.conf //更改文件中zabbix的安装位置及mysql命令所在位置 [root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart //重新加载配置文件
zabbix提供的模板文件修改后的内容,如图:由于其复杂性,关于其内容先不做任何解释了!
zabbix server使用以下命令进行验证:
[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "mysql.status[Uptime]" 1662 //zabbix_get:获取数据 //-s:指定客户端的IP地址或域名 //-p:指定客户端的端口(默认情况下是10050) //-k:指定需要获取的值 //有消息返回就表示正常
出现上述情况则表示mysql监控成功!
zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件、短信、微信等方式,本次博文主要介绍邮件、微信报警的实现方式。
以上操作需在zabbix server端进行配置!
[root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz [root@zabbix ~]# cp sendEmail-v1.56/sendEmail /usr/local/bin/ [root@zabbix ~]# chown zabbix:zabbix /usr/local/bin/sendEmail
在接下来的操作中,需要有自己邮箱的授权码,这里以QQ邮箱为例(163或新浪邮箱都是可以的),操作如如图:配置完成后,使用以下命令并编写脚本进行测试:
[root@zabbix ~]# /usr/local/bin/sendEmail -o tls=no -f 1454295320@qq.com -t 1454295320@qq.com -s smtp.qq.com -u lzj -o message-content-type=html -o message-charset=utf8 -xu 1454295320@qq.com -xp mdwvlrlmeaxofidj -m hello world Jan 09 15:43:26 zabbix sendEmail[2300]: Email was sent successfully! //测试访问没有问题
收到的邮件如图:
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts //必须在这个目录下,否则zabbix识别不到脚本 [root@zabbix alertscripts]# vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -o tls=no -f 1454295320@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 1454295320@qq.com -xp mdwvlrlmeaxofidj -m "$body" [root@zabbix alertscripts]# chmod +x mail.sh [root@zabbix alertscripts]# sh mail.sh 1454295320@qq.com test 123456
脚本中各项解释如下: /usr/local/bin/sendEmail:命令主程序; -f from@126.com :发件人邮箱 -t to@126.com :收件人邮箱 -s smtp.126.com :发件人邮箱的 smtp 服务器 -u "我是邮件主题" :邮件的标题 -o message-content-type=html:邮件内容的格式,html 表示它是 html 格式 -o message-charset=utf8:邮件内容编码 -xu from@126.com:发件人邮箱的用户名 -xp WEE78@12l$ #发件人邮箱授权码(就是我刚刚生成的那个授权码) -m "我是邮件内容" :邮件的具体内容 测试是否可以成功发送邮件
收到的邮件如下:
接下来回到zabbix server提供的web页面!
将agent端服务器的zabbix_agent进程关闭,邮箱可以收到邮件则表示配置正确。
[root@agent ~]# /etc/init.d/zabbix_agentd stop //关闭zabbix agent进程
收到邮件如图:
[root@agent ~]# /etc/init.d/zabbix_agentd start //关闭zabbix agent进程
要想实现企业微信报警,需自己注册一个企业微信,由于其过程过于简单,这里就略过了,有企业微信的用户直接进行以下操作:
如图:也可点击用户查看用户的详细信息:
如图:创建成功,如图:
[root@zabbix alertscripts]# pwd /usr/local/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# ls weixin.sh weixin.sh //脚本在博文开头的zabbix软件包中存在 //自行修改脚本中的内容,根据提示即可,脚本中带”#“号的注释需修改 [root@zabbix alertscripts]# chmod o+x weixin.sh [root@zabbix alertscripts]# sh weixin.sh 1 1 test //测试脚本,第一、二个位置变量没有任何意义,第三个位置变量才是发送的实际内容
执行完成上述命令,没有错误的情况下,企业微信会收到以下信息,如图:
登录到web页面:
如图:上面的收件人设置,这个收件人就是在微信企业号后台中,通讯录下面的成员详情看到的账号,一定不要写错了。
填写的内容,可从下面复制:
服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
服务器:{HOST.NAME}:{TRIGGER.NAME}故障已恢复 告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE}{EVENT.TIME} 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持续时间:{EVENT.AGE} 事件ID:{EVENT.ID}
至此微信告警已经配置完成!
[root@localhost zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd stop //agent模拟故障
企业微信收到的内容如下:
[root@localhost zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd start //恢复agent端
至此,微信报警已经配置完成,并且已经测试!
————————本文已完,感谢阅读——————————