Centos7.9安装zabbix6.0,主要包括nginx1.20、mysql8.0、php7.4配置安装

一、安装nginx

# 创建nginx用户和用户组:$ groupadd -f nginx

$ useradd -g nginx nginx

# 配置好系统yum源,安装如下依赖包:

$ yum install gcc pcre-devel openssl-devel

# 下载上传 nginx-1.20.2.tar.gz至服务器,解压文件包

命令如下:$ tar -zxvf  nginx-1.20.2.tar.gz  

# 安装编译nginx命令如下:

$ ./configure --group=nginx --user=nginx --prefix=/app/nginx --conf-path=/app/nginx/etc/nginx/nginx.conf --error-log-path=/app/nginx/logs/error.log --http-log-path=/app/nginx/logs/access.log --http-client-body-temp-path=/app/nginx/tmp/nginx/client_body --http-proxy-temp-path=/app/nginx/tmp/nginx/proxy --http-fastcgi-temp-path=/app/nginx/tmp/nginx/fastcgi --pid-path=/app/nginx/logs/nginx.pid --lock-path=/app/nginx/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre

$ make && make install

# 配置nginx.conf,修改如下内容

       location / {

             root /app/nginx/html/zabbix;

             try_files $uri $uri/ /index.php?query_string;

             index index.php index.html index.htm;

        }

        location ~ \.php$ {

            root   /app/nginx/html/zabbix;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

# 配置nginx开机自启动服务

# 1、创建/usr/lib/systemd/system/nginx.service文件,

输入如下内容:

$ vi /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx - high performance web server

Documentation=http://nginx.org/en/docs/

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/app/nginx/logs/nginx.pid

ExecStartPre=/app/nginx/sbin/nginx -t -c /app/nginx/etc/nginx/nginx.conf

ExecStart=/app/nginx/sbin/nginx -c /app/nginx/etc/nginx/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

2、重载系统服务:$ systemctl daemon-reload 

3、设置开机启动:$ mkdir -p /app/nginx/tmp/nginx/client_body

$ systemctl enable nginx.service 

$ systemctl start nginx.service

这边我直接配置的环境变量启动及重载

二、安装php7.4

下载安装如下依赖包

yum install libxml2-devel sqlite-devel libcurl-devel libpng-devel libjpeg-turbo-devel libXpm-devel freetype-devel libicu-devel gcc-c++ libxslt-devel oniguruma-devel libsodium-devel openldap-devel net-snmp-devel libwebp-devel

# 如果yum源没有oniguruma oniguruma-devel libsodium libsodium-devel libwebp-devel安装包,则需要从网上下载安装。

$ rpm -ivh oniguruma-6.7.0-1.el7.x86_64.rpm oniguruma-devel-6.7.0-1.el7.x86_64.rpm

$ rpm -ivh libsodium-1.0.18-2.el7.x86_64.rpm libsodium-devel-1.0.18-2.el7.x86_64.rpm

$ cp -frp /usr/lib64/libldap* /usr/lib/

这四个包等yum完了看下一般是有的,没有的话网上自己找下,不是太好找到包

# centos7.9系统自带libzip-0.10.1-8版本太低,PHP不支持,所以源码安装libzip-1.2.0

$ ./configure$ make && make install

$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

# 源码安装php,需要在root环境下编译,否则会提示libzip错误$ tar -xvf php-7.4.10.tar.gz$ ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/php --with-freetype --with-jpeg  --with-zlib  --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --enable-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-zip  --enable-soap --with-gettext --enable-opcache --with-xsl --with-webp --with-xpm --with-snmp --with-ldap$ vim MakeFile   

# 开头是‘EXTRA_LIBS’,结尾加上‘-llber’

$ make && make install

安装php中可能报的错:

会报错:configure: error: Cannot find ldap libraries in /usr/lib

解决办法:cp -frp /usr/lib64/libldap* /usr/lib/

然后再执行还会报:

configure: error: Package requirements (oniguruma) were not met:
No package ‘oniguruma’ found

解决办法:

wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz

tar -zxf oniguruma-6.9.4.tar.gz

cd oniguruma-6.9.4

./configure --prefix=/usr --libdir=/lib64

make && make install

然后再执行:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc*********

make之前:

vi  MakeFile    # 开头是‘EXTRA_LIBS’,结尾加上‘-llber’

$ make && make install

# 配置php-fpm

$ cp php.ini-production /usr/local/php/etc/php.ini

# 修改php.ini文件,将对应参数做如下修改。

  max_execution_time = 300

  max_input_time = 300

  post_max_size = 16M

  date.timezone =Asia/Shanghai

$ cd sapi/fpm && cp php-fpm.conf /usr/local/php/etc/php-fpm.conf

$ cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

# 测试php-fpm配置

$ /usr/local/php/sbin/php-fpm -t -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf 

$ chown -R nginx:nginx /usr/local/php/var

# php启动命令

$ /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

配置php-fpm开机自启动

$ vi /usr/lib/systemd/system/php-fpm.service

[Unit]

Description=PHP-FPM

After=network.target syslog.target2

[Install]

WantedBy=default.target

Alias=php-fpm.service

[Service]

User=nginx

Group=nginx

#User and Group can be set in the php-fpm configure file

Type=forking

#PIDFile=/usr/local/php/var/run/php-fpm.pid

#不需要在这里指定pid文件位置,需要到php-fpm.conf文件中指定

ExecStart=/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

ExecStop=/bin/kill -INT $MAINPID

ExecReload=/bin/kill -USR2 $MAINPID

$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

$ systemctl daemon-reload

$ systemctl enable php-fpm.service

$ systemctl start php-fpm.service

这个自动启动自行需求配置

三、安装mysql数据库

从官网地址https://dev.mysql.com/downloads/mysql/下载mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar# 上传至10.0.100.120主机并解压# 删除mariadb相关lib库文件

[root@dbserver mysql]# rpm -e mariadb-libs --nodeps

[root@dbserver mysql]# rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm --nodeps --force

[root@dbserver mysql]# rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm --nodeps --force

[root@dbserver mysql]# rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm --nodeps --force

[root@dbserver mysql]# rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm --nodeps --force

[root@dbserver mysql]# rpm -qa | grep mysql

mysql-community-common-8.0.28-1.el7.x86_64

mysql-community-client-8.0.28-1.el7.x86_64

mysql-community-libs-8.0.28-1.el7.x86_64

mysql-community-server-8.0.28-1.el7.x86_64

# 通过以下命令,完成对 mysql 数据库的初始化和相关配置

[root@dbserver mysql]# mysqld --initialize

[root@dbserver mysql]# chown mysql:mysql /var/lib/mysql -R

[root@dbserver mysql]# systemctl start mysqld.service

[root@dbserver mysql]# systemctl enable mysqld

# 通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码

[root@dbserver mysql]# cat /var/log/mysqld.log | grep password

2022-02-27T13:53:50.656860Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: srEGdFL&l0eu# 通过如下命令敲回车键进入数据库登陆界面

[root@dbserver mysql]# mysql -uroot -p # 第一次登陆,通过如下命令来修改密码mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '********';

这个mysql8.0安装自己方法安装就行

这里我是在一台服务器上安装了所有,你可以把mysql分离到另一台服务器上

创建zabbix数据库和账户

上传zabbix-6.0.0.tar.gz安装包并解压,进入到如下mysql目录找到创建数据库表sql文件

[root@dbserver mysql]# pwd

/root/software/zabbix/zabbix-6.0.0/database/mysql

[root@dbserver mysql]# ll

总用量 32064

-rw-r--r--. 1 1000 1000 30651987 2月  14 17:55 data.sql

-rw-r--r--. 1 1000 1000      282 2月  14 17:54 double.sql

-rw-r--r--. 1 1000 1000     1526 2月  14 17:54 history_pk_prepare.sql

-rw-r--r--. 1 1000 1000  1978341 2月  14 17:54 images.sql

-rw-r--r--. 1 1000 1000      508 2月  14 17:54 Makefile.am

-rw-r--r--. 1 1000 1000    16389 2月  14 17:55 Makefile.in

-rw-r--r--. 1 1000 1000   163854 2月  14 17:55 schema.sql

[root@dbserver mysql]# mysql -uzabbix -p

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user 'zabbix'@'%' identified by 'zab@2022';

mysql> grant all privileges on zabbix.* to 'zabbix'@'%';

mysql> flush privileges;mysql> source schema.sql;     

mysql> source images.sql;mysql> source data.sql;

mysql> quit

这里的zabbix包在另一台服务器上解压只是为了导入数据其他什么都不需要做

四、安装zabbix

安装如下依赖包:$ yum install -y libssh2-devel unixODBC-devel ncurses-devel OpenIPMI-devel libevent-devel java-1.8.0-openjdk-devel openldap-devel gnutls-devel

# 下载上传zabbix-6.0.0.tar.gz源码包并解压

$ tar -xvf zabbix-6.0.0.tar.gz

$ groupadd --system zabbix

$ useradd --system -g zabbix -d /app/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

$ ./configure --prefix=/app/zabbix --enable-server --enable-agent --enable-ipv6  --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-jabber --with-ssh2 --with-zlib --with-libpcre --enable-java --with-ldap --with-gnutls

编译安装的mysql注意:--with-mysql=/usr/bin/mysql_config

zabbix在编译时报:

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决办法是安装net-snmp-devel

yum install -y net-snmp-devel

在 make install 的过程中,如果出现如下错误:

$ cd zabbix-6.0.6

$ cp -r ui/ /app/nginx/html/zabbix

$ chmod 777 /app/nginx/html/zabbix/conf

$ cd /app/zabbix$ mkdir logs

$ chown -R zabbix:zabbix /app/zabbix

$ systemctl restart nginx.service

# 修改/app/zabbix/etc/zabbix_server.conf文件,将对应参数修改如下。

LogFile=/app/zabbix/logs/zabbix_server.log

PidFile=/app/zabbix/logs/zabbix_server.pid

DBHost=localhost或你mysql服务器ip

DBName=zabbix

DBUser=zabbix

DBPassword=******

DBPort=3306

进入web安装配置界面,打开浏览器输入地址:http://ip/setup.php

 选择中文,点击下一步;

如果没有错误提示,继续点击下一步;

输入MySQL数据库连接信息,然后点击下一步;

如果出现如上信息,说明zabbix已经安装配置完成!

配置开机自启动

# 创建/etc/systemd/system/zabbix-server.service文件,并输入如下内容:

[Unit]

Description=Zabbix Server

After=syslog.target

After=network.target

[Service]

Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"

EnvironmentFile=-/app/zabbix/sbin/zabbix_server

Type=forking

Restart=on-failure

PIDFile=/app/zabbix/logs/zabbix_server.pid

KillMode=control-group

ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s

[Install]

WantedBy=multi-user.target

# 重载系统服务:$ systemctl daemon-reload 

# 设置开机启动:$ systemctl enable zabbix-server.service 

#启动服务$ systemctl start zabbix-server.service

我是编译安装的mysql所以可能会报错:

在启动/usr/local/zabbix/sbin/zabbix_server 时报错如下

 此时需要配置一个软连接指向该位置。

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64

4、配置agent开机自启动

# 创建/etc/systemd/system/zabbix-agentd.service文件,并输入如下内容:

[Unit]

Description=Zabbix monitor agent

After=syslog.target

After=network.target

[Service]

Environment="CONFFILE=/app/zabbix/etc/zabbix_agentd.conf"

EnvironmentFile=-/app/zabbix/sbin/zabbix_agentd

Type=forking

Restart=on-failure

PIDFile=/app/zabbix/logs/zabbix_agentd.pid

KillMode=control-group

ExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILE

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s

[Install]

WantedBy=multi-user.target

# 重载系统服务: systemctl daemon-reload 

# 设置开机启动:systemctl enable zabbix-agentd.service 

#启动服务:systemctl start zabbix-agentd.service

客户端的报错就看看配置文件里pid等的路径改下就行了

Zabbix图形会出现无法显示中文字体的情况,需要做如下处理:

(1)从Windows系列系统复制一种中文字体:

控制面板->字体->复制一个中文字体

如:宋体,即:simsun.ttc

(2)复制该字体文件到zabbix的web端的fonts目录下:

如:/usr/local/nginx/html/zabbix/fonts

注:字体文件的文件后缀名需要是:.ttf,因此改成:simsun.ttf

  1. 修改php配置文件:

[root@localhost ~]# cd /usr/local/nginx/html/zabbix/include/

[root@localhost zabbix]# vim defines.inc.php

原内容如下:

define(‘ZBX_GRAPH_FONT_NAME’,        ‘DejaVuSans’);

define(‘ZBX_FONT_NAME’, ‘DejaVuSans’);

修改成以下内容:

define(‘ZBX_GRAPH_FONT_NAME’,        ‘simsun’);

define(‘ZBX_FONT_NAME’, ‘simsun’);

注:这里不需要添加文件后缀名

最后刷新图形显示页面,可以发现中文已经可以正常显示了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐