通过部署Zabbix监控可以简单的部署zabbix server端,这篇博文主要介绍如何部署zabbix agent端。前提是必须基于上述博文zabbix server的环境。

一、部署zabbix agent端

下载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监控之邮件报警_第1张图片
部署Zabbix监控之邮件报警_第2张图片
部署Zabbix监控之邮件报警_第3张图片
部署Zabbix监控之邮件报警_第4张图片
部署Zabbix监控之邮件报警_第5张图片
至此在zabbix server提供的web页面中,已经可以监控到zabbix agent端的信息!

三、客户端部署Mysql服务

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监控之邮件报警_第6张图片
由于其复杂性,关于其内容先不做任何解释了!

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:指定需要获取的值
//有消息返回就表示正常

四、配置zabbix server可以监控mysql

如图:
部署Zabbix监控之邮件报警_第7张图片
部署Zabbix监控之邮件报警_第8张图片
部署Zabbix监控之邮件报警_第9张图片

出现上述情况则表示mysql监控成功!

五、配置邮件报警

以上操作需在zabbix server端进行配置!

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

在接下来的操作中,需要有自己邮箱的授权码,这里以QQ邮箱为例(163或新浪邮箱都是可以的),操作如如图:
部署Zabbix监控之邮件报警_第10张图片
部署Zabbix监控之邮件报警_第11张图片
部署Zabbix监控之邮件报警_第12张图片
部署Zabbix监控之邮件报警_第13张图片
部署Zabbix监控之邮件报警_第14张图片
配置完成后,编写以下脚本进行测试:

[root@zabbix ~]# /usr/local/bin/sendEmail -o tls=no -f [email protected] -t [email protected] -s smtp.qq.com -u lzj -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp mdwvlrlmeaxofidj -m hello world
Jan 09 15:43:26 zabbix sendEmail[2300]: Email was sent successfully!
//测试访问没有问题

收到的邮件如图:
部署Zabbix监控之邮件报警_第15张图片

[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 [email protected] -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp mdwvlrlmeaxofidj -m "$body"
[root@zabbix alertscripts]# chmod +x mail.sh 
[root@zabbix alertscripts]# sh mail.sh [email protected] test 123456
脚本中各项解释如下:
/usr/local/bin/sendEmail:命令主程序;
-f [email protected] :发件人邮箱
-t [email protected] :收件人邮箱
-s smtp.126.com :发件人邮箱的 smtp 服务器
-u "我是邮件主题" :邮件的标题 
-o message-content-type=html:邮件内容的格式,html 表示它是 html 格式
-o message-charset=utf8:邮件内容编码
-xu [email protected]:发件人邮箱的用户名
-xp WEE78@12l$ #发件人邮箱授权码(就是我刚刚生成的那个授权码)
-m "我是邮件内容" :邮件的具体内容
测试是否可以成功发送邮件

收到的邮件如下:
部署Zabbix监控之邮件报警_第16张图片

接下来回到zabbix server提供的web页面!

1)添加报警媒介

如图:
部署Zabbix监控之邮件报警_第17张图片
部署Zabbix监控之邮件报警_第18张图片
部署Zabbix监控之邮件报警_第19张图片

2)将报警媒介关联到用户

如图:
部署Zabbix监控之邮件报警_第20张图片
部署Zabbix监控之邮件报警_第21张图片
部署Zabbix监控之邮件报警_第22张图片
部署Zabbix监控之邮件报警_第23张图片

3)创建触发动作

如图:
部署Zabbix监控之邮件报警_第24张图片
部署Zabbix监控之邮件报警_第25张图片
部署Zabbix监控之邮件报警_第26张图片
部署Zabbix监控之邮件报警_第27张图片
部署Zabbix监控之邮件报警_第28张图片
部署Zabbix监控之邮件报警_第29张图片
部署Zabbix监控之邮件报警_第30张图片
部署Zabbix监控之邮件报警_第31张图片

4)配置触发器

部署Zabbix监控之邮件报警_第32张图片
部署Zabbix监控之邮件报警_第33张图片
部署Zabbix监控之邮件报警_第34张图片
部署Zabbix监控之邮件报警_第35张图片

5)测试触发器

将agent端服务器的zabbix_agent进程关闭,邮箱可以收到邮件则表示配置正确。

[root@agent ~]#  /etc/init.d/zabbix_agentd stop
//关闭zabbix agent进程

收到邮件如图:
部署Zabbix监控之邮件报警_第36张图片

[root@agent ~]#  /etc/init.d/zabbix_agentd start
//关闭zabbix agent进程

收到的邮件如下:
部署Zabbix监控之邮件报警_第37张图片

————————未完待续——————————