一.zabbix 客户端的安装既然要监控我们就要添加要监控的主机,在添加主机之前我们首先要在被检测主机上面安装agent,安装 agent 比较简单,我们也是按照安装 server 的流程,下载软件包,在编译的时候,我们只选择 agent192.168.1.20 作为 zabbix 的被监控端,提供 web 和 mysql 应用1.安装 Zabbix,配置 Zabbix agent:
21 rz (上传zabbix-3.2.1.tar.gz) 22 ls 23 tar zxf zabbix-3.2.1.tar.gz (解压) 24 cd zabbix-3.2.1/ 25 ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install (编译安装) 2.优化一下zabbix 23 cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ (拷贝启动文件) 24 vim /etc/init.d/zabbix_agentd (修改启动文件) BASEDIR=/usr/local/Zabbix #22 PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #31 25 cd /usr/local/zabbix/etc/ 26 vim zabbix_agentd.conf (修改zabbix配置文件) 28 grep -v "^#" /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v "^$" PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid #11 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log #30 Server=192.168.1.10 #91 服务端IP ListenPort=10050 #99去注释 ListenIP=0.0.0.0 #去注释 ServerActive=192.168.1.10 #132 服务端IP Hostname=192.168.1.30 #IP随便 Timeout=3 #去注释 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #262
29 mkdir /usr/local/zabbix/logs (创建所需目录) 30 useradd zabbix -s /sbin/nologin -M (创建所需用户) 33 chown -R zabbix:zabbix /usr/local/zabbix/ (让用户可执行/usr/local/zabbix) 34 ll /usr/local/zabbix/ (查看一下/usr/local/zabbix的属组和属主)
3.开机自启
36 chkconfig --add zabbix_agentd (添加启动) 37 chkconfig zabbix_agentd on (开启自启) 38 /etc/init.d/zabbix_agentd start (开启zabbix) 40 netstat -anpt | grep 10050 (查看端口)
到此, zabbix3.2.1 监控系统的基本环境安装完成。4.实现 zabbix 添加监测项添加对 Linux 主机的监控在浏览器中打开: http://192.168.31.225/zabbix登录 zabbix,先在“配置”-“主机”里添加主机监控,监控 os 资源:内存, cpu, io,负载,带宽等.登录 zabbix,先在“配置”-“主机”里单击”创建主机”注意:下图中的“主机名称”要和 zabbix_agentd.conf 文件中设置的“Hostname”后面的名称一致!主机名称: 192.168.1.30群组: Linux serversagent 代理程序接口ip: 192.168.1.10已启用: 勾选其它选项默认即可切换到模板选择选择: Template OS Linux点添加添加至此, Zabbix 监控 Linux 主机设置完成。配置过一段时间后,观察下监控图效果出来了没zabbix3.0 server 已自带 mysql 的模板了,只需配置好 agent 客户端,然后在 web 端给主机增加模板就行了。
二.Zabbix_agent 客户端操作使用脚本安装MySQL
43 rz 上传mysql安装包和脚本 44 sh mysql.sh 45 history 46 netstat -anpt | grep 3306 查看IP
Mysql.sh脚本内容
#!/bin/bash tar -zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz #将二进制包移动到/usr/local/mysql mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql #创建data目录 mkdir /usr/local/mysql/data #创建用户和组并赋予文件夹权限 groupadd -r mysql useradd -r -g mysql -M -s /bin/false mysql chown -R mysql:mysql /usr/local/mysql #删除centos7中自带的mariadb-libs rpm -e mariadb-libs --nodeps #设置my.cnf配置文件 cat> /etc/my.cnf <<EOF [client] socket=/usr/local/mysql/mysql.sock [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data pid-file=/usr/local/mysql/data/mysql.pid socket=/usr/local/mysql/mysql.sock log-error=/usr/local/mysql/data/mysql.err EOF #做服务的软链接 ln -s /usr/local/mysql/bin/* /usr/local/bin/ #mysql初始化 mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data #服务自启动 mv /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #启动mysql并修改密码为123 /etc/init.d/mysqld start mysqlpwd=` grep password /usr/local/mysql/data/mysql.err |awk -F 'root@localhost: ' '{print $2}'` mysql -uroot -p${mysqlpwd} -e 'alter user root@localhost identified by"123"' --connect-expired-password
(1)在 zabbix_agent 服务目录下创建.my.cnf 连接文件zabbix 安装目录是/usr/local/zabbix
56 cd /usr/local/zabbix/etc/ 57 vim .my.cnf [client] host=192.168.1.20 #自己客户端IP socket= /usr/local/mysql/mysql.sock user=test password=123.com
(2)配置 MySQL 的 key 文件
48 cd zabbix-3.2.1/conf/zabbix_agentd/ 49 ls 50 ls /usr/local/zabbix/etc/ 51 cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ (复制配置文件) 52 cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/ 53 ls
然后查看 userparameter_mysql.conf 文件,看到类似 HOME=/var/lib/zabbix 的路径设置,把路径全都替换为 /usr/local/zabbix/etc/,也就是上面的.my.cnf 文件所在的目录路径。另外,注意 userparameter_mysql.conf 文件里的 mysql 命令路径(提前做好 mysql 的系统环境变量,以防 mysql 命令不被系统识别)如下:vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
60vim/usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf OME=/usr/local/zabbix/etc mysql -N | awk '{print $$2}' #6HOME=/usr/local/zabbix/etc mysql -N' #15UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc mysqladmin ping | grep -c alive #17
61 /etc/init.d/zabbix_agentd restart (重启)服务端验证 zabbix_get -s 192.168.1.20 -p 10050 -k mysql.status[Uptime]客户端修改
68 vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf OME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N | awk '{print $$2}' #6 HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N' #15 UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysqladmin ping | grep -c alive #17 UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V #18 55 /etc/init.d/zabbix_agentd restart (重启)
服务端验证 zabbix_get -s 192.168.1.20 -p 10050 -k mysql.status[Uptime]
(3)mysql查看内容
58 mysql -u root -p123 grant all on *.* to test@'192.168.1.%' identified by '123.com'; show global status ; show global status where Variable_name='Uptime';
(4)登录 zabbix 监控界面,在“配置”-“模板”里可以看到自带的 mysql 监控模板在相应主机监控配置里添加 mysql 的监控模版(zabbix 自带的)即可。
【1】 监控 mysql 的带宽:在 zabbix 前端可以实时查看 mysql 发送接收的字节数。其中 bytesreceived 表示从所有客户端接收到的字节数, bytes sent 表示发送给所有客户端的字节数。【2】监控 mysql 的操作状态:在 zabbix 前端可以实时查看各种 SQL 语句每秒钟的操作次数
三.zabbix3.2.1 邮件报警设置:(服务器配置)Zabbix 监控服务端、客户端都已经部署完成,被监控主机已经添加, Zabiix 监控运行正常。在 Zabbix 服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。具体操作:以下操作在 Zabbix 监控服务端进行下载 sendemail 软件然后安装那两个依赖包,命令是:
244 yum install perl-Net-SSLeay perl-IO-Socket-SSL -y 245 rz (上传sendEmail-v1.56.tar.gz) 246 ls 247 tar zxf sendEmail-v1.56.tar.gz 248 cd sendEmail-v1.56/ 249 cp sendEmail /usr/local/bin/sendEmail (复制命令目录) 250 chown zabbix:zabbix /usr/local/bin/sendEmail (给zabbix执行权限)
1.(1).登上qq浏览器操作一下(2).服务端执行:可以看到他报错了sendEmail -f 123456@qq.com -t 123456@qq.com -s smtp.qq.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu 123456@qq.com -xp twjlhxzhsykjddcb -m "123"解决vim /usr/local/bin/sendEmailif (! IO::Socket::SSL->start_SSL($SERVER)) { #1906修改继续执行sendEmail -f 123456@qq.com -t 123456om -s smtp.qq.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu 123456@qq.com -xp twjlhxzhsykjddcb -m "123"现在已经发送邮件成功
(3)创建mail.sh邮件脚本
55 cd 56 vim mail.sh (创建邮件脚本) #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -o tls=auto -f 123456@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 123546@qq.com -xp twjlhxzhsykjddcb -m "$body"
执行脚本测试发邮件57 sh mail.sh223456@qq.com test 123 (执行脚本发送邮件)发送成功(4)把脚本移动到进入/usr/local/zabbix/share/zabbix/alertscripts/
mv mail.sh /usr/local/zabbix/share/zabbix/alertscripts/chown +x mail.sh
现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。在动作这一页名称中写入我们定义的动作名以及触发条件
配置触发器报警测试将 192.168.1.20 服务器的 zabbix_agent 进程关闭。发现可以正常收到故障报警邮件
/etc/init.d/zabbix_agentd stop可以看到已经成功发送qq邮箱收到报错信息
整个实验完毕