一、 配置zabbix监控apache服务
1、 安装apache服务并启动服务

[root@xuegod120 ~]# yum -y install httpd
 [root@xuegod120 ~]# systemctl start httpd
 [root@xuegod120 ~]# systemctl enable httpd

2、 修改apache配置文件,开启apache的server-status

[root@xuegod120 ~]# vim /etc/httpd/conf/httpd.conf #末尾加入如下内容
 ExtendedStatus On
 <location /server-status>
 SetHandler server-status
 Order allow,deny
 Allow from 127.0.0.1 192.168.1.0/24

3、 重启apache服务,测试
[root@xuegod120 ~]# systemctl restart httpd
看到如下界面,说明配置已经成功

4、 下载apache模板文件
Apache模板文件下载链接:https://github.com/lorf/zapache/archive/master.zip 将模板文件下载到服务器
[root@xuegod120 opt]# wget https://github.com/lorf/zapache/archive/master.zip

5、 解压下载包,并将文件复制到相关位置

[root@xuegod120 opt]# unzip master.zip
 [root@xuegod120 opt]# cd zapache-master/
 [root@xuegod120 zapache-master]# ls
 httpd-server-status.conf.sample zapache
README.md zapache-template-active.xml
 userparameter_zapache.conf.sample zapache-template.xml文件用途说明:
 httpd-server-status.conf.sample #是用于配置server-status的上个步骤已经配置过了
 userparameter_zapache.conf.sample 、zapache #关键的文件
 zapache-template-active.xml zapache-template.xml #模板将解压的文件放到相应目录
 [root@xuegod120 zapache-master]# cp zapache /usr/local/bin/
 [root@xuegod120 zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/
 [root@xuegod120 zapache-master]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
 [root@xuegod120 zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf

6、 修改zapache配置文件

[root@xuegod120 zabbix_agentd.conf.d]# vim userparameter_zapache.conf
 改:6 UserParameter=zapache[],/var/lib/zabbixsrv/externalscripts/zapache $1
 为:6 UserParameter=zapache[],/usr/local/bin/zapache $1查看是否有执行权限,如果没有增加执行权限
 [root@xuegod120 zabbix_agentd.conf.d]# ll /usr/local/bin/zapache
 -rwxr-xr-x 1 root root 6110 Jul 4 20:26 /usr/local/bin/zapache

7、 修改zabbix-agentd.conf文件

[root@xuegod120 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
 改:264 #Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
 为:264 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #启用引用此目录文件

8、 前端页面导入apache模板文件

将master.zip文件解压缩,然后导出模板文件

配置-----模板----导入,选择apache模板文件导入

zabbix 监控项调用JavaScript zabbix监控apache_apache


zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_02


zabbix 监控项调用JavaScript zabbix监控apache_apache监控_03


zabbix 监控项调用JavaScript zabbix监控apache_apache_04

9、 关联模板到主机

配置----主机(选择安装apache的客户端)

模板----选择(选择上面导入的模板)—添加----更新

zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_05


zabbix 监控项调用JavaScript zabbix监控apache_apache监控_06


zabbix 监控项调用JavaScript zabbix监控apache_apache监控_07


zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_08

10、 查看数据,筛选apache

zabbix 监控项调用JavaScript zabbix监控apache_apache_09


这里看到下面的监控都是正常启用状态,说明apache监控模板配置成功

zabbix 监控项调用JavaScript zabbix监控apache_apache_10

可以选择生产图形

zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_11


选择需要查看的监控项目,点击—显示堆叠图案,如下,有数据显示,说明已经开始监控apache服务

zabbix 监控项调用JavaScript zabbix监控apache_apache_12

注意:这里如果添加完监控模板后,发现apache的很多监控项目显示不支持状态,如下:

zabbix 监控项调用JavaScript zabbix监控apache_邮件监控告警_13


首先查看/tmp目录下的日志提示,如果提示如下错误:

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_14


可以看到提示访问server-status被拒绝,这里就说明,上面我们配置的server-status有问题

经过排查后,发现是允许列表的问题,修改为允许所有之后,等待几分钟后,所有监控模板都显示启用状态

修改为如下:

[root@xuegod120 ~]# vim /etc/httpd/conf/httpd.conf #末尾加入如下内容
 ExtendedStatus On
 <location /server-status>
 SetHandler server-status
 Order allow,deny
 Allow from all

重启httpd访问,再次查看apache的监控模板,如下

zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_15

二、 配置zabbix监控mysql
和监控我们的Apache 一样,寻找合适的脚本,不过,脚本并不是那么容易就可以找得到的! 要么自己手动去写,要么自己找到的拿来修改,都是需要花费代价的! Zabbix 默认提供了 MySQL 的监控模板。
1、 数据库用户授权

[root@xuegod120 ~]# mysql -uroot -p123456 –A
 mysql> grant usage on . to zabbix@’%’ identified by ‘`123456’;
 Query OK, 0 rows affected, 1 warning (0.09 sec)mysql> flush privileges;
 Query OK, 0 rows affected (0.05 sec)

2、 拷贝数据库模板到zabbix配置目录

[root@xuegod120 ~]# cp /root/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/


3、 修改上述文件

[root@xuegod120 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
 改:265 #Include=/usr/local /etc/zabbix_agentd.conf.d/.conf #启用并修改
 为:265 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/.conf


注意:在zabbix_agentd.conf文件中的Include项仅能开启一项,如果在配置apache时开启了一项Include了,那么在此就不需要再开启,否则会出错。

4、 建立数据库和zabbix的链接信息

[root@xuegod120 ~]# vim /usr/local/zabbix/etc/.my.conf
 #Zabbix Agent
 [mysql]
 host=localhost
 user=zabbix
 password=123456
 socket=/var/lib/mysql/mysql.sock[mysqladmin]
 host=localhost
 user=zabbix
 password=123456
 socket=/var/lib/mysql/mysql.sock

5、 修改mysql模板文件的路径

[root@xuegod120 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
 将 HOME=/var/lib/zabbix 全部改成 HOME=/usr/local/zabbix/etc/
 使用vim批量修改 :%s#/var/lib/zabbix#/usr/local/zabbix/etc/#g # #号表示分隔符

6、 重启zabbix-agentd服务

[root@xuegod120 ~]# /etc/init.d/zabbix_agentd restart
 Restarting zabbix_agentd (via systemctl): [ OK ]

7、 将模板应用到主机

zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_16


zabbix 监控项调用JavaScript zabbix监控apache_apache_17


zabbix 监控项调用JavaScript zabbix监控apache_apache_18


zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_19


8、 查看数据

zabbix 监控项调用JavaScript zabbix监控apache_邮件监控告警_20


三、 Zabbix邮件报警配置

邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件。

这里演示如何调用第三方邮件服务来发送邮件:

第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件

[root@xuegod63 ~]# yum install mailx

然后编辑mailx的配置文件

[root@xuegod63 ~]# vim /etc/mail.rc

在最末尾添加如下信息:

set from=xuegodman@163.com set smtp=smtp.163.com
 set smtp-auth-user=xuegodman@163.com
 set smtp-auth-password=你的密码 注意:此为163邮箱设置的客户端授权密码
 set smtp-auth=login

zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_21


这里的xxxxxx@163.com 表示发送账号

保存退出后测试邮件是否能够正常发送出去

[root@xuegod63 ~]# echo “zabbix test mail” |mailx -s “zabbix” XXXX@163.com

在zabbix服务端写邮件发送脚本:
[root@xuegod63 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@xuegod63 alertscripts]# vim sendmail.sh #!/bin/bash
messages=echo $3 | tr '\r\n' '\n' subject=echo $2 | tr '\r\n' '\n' echo “zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_22{subject}” $1 >>/tmp/sendmail.log 2>&1

[root@xuegod63 alertscripts]# chown zabbix.zabbix sendmail.sh [root@xuegod63 alertscripts]# chmod +x sendmail.sh

修改主配置文件,让服务读取到这个脚本:
 [root@xuegod63 alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf
 修改:
 改:466 # AlertScriptsPath=${datadir}/zabbix/alertscripts
 为
 为:466 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts[root@xuegod63alertscripts]# chmod 777 /tmp/sendmail.log
 测试发送脚本
 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 136xxx@126.com “测试邮件标题” “测试邮件内容” #不需要加引号将变量值引起来

页面添加:

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_23


zabbix 监控项调用JavaScript zabbix监控apache_邮件监控告警_24

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。

这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。

在2.x版本不存在这个问题,默认会传3个参数。

zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_25


zabbix 监控项调用JavaScript zabbix监控apache_邮件监控告警_26

这个地方的类型选择sendmail,需要注意

zabbix 监控项调用JavaScript zabbix监控apache_apache_27


zabbix 监控项调用JavaScript zabbix监控apache_apache_28

内容如下

动作

名称:Action-Email

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_29

操作

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_30


zabbix 监控项调用JavaScript zabbix监控apache_apache_31


恢复操作

默认接收人:已恢复!{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_32


zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_33

测试,关闭 zabbix 客户端服务 zabbix_agentd

[root@xuegod64 ~]# /etc/init.d/zabbix_agentd stop 结果:

延迟比较大,大概要5-10分钟

可以在日志看送达状态:

zabbix 监控项调用JavaScript zabbix监控apache_apache_34


配置 zabbix 自动发现并监控(监控Windows为案例)

zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_35


首先下载安装Windows端agent

下载链接:https://assets.zabbix.com/downloads/3.4.0/zabbix_agents_3.4.0.win.zip

找到conf下的配置文件 zabbix_agentd.win.conf (建议用文本编辑软件打开),修改LogFile、Server、ServerActive、Hostname这四个参数。具体配置如下:

LogFile=e:\zabbix_agentd.log
 Server=192.168.1.63
 Hostname=download
 ServerActive=192.168.1.63 #zabbix server地址


其中logfile是zabbix日志存放地址。Server 是zabbix服务端ip地址。Hostname是本机机器名。

一定要以管理员身份来运行CMD,否则安装不了

cd C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\bin\win64

zabbix 监控项调用JavaScript zabbix监控apache_apache_36

安装windos zabbix客户端

zabbix_agentd.exe -c C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -i

zabbix 监控项调用JavaScript zabbix监控apache_apache监控_37


启动客户端

zabbix_agentd.exe -c C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -s

zabbix 监控项调用JavaScript zabbix监控apache_邮件监控告警_38

创建自动发现规则

zabbix 监控项调用JavaScript zabbix监控apache_apache_39


zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_40

添加关联动作

zabbix 监控项调用JavaScript zabbix监控apache_自动添加windows主机_41


zabbix 监控项调用JavaScript zabbix监控apache_apache监控_42


操作-可添加发现主机发送邮件通知

发送模版

默认接收人

自动发现主机: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}

默认信息

发现规则: {DISCOVERY.RULE.NAME}

设备IP:{DISCOVERY.DEVICE.IPADDRESS}
设备DNS: {DISCOVERY.DEVICE.DNS}
设备状态: {DISCOVERY.DEVICE.STATUS}
设备运行时间: {DISCOVERY.DEVICE.UPTIME}
设备服务端口: {DISCOVERY.SERVICE.NAME}

zabbix 监控项调用JavaScript zabbix监控apache_mysql监控_43

这里注意操作细节 需要添加四个动作
等待一会,就可以发现自动探测监控了