「Zabbix 3.2」- 使用源码安装 @20210128
内容简介
本文将介绍如何使用源码安装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的位置。