Zabbix服务安装部署及监控配置
1.1 Zabbix服务介绍
The Enterprise-class Monitoring Solution for Everyone
企业级监控解决方案
zabbix是一个基于Web界面提供分布式系统监控以及网络监视功能的企业级的开源解决方案
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以及让系统管理员快速定位解决存在的各种问题。
1.1 Zabbix主要特点
安装与配置简单,学习成本地,支持多语言(包括中文)免费开源自动发现服务器与网络设备分布式监视以及web集中管理功能,可以无agent监视用户安全认证和柔软的授权方式通过web界面设置或查看监控结果email等通知功能
1.2 Zabbix主要功能
监控CPU负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义
1.3 Zabbix运行机制
Zabbix Server 和Zabbix Agent
Zabbix server 可以通过SNMP,Zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集功能,可以在运行Linux,Solaris,HP-UX,FreeBSD,OpenBSD,OXX,Windows多平台。
Zabbix Agent安装在需要被监控的目标服务器上,主要完整对硬件信息与操作系统有关的内存,CPU等信息收集。
Zabbix Server可以单独监视远程服务器的服务状态,同时也可以与Zabbix Agent结合。可以与轮询Zabbix Agent主动接受监视数据(trapping传递方式),同时还可以被动接受Zabbix Agent发送的数据。
Zabbix运行过程图
Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置!Agent监控端口10050
服务端安装Zabbix Server和Zabbix Agent两个服务,客户端只安装Zabbix Agent一个服务,监控原理就是Zabbix Agent服务将从系统中获取的相关数据传送给Zabbix Server,然后Zabbix Server服务奖数据分析之后以PHP页面展示出来!
1.2 Zabbix Server安装部署
整个环境所需安装的软件包
php-5.6.13
libmcrypt-2.5.8
mysql-5.6.26
nginx-1.8.0
zabbix-3.4.3
我们需要先构建LNMP的环境,因为Zabbix通过PHP页面展示(也可以使用LAMP环境)
搭建LNMP的环境,如果有这个环境可以忽略
1.2.1 创建导入zabbix数据库
Zabbix需要数据库的支持,而Zabbix已经自带了数据库结构,images数据库和表数据等相关内容
创建Zabbix使用的数据库
[root@centos21 ~]# mysql -uroot -p123456
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@ '%' identified by 'zabbix'; #授权zabbix用户
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@centos21 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/
[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/
[root@centos21 zabbix-3.4.3]# ls
aclocal.m4 compile configure.ac include Makefile.in README
AUTHORS conf COPYING INSTALL man sass
bin config.guess database install-sh misc src
build config.sub depcomp m4 missing upgrades
ChangeLog configure frontends Makefile.am NEWS
导入数据库,注意顺序,否则会报错
[root@centos21 zabbix-3.4.3]# ls database/mysql/
data.sql images.sql schema.sql
[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
Warning: Using a password on the command line interface can be insecure.
[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
Warning: Using a password on the command line interface can be insecure.
[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
Warning: Using a password on the command line interface can be insecure.
(警告:在命令行界面上使用密码可能是不安全的。)
如果在做分布式的环境中,Proxy服务器只需要一个数据库schema,代理着agent不需要数据库!Server必须三个数据库同时拥有
Zabbix同时支持很多类型数据库,可以通过查阅帮助:
https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts
1.2.2 编译安装zabbix
[root@centos21 zabbix-3.4.3]# groupadd zabbix
[root@centos21 zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix #创建用户
[root@centos21 zabbix-3.4.3]# yum -y install net-snmp-devel libevent libevent-devel #解决依赖关系
[root@centos21 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl
参数说明:
--prefix= 制定路径
--enable-server #Server支持
--enable-agent #支持Zabbix客户端
--with-mysql #指定MySQL库可以选择自定义路径mysql_config,mysql_config是命令,用于编译mysql客户端程序
--with-net-snmp #支持snmp协议,需要安装net-snmp-devel包
--with-libcurl #支持CURL功能,libcurl主要功能就是用不同的协议连接不同的服务器
libcurl #当前支持的协议有http,https,ftp,gopher,telent,dict,file,和ldap协议
其他参数:
--enable-proxy #指的是支持zabbix代理服务器,zabbix proxy是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后在传送的zabbix server。监控代理服务器需要一个独立的数据库。
用zabbix proxy的好处:进程监控,当监控文件遏制通讯不方便的时候,当通讯上千台设备的时候,使用zabbix_proxy可以简化维护分布式监控,降低zabbix server的负载
看到如下信息,预编译就没有什么问题
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@centos21 zabbix-3.4.3]# echo $?
0
[root@centos21 zabbix-3.4.3]# make install
#按上面的提示,没有make步骤,直接make install
[root@centos21 zabbix-3.4.3]# echo $?
0
[root@centos21 zabbix-3.4.3]# ls /usr/local/zabbix/ #编译成功后,产生如下目录
bin etc lib sbin share
1.2.3 配置zabbix Server
[root@centos21 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBHost=localhost #默认注释掉了,直接取消注释即可
DBName=zabbix #数据库用户,我们授权的用户也是zabbix
DBUser=zabbix #默认是root,我们授权的用户是zabbix
DBPassword=zabbix #密码我们授权的也是zabbix
监控Zabbix Server本身
监控本身,意思是本身作为服务器之外,自己做自己的客户端,也要使用agentd这个代理者配置文件中,有agentd和agent两个配置文件,前者是守护进程,后者依赖xinetd
[root@centos21 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1 #默认监控服务器自己,这三行不用改
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本。
DBSocket=/tmp/mysql.sock #这一行也要启用,要不然查看不到端口号
其中 Server和ServerActive都制定zabbix server的IP地址,不同的是,前者是被动后者是主动。也就是说前者允许127.0.0.1这个IP来我这取数据。而ServerActive的127.0.0.1的意思是,客户端主动提交数据给他。
1.2.4 启动服务
如果zabbix用户不存在,将以root运行,新建之后,如果zabbix存在,那么直接可以用zabbix运行。
直接运行
[root@centos21 ~]# /usr/local/zabbix/sbin/zabbix_server #本实验启动正常
sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory #如果启动报错解决
[root@centos21 zabbix]# vim /etc/ld.so.conf #解决库文件找不到
include ld.so.conf.d/*.conf
/usr/local/mysql/lib/ #根据实际路径添加此行
[root@centos21 zabbix]# ldconfig #使库文件生效
[root@centos21 ~]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local #开机启动
[root@centos21 ~]# netstat -antup|grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 81259/zabbix_server
或者通过启动脚本启动zabbix
zabbix默认有部分启动脚本,如果你自己也可以通过脚本的方式来实现,可以使用他的模板来实现,脚本在源码目录的misc/init.d/下面(使用 fedora 下面的core即可,也可以使用fedroa core5的脚本均可)
[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/misc/init.d/
[root@centos21 init.d]# ls
aix debian fedora freebsd gentoo README suse tru64 ubuntu
[root@centos21 init.d]# cp fedora/core/* /etc/init.d/
[root@centos21 init.d]# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix #找到此行,修改路径
[root@centos21 init.d]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix #找到此行,修改路径
[root@centos21 ~]# chkconfig --add zabbix_server
[root@centos21 ~]# chkconfig zabbix_server on
[root@centos21 ~]# chkconfig --add zabbix_agentd
[root@centos21 ~]# chkconfig zabbix_agentd on
1.2.5 编辑PHP页面控制文件
配置默认文件没有写入到我们的Nagios的配置文件中,也就是不能加载到我们的zabbix页面目录
[root@centos21 ~]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/
[root@centos21 ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm; #找到此行内容,添加index.php必须放在前面
}
重启nginx服务和php-fpm服务
[root@centos21 ~]# nginx -s reload
[root@centos21 ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
开始检查环境,如图发现很多环境不符合条件
编辑修改php.ini文件,修改环境
[root@centos21 ~]# vim /usr/local/php/php.ini #根据上面提示信息修改
post_max_size = 16M #修改
max_execution_time = 300 #修改
max_input_time = 300 #修改
date.timezone = Asia/Shanghai #去掉此行注释,修改为亚洲上海
always_populate_raw_post_data = -1 #此行内容没有
mysqli.default_socket = /tmp/mysql.sock #指定php连接mysql的sock路径
[root@centos21 ~]# /etc/init.d/php-fpm restart #重启php-fpm刷新页面
Gracefully shutting down php-fpm . done
Starting php-fpm done
提示没有安装LDAP模块,为了不影响后面的功能,现在把这个模块重新编译安装进去:
可以单独把这个模块编译安装出来: #这个方法有问题
以下的解决方法,在公司机器上使用可以
[root@centos21 ~]# cd /usr/local/src/php-7.0.18/ext/ldap/
[root@centos21 ldap]# ls
config.m4 config.w32 CREDITS gettext.c gettext.lo gettext.o php_gettext.h tests
[root@centos21 ldap]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
[root@centos21 ldap]# yum -y install openldap-devel openldap
[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[root@centos21 ldap]# cp -frp /usr/lib64/libldap* /usr/lib/
[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[root@centos21 ldap]# echo $?
0
[root@centos21 ldap]# make && make install
[root@centos21 ldap]# echo $?
0
[root@centos21 ldap]# vim /usr/local/php/php.ini
extension="ldap.so" 添加到最后即可
[root@centos21 ldap]# /etc/init.d/php-fpm restart #启动成功
Gracefully shutting down php-fpm . done
Gracefully shutting down php-fpm . done
Starting php-fpm done
如果写入失败,直接download这个配置文件,然后上传上去
[root@centos21 ~]# cd /usr/local/nginx/html/conf/
[root@centos21 conf]# ls
maintenance.inc.php zabbix.conf.php.example #这个文件默认存在,只需要重命名
[root@centos21 conf]# mv /root/zabbix.conf.php . #这里使用下载的文件
用户名:admin密码:zabbix
[root@centos21 ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl): [ OK ]
[root@centos21 ~]# chkconfig --add zabbix_agentd
[root@centos21 ~]# chkconfig zabbix_agentd on
1.2.6 图表字符乱码的解决方法
在window下面找一个ttf的字体文件C:\windows\Fonts
[root@centos21 ~]# mv msyh.ttf DejaVuSans.ttf #上传重命名
[root@centos21 ~]# cd /usr/local/nginx/html/fonts/
[root@centos21 fonts]# ls
DejaVuSans.ttf
[root@centos21 fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@centos21 fonts]# mv /root/DejaVuSans.ttf .
[root@centos21 fonts]# ls
DejaVuSans.ttf DejaVuSans.ttf.bak
1.2.7 Zabbix启动服务总结
Nginx 服务启动
Php-fpm 服务启动
MySQL 服务器启动
测试LNMP环境正常
导入数据库、授权、源码安装zabbix
Zabbix_server 服务启动
1.3 配置监控远程主机
1.3.1 安装Agent
[root@centos26 ~]# cd /etc/yum.repos.d/
[root@centos26 yum.repos.d]# ls
back CentOS-Media.repo
[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel.repo
[root@centos26 yum.repos.d]# ls
back Centos-7.repo CentOS-Media.repo epel.repo
#这里使用阿里的基本源和epel源,也可以使用下面的epel源
yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
[root@centos26 yum.repos.d]# yum clean all;yum makecache
[root@centos26 ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI #解决依赖关系
[root@centos26 ~]# useradd -M -s /sbin/nologin zabbix #创建用户
[root@centos26 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/
[root@centos26 ~]# cd /usr/local/src/zabbix-3.4.3/
[root@centos26 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-agent
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@centos26 zabbix-3.4.3]# make install
[root@centos26 zabbix-3.4.3]# echo $?
0
[root@centos26 zabbix-3.4.3]# cd
[root@centos26 ~]# grep zabbix /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
1.3.2 启动agent
[root@centos26 ~]# /usr/local/zabbix/sbin/zabbix_agentd #启动agent
[root@centos26 ~]# netstat -antup|grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 22038/zabbix_agentd
也可以使用系统启动脚本来启动
配置Agent开机启动
[root@centos26 ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/ #复制脚本到/etc/init.d/下
[root@centos26 ~]# vim /etc/init.d/zabbix_agentd #编辑脚本路径
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" #修改此行
[root@centos26 ~]# chkconfig --add zabbix_agentd
[root@centos26 ~]# chkconfig zabbix_agentd on
拓展:core和core5里面的文件都可以实现zabbix代理启动,core里面是测试版本,core5是稳定版本
1.3.3 修改Agentd的配置文件
[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf #客户端操作
Server=192.168.3.21 #zabbix server地址,可以多个,用,隔开
ServerActive=192.168.3.21 #主动检查的意思,主动检查主机数据的数据发送给zabbix server
Hostname=centos26.cn
UnsafeUserParameters=1 #启用
1.3.4 重启服务
[root@centos26 ~]# /etc/init.d/zabbix_agentd restart
Restarting zabbix_agentd (via systemctl): [ OK ]
[root@centos26 ~]# netstat -antup|grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 22038/zabbix_agentd
1.3.5 Server端测试通讯
[root@centos21 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname
zabbix_get [94964]: Check access restrictions in Zabbix agent configuration
[root@centos26 ~]# /etc/init.d/zabbix_agentd restart #再次重启服务
Restarting zabbix_agentd (via systemctl): [ OK ]
可以获取对方系统版本则证明没有问题
[root@centos21 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname
Linux centos26.cn 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
1.3.6 服务端配置管理脚本
[root@centos21 ~]# ls /etc/init.d/zabbix_*
/etc/init.d/zabbix_agentd /etc/init.d/zabbix_server #这个文件之前已经复制过来,如果没有可以如下重新复制,并修改配置文件
[root@centos21 ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
[root@centos21 ~]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix #修改为zabbix的安装位置
[root@centos21 ~]# chkconfig --add zabbix_agentd
[root@centos21 ~]# chkconfig zabbix_agentd on
[root@centos21 ~]# /etc/init.d/zabbix_agentd restart #重启服务
Restarting zabbix_agentd (via systemctl): [ OK ]
[root@centos21 ~]# netstat -antup|grep zabbix #两者之间端口不一样
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 95839/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 81259/zabbix_server
监控自己使用10050端口,监控对方使用的是10051端口
1.3.7 添加Host主机
选择模板
刷新页面
============通过以上步骤成功添加一台远程监控主机===========
1.3.8 添加监控选项
通过比较zabbix servers群组和Linux servers群组,可以发现,默认的配置中Linux servers监控项比较少,下面手动添加监控:
筛选无触发器,出来很多监控项,默认都是启用状态,我们无需再次启动,下面修改自动发现的时间
再次返回首页,而可以看到
1.3.9 设置Triger触发器值
更改一下自动发现更新时间,将原来的1h改成10(秒)
更新数据
===================以上是触发器值的设置===================
自定义绘图颜色:
找到主机对应的模块-----修改模板对应的图形颜色
根据需要修改每一项的显示颜色
1.3.10 总结zabbix的文件
zabbix_agent.conf 是用超级服务(xinetd)的方式来启动的,被动检查,只有Server说检查的时候才检查
zabbix_agentd.conf 是以独立进程的方式来启动的,一般使用这个做配置,自动检查,自动提交 zabbix_server.conf Server
启动配置文件,只有一个
zabbix_get是zabbix中的一个程序,用于Zabbix-Server到Zabbix-Agent的数据获取,通常可以用来检测验证Agent的配置是否正确。它的使用方法如下
zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
-h:远程Zabbix-Agent的IP地址或者是主机名
-p:远程Zabbix-Agent的端口。
-I:本机出去的IP地址,用于一台机器中有多个网卡的情况。
-k:获取远程Zabbix-Agent数据所使用的Key。
[expmple@~]# zabbix_get -s 192.168.0.64 -k system.uname
zabbix_sender与get相反,用来发送Zabbix服务器处理性能数据。该工具通常用户长时间运行的用户脚本,用于顶起发送可用性和性能数据。使用方法如下
zabbix_sender [-Vhv] {[-zpsI] -ko | [-apI] -T -I <file> -r} [-c <file>]
参数说明:
-c --config <file> 配置文件绝对路径
-z --zabbix-server <server> zabbix server 的IP地址
-p --port <server port> zabbix server 端口.默认 10051
-s --host <hostname> 主机名, zabbix里面配置的主机名(不是服务器的hostname),不能使用
IP地址
-I --source-address <IP address> 源IP
-k --key <key> 监控项的key
-o --value <key value> key值
-i --input-file <input file> 从文件里面读取hostname、key、value一行为一条数据,使用空格作为分割符,如果主机名带空格,那么请使用双引号括起来
-T --with-timestamps 一行一条数据,空格作为分隔符:<hostname><key><timestamp> <value>,配合 --input-file option,timestamp为nuix时间戳
-r --real-time 将数据实时提交给服务器
-v --verbose详细模式,-vv更详细
1.4 配置Zabbix监控Apache服务
http://www.zabbix.org/wiki/Main_Page
https://github.com/zabbix/zabbix-community-repos #各种模板
http://www.douglas.wiki.br/doku.php?id=en:installing_and_configuring_zabbix
下载脚本wget https://github.com/lorf/zapache/archive/master.zip
[root@centos26 ~]# yum -y install httpd
[root@centos26 ~]# systemctl start httpd
1.4.1 启用apache服务器状态,开启apache的server-status
[root@centos26 ~]# 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.3.0/24
</location>
[root@centos26 ~]# systemctl restart httpd #重启后测试
1.4.2 解压压缩包
[root@centos26 ~]# unzip master.zip #解压压缩包
Archive: master.zip
24a764b2e224f9b8d0a6bc94dcadd7568b2fe650
creating: zapache-master/
inflating: zapache-master/README.md
inflating: zapache-master/httpd-server-status.conf.sample
inflating: zapache-master/userparameter_zapache.conf.sample
inflating: zapache-master/zapache
inflating: zapache-master/zapache-template-active.xml
inflating: zapache-master/zapache-template.xml
[root@centos26 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的上一步骤已经验证过了
zapache-template-active.xml zapache-template.xml #模板
userparameter_zapache.conf.sample zapache #关键的文件
将解压的几个文件放到相应的目录
[root@centos26 zapache-master]# cp zapache /usr/local/bin/
[root@centos26 zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@centos26 zapache-master]# cd !$
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@centos26 zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf
[root@centos26 zabbix_agentd.conf.d]# vim userparameter_zapache.conf
#
# This is a sample zabbix_agentd config file.
# Put it to /etc/zabbix_agentd.conf.d or otherwise integrate into agent config.
# Edit to your needs.
#
UserParameter=zapache[*],/var/lib/zabbixsrv/externalscripts/zapache \$1
#修改为UserParameter=zapache[*],/usr/local/bin/zapache \$1
查看是否有执行权限
[root@centos26 zabbix_agentd.conf.d]# ll /usr/local/bin/zapache
-rwxr-xr-x 1 root root 6110 May 28 05:29 /usr/local/bin/zapache
如果没有执行权限添加执行权限
修改zabbix-agentd.conf
[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
1.4.3 前端页面操作
导入模板
关联模板
配置-主机(选择apache客户端)
模板-选择(选择上面导入的模板-添加-更新
查看最新数据,筛选Apache
可以选择生产图形
1.5 配置zabbix监控MySQL
和监控我们的apache一样,寻找合适的脚本,不过,脚本不是那么容易就可以找到的!要么自己动手去写,要么自己找到的拿来修改,都是需要花费代价的!ZABBIX默认提供了MySQL的监控模板
数据库用户授权
[root@centos26 ~]# mysql -uroot -p123456
mysql> grant usage on *.* to zabbix@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec
mysql> quit
Bye
[root@centos26 ~]# cp /usr/local/src/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #将这一行注释
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf #去掉注释,修改路径同时开启会报错
建立数据库和zabbix的链接信息
[root@centos26 ~]# ls /var/lib/mysql/mysql.sock
/var/lib/mysql/mysql.sock
[root@centos26 ~]# vim /usr/local/zabbix/etc/.my.cnf
#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
[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
将 HOME=/var/lib/zabbix 全部改成 HOME=/usr/local/zabbix/etc/
# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.(提示目录下必须有.my.cnf)
[root@centos26 ~]# /etc/init.d/zabbix_agentd restart
Restarting zabbix_agentd (via systemctl): [ OK ]
模板应用主机:
1.6 Zabbix邮件报警配置:
邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件
这里演示如何调用第三方邮件服务来发送邮件:
第一步:首先安装mailx组件并配置好能够通过三方邮件发送邮件
[root@centos26 ~]# yum -y install mailx
然后编辑mailx的配置文件
[root@centos21 ~]# vim /etc/mail.rc
set from=xxxxxxxxx@sina.com
set smtp=smtp.sina.com
set smtp-auth-user=xxxxxxxx@sina.com #邮箱用户
set smtp-auth-password=密码
set smtp-auth=login
本实验中使用的是新浪邮箱,新浪不需要授权码,直接使用密码登陆
保存退出后测试邮件是否能够正常发送出去
echo "zabbix test mail" |mailx -s "zabbix" xxxxxxx@qq.com
在zabbix服务端写邮件发送脚本:
在zabbix服务端写邮件发送脚本:
[root@centos21 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@centos21 alertscripts]# vim sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
[root@centos21 alertscripts]# chown zabbix.zabbix sendmail.sh
[root@centos21 alertscripts]# chmod +x sendmail.sh
修改主配置文件,让服务器读取到这个脚本:
[root@centos21 alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/zabbix/alertscripts #复制上面一行修改路径
测试发送脚本
[root@centos21 ~]# /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxxxxxxx@qq.com "测试邮标题" "测试邮件内容"
[root@centos21 ~]# chmod 777 /tmp/sendmail.log
页面添加:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。
这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。
在2.x版本不存在这个问题,默认会传3个参数。
内容如下
动作
名称:auto-Email
操作
默认接收人:故障{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}
恢复操作
默认接收人:已恢复!{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}
确认信息:
默认接收人:Acknowledged: {TRIGGER.NAME}
默认信息:
{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:
{ACK.MESSAGE}
Current problem status is {EVENT.STATUS}
测试,关闭 zabbix 客户端服务 zabbix_agentd
[root@centos26 ~]# systemctl stop httpd #关闭服务
[root@centos26 ~]# systemctl start httpd #重启服务
1.7 配置zabbix自动发现并监控(Windows为案例)
首先下载安装Windows端agent
一定要以管理员身份来运行CMD,否则安装不了
C:\Windows\system32>cd C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64 #切换到这个目录也就是文件存在目录
C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c
C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -i #开始安装
zabbix_agentd.exe [2920]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [2920]: event source [Zabbix Agent] installed successfully
C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -s #启动
zabbix_agentd.exe [2264]: service [Zabbix Agent] started successfully
C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>
找到conf下的配置文件 zabbix_agentd.win.conf ,修改LogFile、Server、、ServerActive、Hostname这四个参数。具体配置如下:
LogFile=c:\zabbix_agentd.log
Server=10.10.10.71
Hostname=download
ServerActive=10.10.10.71 #zabbix server地址
其中logfile是zabbix日志存放地址。Server 是zabbix服务端ip地址。Hostname是本机机器名。
创建自动发现
默认接收人:
自动发现主机: {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}