青蛙学Linux—Zabbix部署之安装和配置Zabbix

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已经部署成功。

posted @ 2019-02-02 23:47  青蛙学Linux  阅读(591)  评论(0编辑  收藏  举报