CentOS7.6 源码安装zabbix5.0及初始化配置(超详细)

一、环境准备

zabbix服务器端:192.168.245.204

二、软件包准备

本实例安装方式:源码安装nginx、php,zabbix,yum安装mysql

软件包都是官网下的,可能不是最新版但一定是稳定版
nginx官网:http://nginx.org/en/download.html
php官网:https://www.php.net/

nginx:nginx-1.20.1.tar.gz
php:php-7.4.21.tar.gz

三、安装LNMP

因为zabbix的web页面是用php写的,所以我们需要安装LNMP架构,当然你也可以用LAMP

1、安装nginx

安装所需依赖包

[root@zabbix-server ~]# yum -y install pcre pcre-devel zlib openssl openssl-devel

解压源码包

[root@zabbix-server ~]# cd /opt
[root@zabbix-server opt]# tar xf nginx-1.20.1.tar.gz

新建nginx程序用户

[root@zabbix-server opt]# useradd -s /sbin/nologin -M nginx

configure配置,加上所需模块,安装目录在/usr/local/nginx

[root@zabbix-server nginx-1.20.1]# cd nginx-1.20.1/
[root@zabbix-server nginx-1.20.1]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx  --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre

编译安装

[root@zabbix-server nginx-1.20.1]# make && make install

把nginx命令制作软链接方便使用

[root@zabbix-server nginx-1.20.1]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/

nginx的安装还是比较简单的,就用最简单的方式装就好了

2、安装mysql

这里安装mysql5.7版本,先下载安装mysql5.7的yum源

[root@zabbix-server ~]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
--2021-07-06 08:58:20--  http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... 184.26.157.95
正在连接 repo.mysql.com (repo.mysql.com)|184.26.157.95|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9116 (8.9K) [application/x-redhat-package-manager]
正在保存至: “mysql57-community-release-el7-8.noarch.rpm”

100%[================================================================>] 9,116       --.-K/s 用时 0.001s

2021-07-06 08:58:20 (9.55 MB/s) - 已保存 “mysql57-community-release-el7-8.noarch.rpm” [9116/9116])

[root@zabbix-server ~]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
警告:mysql57-community-release-el7-8.noarch.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql57-community-release-el7-8  ################################# [100%]

然后yum安装mysql,中间要按两次y

[root@zabbix-server ~]# yum install mysql-server mysql mysql-devel

启动mysql

[root@zabbix-server ~]# systemctl start mysqld

mysql5.7会预设root账号密码,把初始密码找出来

[root@zabbix-server ~]# grep password /var/log/mysqld.log
2021-07-06T01:03:38.427563Z 1 [Note] A temporary password is generated for root@localhost: G!jf%xJ5Ayse

G!jf%xJ5Ayse 这一坨就是初始密码
然后进入mysql修改密码

[root@zabbix-server ~]# mysql -uroot -p
Enter password:

mysql> set global validate_password_policy=0;      //修改默认密码策略否则会检查密码长度和复杂度,设定密码策略为只检查密码长度为8
Query OK, 0 rows affected (0.00 sec)

mysql> set password = password('12345678');       //重设密码
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;    //刷新
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

因为yum安装mysql比较快也不容易出错,也相对简单

3、安装php

php由于使用的是比较新的版本,所以安装方式跟之前的版本有不少差别!

首先安装php7.4所需依赖包

[root@zabbix-server ~]# yum -y install libxml2 libxml2-devel  curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-devel 

这里还需要手工编译安装libzip依赖包否则configure的时候会报以下错误:意思是 libzip的版本必须大于0.11 且 不能等于1.3.1或者1.7.0

configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:

No package 'libzip' found
No package 'libzip' found
No package 'libzip' found

安装libzip-1.3.2解决

[root@zabbix-server ~]# wget https://libzip.org/download/libzip-1.3.2.tar.gz
[root@zabbix-server ~]# tar xf libzip-1.3.2.tar.gz

[root@zabbix-server ~]# cd libzip-1.3.2
[root@zabbix-server libzip-1.3.2]# ./configure && make && make install
[root@zabbix-server libzip-1.3.2]# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" 

解压php的tar包,添加php用户和组

[root@zabbix-server libzip-1.3.2]# cd /opt
[root@zabbix-server opt]# tar xf php-7.4.21.tar.gz
[root@zabbix-server opt]# cd php-7.4.21/
[root@zabbix-server php-7.4.21]# useradd php -s /sbin/nologin

配置所需模块,安装目录在/usr/local/php7

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mhash --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-bcmath  --enable-gd --with-jpeg --with-freetype  --enable-mbstring --enable-ftp --enable-sockets   --with-gettext --enable-session --with-curl   --enable-fpm --with-fpm-user=php --with-fpm-group=php   --enable-pdo -enable-tokenizer --with-zip

编译安装

[root@zabbix-server php-7.4.21]# make && make install

安装ldap扩展模块(可选)

[root@zabbix-server php-7.4.21]# find / -name phpize
/usr/local/php7/bin/phpize        //找出这个可执行文件
/opt/php-7.4.21/scripts/phpize
[root@zabbix-server php-7.4.21]# cd ext/ldap/
[root@zabbix-server ldap]# /usr/local/php7/bin/phpize    //到ldap的目录下执行该命令
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@zabbix-server ldap]# cp -frp /usr/lib64/libldap* /usr/lib/   //拷贝库文件,软链接也行
[root@zabbix-server ldap]# ./configure --with-php-config=/usr/local/php7/bin/php-config  //配置
[root@zabbix-server ldap]# make && make install    //编译安装
Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/       //记住这个路径一会需要写在配置文件里

解压目录下的php.ini-production就是配置文件,但是需要移动和改名才能识别,放到/usr/local/php7/etc/php.ini

[root@zabbix-server ldap]# cd -
/opt/php-7.4.21
[root@zabbix-server php-7.4.21]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@zabbix-server php-7.4.21]# vim /usr/local/php7/etc/php.ini
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/"
extension=ldap.so  //增加一行添加ldap模块

配置其他参数

max_execution_time = 300
post_max_size = 16M
max_input_time = 300
date.timezone = Asia/Shanghai   

到安装目录下把两个配置文件改名(必须)

[root@zabbix-server php-7.4.21]# cd /usr/local/php7/etc/
[root@zabbix-server etc]# cp php-fpm.conf.default php-fpm.conf
[root@zabbix-server etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf

给php命令设置软链接方便使用

[root@zabbix-server php-7.4.21]# ln -s /usr/local/php7/bin/* /usr/local/bin
[root@zabbix-server php-7.4.21]# ln -s /usr/local/php7/sbin/* /usr/local/sbin

顺便查看下php的版本

[root@zabbix-server php-7.4.21]# php -v
PHP 7.4.21 (cli) (built: Jul  6 2021 23:53:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

启动php,php-fpm是php的管理工具,默认9000端口

[root@zabbix-server etc]# php-fpm
[root@zabbix-server etc]# netstat -antp | grep php-fpm
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      21573/php-fpm: mast

查看是否加载了ldap模块

[root@zabbix-server php-7.4.21]# php -m | grep ldap
ldap

配置nginx可以支持php网页

[root@zabbix-server php-7.4.21]# vim /usr/local/nginx/conf/nginx.conf
location / {
            root   html;
            index  index.php index.html index.htm;
        }

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

启动nginx

[root@zabbix-server etc]# nginx
[root@zabbix-server etc]# netstat -antp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      21592/nginx: master

在nginx网页目录下编写一个简单的php网页,验证访问nginx的php网页成功

[root@zabbix-server php-7.4.21]# vim /usr/local/nginx/html/index.php
<?php
 phpinfo();
?>

在这里插入图片描述

最后可以修改下内容测试一下php与mysql的连接

[root@zabbix-server html]# vim index.php
<?php
    $mysqli = new mysqli("localhost", "root", "12345678");
    if(!$mysqli)  {
        echo"database error";
    }else{
        echo"php env successful";
    }
    $mysqli->close();
?>

验证连接mysql也成功
在这里插入图片描述

四、安装zabbix5.0

首先到zabbix的官网去下载源码包
zabbix官网:https://www.zabbix.com/download_sources#tab:50LTS

接着就可以照着官方文档来进行安装,但还是有些地方不能全部照抄,往下看
官方安装文档
在这里插入图片描述

下载源码包,放到/opt目录下

[root@zabbix-server opt]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.13.tar.gz

解压源码包

[root@zabbix-server opt]# tar -xf zabbix-5.0.13.tar.gz

为zabbix新建用户和组

[root@zabbix-server opt]# groupadd --system zabbix
[root@zabbix-server opt]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

为zabbix家目录修改权限

[root@zabbix-server opt]# mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
[root@zabbix-server opt]# chown zabbix:zabbix /usr/lib/zabbix

好了,现在来设置数据库了
字符集utf8和utf8_bin排序规则是Zabbix Server/Proxy与MySQL数据库一起正常工作所必需的。
还有就是新建一个授权账户叫做zabbix,密码是zabbix123,用他专门来访问数据库的,授权他只能从本地访问zabbix数据库

[root@zabbix-server opt]# mysql -uroot -p
Enter password:

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye

SQL 脚本 用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。
如果要从源代码安装Zabbix,请继续将数据导入数据库。对于Zabbix代理数据库,应仅导入schema.sql( 不是images.sql或data.sql)
我们这里没有单独说要做zabbix代理服务器,所以3个sql都导入数据库

[root@zabbix-server opt]# cd zabbix-5.0.13/
[root@zabbix-server zabbix-5.0.13]# cd database/mysql

[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.

[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.

[root@zabbix-server mysql]# mysql -uzabbix -pzabbix123 zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.

接下来就可以configure配置了,带上所需参数,这些几乎都是必需的

[root@zabbix-server mysql]# cd -
/opt/zabbix-5.0.13
[root@zabbix-server zabbix-5.0.13]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

但是按照官网的configure会报错,缺少net-snmp-devel和libevent-devel依赖包,yum装一下就好

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
[root@zabbix-server zabbix-5.0.13]# yum -y install  net-snmp-devel

configure: error: Unable to use libevent (libevent check failed)
[root@zabbix-server zabbix-5.0.13]# yum install -y libevent-devel

整个过程没报错应该是以下这样的,中间省略一些不重要的信息,这里告诉你相关配置文件路径以及启用了哪些模块等等

Configuration:

  
    Configuration file:    /usr/local/etc/zabbix_server.conf
    External scripts:      /usr/local/share/zabbix/externalscripts
    Alert scripts:         /usr/local/share/zabbix/alertscripts
    Modules:               /usr/local/lib/modules

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    Configuration file:    /usr/local/etc/zabbix_agentd.conf
    Modules:               /usr/local/lib/modules

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

接着直接安装就好,你没看错直接make install!

[root@zabbix-server zabbix-5.0.13]# make install

安装完成之后需要对服务器端配置文件进行修改
服务器端配置文件是zabbix_server.conf

[root@zabbix-server zabbix-5.0.13]# vim /usr/local/etc/zabbix_server.conf

DBPassword=zabbix123    //添加mysql数据库zabbix用户的登陆密码
DBSocket=/var/lib/mysql/mysql.sock   //指定mysql的socket文件路径

启动zabbix服务端,zabbix_agentd是zabbix客户端需要运行的程序,这服务器上启动是因为可以让他自己监控自己

[root@zabbix-server zabbix-5.0.13]# zabbix_server
[root@zabbix-server zabbix-5.0.13]# zabbix_agentd

安装前端web页面
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要从ui路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装,我把整个ui目录都拷贝过去命名为zabbix

[root@zabbix-server zabbix-5.0.13]# cp -r ui /usr/local/nginx/html/zabbix/

检查下端口是否正常,服务器端监听10051,客户端监听10050

[root@zabbix-server zabbix-5.0.13]# netstat -antp | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      106069/zabbix_agent
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      105972/zabbix_serve
tcp6       0      0 :::10050                :::*                    LISTEN      106069/zabbix_agent
tcp6       0      0 :::10051                :::*                    LISTEN      105972/zabbix_serve

五、初始化配置

验证访问*http://192.168.245.204/zabbix/*就出现zabbix主页了,但是还没有完全装好,需要做一些设置,直接下一步
在这里插入图片描述

在这里插入图片描述
zabbix5.0在数据库这里新增加了加密认证的功能,这里就暂时不勾选了
在这里插入图片描述
在这里插入图片描述
没有问题直接下一步
在这里插入图片描述
这个需要你先下载到宿主机然后拖进虚拟机里
在这里插入图片描述
步骤如下:

[root@zabbix-server zabbix-5.0.13]# cd /opt
[root@zabbix-server opt]#
[root@zabbix-server opt]# cp zabbix.conf.php /usr/local/nginx/html/zabbix/conf/zabbix.conf.php

在这里插入图片描述
全部完成之后就重新跳转到登陆界面了,就可以用默认的管理员用户登陆了
在这里插入图片描述
能顺利进到这个页面就表示安装成功了
在这里插入图片描述

六、认识zabbix

但是默认页面是英文的,现在来改一下把语言改成中文
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
因为本机上开启了agent进程,所以默认在监控本机的数据


版权声明:本文为shengjie87原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。