zabbix4.0版本的源码安装

环境介绍:

操作系统:CentOS Linux release 7.6(最小化安装,关闭selinux和firewalld)

zabbix4.0源下载地址:https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.15/zabbix-4.0.15.tar.gz/download

注:源码安装的优缺点:

优点:源码包中包含了程序的源代码,可以根据需求修改;并且编译安装时可以自定义功能和参数

缺点:需要自行编译安装,安装耗时较长且容易出错,对于环境的依赖都需要手动解决

1、首先要安装zabbix源码的依赖以及一些常用工具包

yum -y install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel

2、然后下载并解压zabbix的源码包

wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.15/zabbix-4.0.15.tar.gz/download

tar -xf zabbix-4.0.15.tar.gz

3、接下来要先自定义zabbix的安装目录,这里选择把zabbix安装到/usr/local目录下

mkdir /var/local/zabbix

4、进入到解压后的zabbix源码目录里,准备开始编译安装

cd zabbix-4.0.15

./configure --help    #如果想在开始之前了解一下zabbix配置的相关参数,可以使用这个命令,下面会对此命令输出的参数进行补充说明

这里简单说一下编译安装的三步:

1、./configure    #是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC等源码包需要的工具,这一步一般用来    生成 Makefile编译文件,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制

2、make            #是用来编译的,它从Makefile中读取指令, 这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或Python编写的软件需要调用perl或Python来进行编译)。

3、make install  #是用来安装的,它也从Makefile中读取指令,安装到指定的位置。(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

补充:configure的参数的简单说明

./configure -V    #查看此源码包的版本

                  -q    #不打印"检查中..."的信息

                  -n    #不创建输出文件

                  --prefix=PREFIX    #指定安装的目录,配置时不使用此参数的话默认会安装到/usr/local目录下

注:参数中还有很多信息,比如zabbix的功能如何启用/禁用等,太多了说不完,请另行查阅相关文档

5、开始configure配置相关参数

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv

上述参数的解释:

--prefix=/usr/local     # 指定zabbix的安装目录为/usr/local/zabbix,其实默认的安装目录也是/usr/local/zabbix,这里可以省略,写出来是方便理解,如果要把zabbix安装到其他目录,则必须用这个参数 注:系统会直接把zabbix的文件安装到路径最后的目录下,不会自行创建zabbix目录,所以如果路径写成了/usr/local,那么zabbix的文件就会在local目录下,而不是/usr/local/zabbix目录下

--enable-server        # 打开Zabbix服务器的构建,因为我们要安装zabbix的server端,所以必须打开

--enable-agent         # 打开Zabbix客户端实用程序的构建,本机也要被监控,所以也要打开客户端的构建

--enable-java           # 打开Zabbix Java网关的构建,启用java监控

--with-mysql             # 申明后端数据库为mysql 

--with-libxml2           # 使用XML库

--with-unixodbc        # 数据库链接采用unixodbc

--with-net-snmp       # 网络相关监控采用net-snmp

--with-ssh2              # 启用ssh,执行远程命令时会用到

--with-openipmi       # 硬件监控使用openipmi

--with-ldap               # 启用ldap,用于ldap认证

--with-libcurl            # web相关的监控curl

--with-iconv            # Linux 系统自带的用于转换文件编码的命令行工具 ,编译源码需要使用

6、当看到下面的内容时说明没有出错,成功!确认没有问题的话继续下一步安装

***********************************************************

* Now run 'make install' *

* Thank you for using Zabbix! *

* *

***********************************************************

注:此页面往上还会有很多信息,可以复查配置了哪些参数,以及参数的默认路径(因为本次配置中没有指定任何参数的路径,都是默认路径)

5、configure配置成功的话,就可以开始编译和安装了

make    #这一步是编译,从configure生成的Makefile中读取指令,全程没有报错那么就代表编译成功

make install    #这一步是安装,同样从configure生成的Makefile中读取指令,如果上一步编译成功的话,就可以直接执行此命令,同样全程没有报错那么就代表安装成功

6、上述的步骤都成功的话,那么zabbix就已经成功的安装好了,现在进入之前定义的安装目录就能看到zabbix软件的相关文件了

cd /usr/local/zabbix

ls 

bin etc lib sbin share    #看到以下几个目录,则zabbix已经成功安装

sbin/zabbix_server -v    #可以看到安装的zabbix的版本信息

zabbix_server (Zabbix) 4.0.15

Revision 992445e02c 25 November 2019, compilation time: Dec 19 2019 15:11:16 

Copyright (C) 2019 Zabbix SIA

License GPLv2+: GNU GPL version 2 or later .

This is free software: you are free to change and redistribute it according to

the license. There is NO WARRANTY, to the extent permitted by law.

7、接下来需要安装zabbix的后端数据库mysql,因为不是重点,所以这里采用yum安装方式

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

vim /etc/yum.repos.d/mysql-community.repo    #将MySQL8.0的enabled=1改为0;将MySQL5.7的enabled=0改为1

yum repolist

yum -y install mysql-community-server

8、安装完成后先直接启动MySQL,然后设定配置文件中控制密码复杂度参数,然后重启MySQL,再进数据库修改密码,然后开始MySQL初始化设定

systemctl start mysqld

vim /etc/my.cnf

在[myqld]下面写入以下两行参数

validate_password_policy=0 

validate_password_length=6

保存退出重启MySQL

systemctl restart mysqld

grep password /var/log/mysqld.log    #查询数据库初始随机密码

mysql -uroot -p'初始密码'

alter user 'root'@'localhost' identified by '自定义新登录密码';

flush privileges;

9、上述修改密码操作完成后,回到linux命令行,开始初始化MySQL设置

mysql_secure_installation

Change the password for root ? ((Press y|Y for Yes, any other key for No) :    #是否修改root登陆密码,前面已经修改了,所以现在不用

Remove anonymous users? (Press y|Y for Yes, any other key for No) :    #是否删除匿名用户

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :    #是否禁止root远程登录

Remove test database and access to it? (Press y|Y for Yes, any other key for No) :    #是否删除测试数据库,一般选择是

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :    #是否刷新权限表,一般选择是

10、初始化数据库设置完成后,进入数据库,开始创建zabbix需要的库,并导入表结构

mysql -uroot -p'新登录密码'

create database zabbix character set utf8 collate utf8_bin;    #创建zabbix库,字符集设定为utf8

grant all privileges on zabbix.* to zabbix@localhost identified by '123456';    #授权zabbix用户拥有zabbix库的所有权限,访问密码为123456

flush privileges;    #刷新权限表

注:源码安装zabbix,zabbix自带的表结构在解压的源码包里,而不在zabbix的安装目录下,这一点要注意。一共要导入三个文件:schema.sql、images.sql、data.sql

mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/schema.sql

mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/images.sql

mysql -uzabbix -p'123456' zabbix < /root/zabbix-4.0.15/database/mysql/data.sql

进入数据库看一下

mysql -uroot -p'密码'

use zabbix;

show tables;

```

144 rows in set (0.00 sec)    #一共导入了144张表

11、表结构导入好了以后,开始修改zabbix的配置文件zabbix_server.conf

vim /usr/local/zabbix/etc/zabbix_server.conf

确保以下参数设置无误:

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123456

12、接下来需要自行创建zabbix用户

groupadd --system zabbix    #创建zabbix用户组,--system表示创建的是系统用户组,权限比一般用户大一些    也可以用-r选项,效果相同

useradd -r -g zabbix -c zabbix zabbix    #创建zabbix用户,-r同--system,表示创建的是系统用户,权限比一般用户大一些    -c表示定义用户的 GECOS 字段,不是必须

注:账户的 GECOS 字段:这字段是可选的,通常为了存放信息目的而设的. 通常,它包含了用户的全名.

13、接下来就可以启动zabbix_server了

/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf    # -c表示指定zabbix配置文件

netstat -tunlp

tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 49149/zabbix_server    #zabbix_server已经启动并占用端口10051

vim /tmp/zabbix_server.log

Zabbix agent item "system.users.num" on host "Zabbix server" failed: first network error, wait for 15 seconds    #这个报错是因为zabbix-agent没有启动,并且这里还提示了zabbix-server的主机名叫"Zabbix server"

14、接下来开始修改zabbix-agent的配置文件并启动zabbix-agent服务

vim /usr/local/zabbix/etc/zabbix_agentd.conf

确保以下参数无误:

Server=127.0.0.1    #server端就在本机,所以这里是回环地址

ServerActive=127.0.0.1    #server端就在本机,所以这里是回环地址

Hostname=Zabbix server    #这里的主机名必须和上面server端的日志里zabbix-server的主机名保持一致

/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf    #同样用-c指定配置文件启动

netstat -tunlp

tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 49962/zabbix_agentd    #zabbix_agent已经启动并占用端口10050

vim /tmp/zabbix_server.log    #再看一下zabbix-server的日志,会多出下面一条

enabling Zabbix agent checks on host "Zabbix server": host became available    #表示已经检测到zabbix-agent启动了

15、接下来开始配置zabbix前端,因为涉及到httpd和php的配置,这里不是重点,所以这里依然采用二进制安装

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

yum repolist

yum -y install zabbix-web-mysql

接下来的操作就和zabbix的二进制安装一模一样了,请参考

zabbix4.0版本的二进制安装

你可能感兴趣的:(zabbix4.0版本的源码安装)