Zabbix Server监听的端口为10051,Zabbix Agent监听的端口为10050。
1、安装Zabbix Server
Zabbix Server安装路径/usr/local/zabbix。
安装依赖环境:
[root@localhost zabbix-3.4.15]# yum install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel
创建虚拟用户用于运行Zabbix守护进程(如果使用普通用户运行Zabbix,那么Zabbix会以该用户身份运行守护进程;如果以root用户运行Zabbix,那么Zabbix会自动使用zabbix这个用户运行守护进程):
[root@localhost zabbix-3.4.15]# useradd -s /sbin/nologin zabbix
解压源码包后进入源码目录,执行configure:
[root@localhost zabbix-3.4.15]# ./configure --prefix=/usr/local/zabbix --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-server --with-libxml2
- --with-mysql:启用MySQL做为后端存储数据库。如果MySQL在默认安装目录(RPM安装或YUM安装)只需—with-mysql;如果MySQL不在默认目录,则需要指定mysql_config的路径
- --with-net-snmp:启用SNMP监控支持
- --with-libcurl:启用Web监控、VMware监控以及SMTP(邮件发送)需要的组件
- --with-libxml2:启用VMware监控所需组件
- --enable-server:启动Zabbix Server,相应的参数有--enable-agent和--enable-proxy
configure执行完毕无报错后,执行:
[root@localhost zabbix-3.4.15]# make && make install
命令执行完毕无报错,说明Zabbix Server安装成功。
2、初始化数据库和表
Zabbix需要后端数据库的支持,所以这里需要创建一个用户和数据库,并将Zabbix需要的表导入数据库。导入方法是执行三个SQL文件,文件位于源码目录下的database目录下以数据库软件命名的目录下。这里我们使用的是MySQL,所以三个SQL文件位于源码目录下的database/mysql目录。
进入这个目录,并在目录中登录MySQL客户端,执行以下命令:
# 创建一个名为zabbix的数据库 mysql> create database zabbix character set utf8 collate utf8_bin; # 创建一个名为zabbix的MySQL用户,并授权操作zabbix数据库下的所有表 mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix password'; # 刷新MySQL mysql> flush privileges; # 连接到zabbix数据库 mysql> use zabbix; # 依次导入以下三个SQL文件 mysql> source schema.sql; mysql> source images.sql; mysql> source data.sql;
3、Zabbix Server配置文件
Zabbix Server配置文件位于Zabbix的安装目录下的etc目录中,文件名为zabbix_server.conf。
修改以下几个配置项(也可以将原配置文件备份,再新建配置文件并写入以下内容):
ListenPort=10051 # Zabbix Server监听的端口 LogFile=/tmp/zabbix_server.log # Zabbix Server日志 DBHost=localhost # Zabbix Server连接的数据库服务器 DBName=zabbix # Zabbix Server使用的数据库的名称 DBUser=zabbix # Zabbix Server使用的数据库用户 DBPassword=zabbix password # Zabbix Server使用的数据库用户的密码 ListenIP=0.0.0.0 # 允许哪些主机连接到Zabbix Server StartPollers=5 # Zabbix Server启动时启动的Pollers进程的数量,该进程用于主动收集数据;进程数量越多,服务器系统资源消耗越大 StartTrappers=10 # Zabbix Server启动时启动的Trappers进程的数量,该进程用于接收Agent推送的数据,Agentd为主动模式时,这个值需要设置大一些 StartDiscoverers=10 # Zabbix Server服务启动时启动Discoverers进程的数量,如果zabbix监控报Discoverers进程忙时,需要提高该值 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts # Zabbix Server运行脚本存放目录,一些供Zabbix Server使用的脚本都可以放在这里
4、Zabbix Server服务管理脚本
Zabbix在源码包中自带了服务管理脚本用于管理Zabbix,该脚本位于源码目录的misc/init.d/fedora/core目录下,Zabbix Agent的脚本为zabbix_agentd,Zabbix Server的脚本为zabbix_server。
这里我们需要对该脚本进行一些修改,打开zabbix_server,找到以下内容:
# Zabbix-Directory BASEDIR=/usr/local
这里设置的是Zabbix Server的安装目录,比如这里修改为:
# Zabbix-Directory BASEDIR=/usr/local/zabbix
Zabbix Agent设置同Zabbix Server。
将脚本拷贝到/etc/init.d目录下:
[root@localhost core]# cp zabbix_server /etc/init.d
此时可以使用以下命令启动|重启动|停止Zabbix Server:
/etc/init.d/zabbix_server start|restart|stop
在第一次使用/etc/init.d/zabbix_server start启动Zabbix Server后,使用Systemd的系统还可以使用以下命令启动|重启动|停止|查看运行状态:
systemctl start|restart|stop|status zabbix_server
注意:在使用源码或者二进制安装MySQL的环境下,Zabbix Server启动失败并提示以下信息:
Starting zabbix_server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
此时只需要在/etc/ld.so.conf文件下添加MySQL的lib目录路径:
/usr/local/mysql/lib
然后执行:
ldconfig
之后执行:
/etc/init.d/zabbix_server restart|systemctl restart zabbix_server
Zabbix Server即可正常启动。
5、安装和配置Zabbix Agent
Zabbix Agent建议使用RPM包的方式进行安装,安装的版本和Zabbix Server的版本保持一致。这里在主机B和主机C上安装Zabbix Agent。
Zabbix Agent可以在https://repo.zabbix.com/zabbix/上下载。
在主机B上安装Zabbix Agent:
[root@localhost apps]# rpm -ivh zabbix-agent-3.4.15-1.el7.x86_64.rpm
通过RPM安装的Zabbix Agent的配置文件位于/etc/zabbix目录下,文件名为zabbix_agentd.conf,该配置文件中有以下一些重要配置:
# Zabbix Server运行在主机A,IP192.168.0.86,当前主机IP192.168.0.88 PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log Server=192.168.0.86 StartAgents=3 ServerActive=192.168.0.86 Hostname=192.168.0.88 Include=/etc/zabbix/zabbix_agentd.d/*.conf UnsafeUserParameters=1
- Server:指定Zabbix Server端的IP地址
- StartAgents:指定Zabbix Agent启动的agent进程的数量,默认为3;设置为0表示关闭Zabbix Agent的被动模式,让Zabbix Agent主动向Zabbix Server推送监控数据
- ServerActive:指定Zabbix Server端的IP地址,该选项用于开启Zabbix Agent的主动模式,将收集到的监控数据主动推送给Zabbix Server
- Hostname:指定Zabbix Agent的主机IP或主机名,在Zabbix Web中添加主机时需要使用这里设置的值
- Include:可以将配置文件放到这里指定的目录下,配置将自动生效
- UnsafeUserParameters:设置为1时表示启用Zabbix Agent的自定义监控项的功能,即使用UserParameter指令
配置文件修改完成后,就可以启动Zabbix Agent了。Zabbix Agent的启动方式与其他系统服务相同。
在主机B上启动Zabbix Agent:
[root@localhost apps]# systemctl start zabbix-agent
6、验证监控是否生效
这里在主机B和主机C上安装并启动了Zabbix Agent,此时在运行Zabbix Server的主机A上使用zabbix_get工具可以检查Zabbix部署是否成功:
# 进入Zabbix Server安装目录下的bin目录 [root@localhost bin]# ./zabbix_get -s 192.168.0.88 -p 10050 -k "system.uptime" 347446 [root@localhost bin]# ./zabbix_get -s 192.168.0.110 -p 10050 -k "system.uptime" 347414
这里可以看到已经有输出值了,说明Zabbix已经部署成功。