首页 > 技术文章 > 「Zabbix 3.2」- 使用源码安装 @20210128

k4nz 2021-01-28 09:50 原文

内容简介

本文将介绍如何使用源码安装Zabbix监控(只包含Zabbix Server和Zabbix Agent服务的安装)。

注意事项

本文只安装Zabbix Server和Zabbix Agent服务,没有安装Zabbix Proxy服务。

创建普通用户及组

Zabbix出于安全考虑,不允许使用root运行。如果使用root运行,会自动切换到zabbix用户,如果zabbix用户不存在就会报错。下面是创建用户、组的命令:

#!/bin/sh

groupadd zabbix
useradd -g zabbix zabbix

而且,如果Zabbix Agent和Zabbix Server运行于同一台服务器,最好是使用不同的用户。防止Agent访问Server的配置文件。

创建Zabbix Server使用的数据库

因为Zabbix Server要保存数据,所以要在Zabbix Server所在的服务器上创建数据库。SQL文件位于源码目录下的database中,具体使用那种数据库,根据需要而定。这里以MySQL为例:

第一步,登录MySQL创建用户并授权:

#!/bin/sh
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
quit;

第二步,导入相关的数据库:

#!/bin/sh

mysql -uzabbix -p zabbix < schema.sql

# Zabbix Proxy不需要下面这两个SQL文件。
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p zabbix < data.sql

关于其他的数据库,参考「1 Database creation scripts」手册。

安装Zabbix Server和Zabbix Agent

第一种情况,如果Server和Agent在同一台主机上:

#!/bin/sh

# 如果MySQL不再标准路径,需要使用--with-mysql=/<path_to_the_file>/mysql_config来指定
./configure --enable-server \
	--enable-agent --with-mysql \
	--enable-ipv6 --with-net-snmp \
	--with-libcurl --with-libxml2

make && make install

如果不在同一台主机上,需要单独编译Agent与Server:

#!/bin/sh

# 编译Zabbix Server。
# 如果MySQL不再标准路径,需要使用--with-mysql=/<path_to_the_file>/mysql_config来指定
./configure --enable-server \
	--with-mysql \
	--enable-ipv6 \
	--with-net-snmp \
	--with-libcurl \
	--with-libxml2

make && make install
#!/bin/sh

# 编译Zabbix Agent,Agent在要在被监视主机上编译。
# 不要和Server一起编译出来,再复制到被监控主机上。除非你知道自己在做什么。
./configure --enable-agent

make && make install

# 如果使用了--enable-agent选项,会同时生成生成zabbix_get和zabbix_sender工具。

查看、修改配置文件

Zabbix Agent的配置文件位于(如果你没有修改编译选项的话):/usr/local/etc/zabbix_agentd.conf
一定要指出Zabbix Server的IP地址。其他的IP地址不允许访问。

......
# Zabbix Server的IP地址
Server=xxx.xxx.xxx.xxx
......

Zabbix Server配置文件位于(如果你没有修改编译选项的话):/usr/local/etc/zabbix_agentd.conf
需要在配置中,指出数据库的Username和Password

启动Zabbix Server和Zabbix Agent

#!/bin/sh

zabbix_server
#!/bin/sh

zabbix_agent

安装Web界面

Web管理位于源码目录下的frontend中,只有一个PHP文件夹。因为Web管理界面是PHP写的,所以需要一个基础的PHP Web运行环境。

这个比较简单,PHP源码放到站点下,然后访问,会自动引导安装的。具体过程这里不再赘述。

常见错误列表

#1 unable to find net-snmp-config

checking for xmlReadMemory in -lxml2... yes
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

原因:没有安装libsnmap-dev
解决: 如果使在Debina及其衍生版中,安装libsnmap-dev

#2 Zabbix server is not running: the information displayed ......

原因:出现整个问题的原因有很多,我的只是其中的一例:如果MySQL不再标准路径,需要使用--with-mysql=/<path_to_the_file>/mysql_config来指定。我的MySQL位于/usr/local/mysql中,而在编译的时候未指定myql_config的位置。
解决:重新编译,并使用--with-mysql=/usr/local/mysql/bin/mysql_config指定mysql_config的位置。


推荐阅读