全国直销电话:4006-854-568
IT-technology
以人为本,众志成城,以“用户至上”.“服务上乘”为原则,
追求产品和服务高质量,努力实现与客户之间真诚有效的沟通,
不断地圆梦、奔跑与腾飞。
新闻动态   NEWS
采用LNMP环境用Zabbix6.2搭建一个实用的中小企业IT运维监控平台-北京赛维博信科技发展有限公司
来源:本文摘自网络,如有侵权请联系删除 | 作者:svbx001 | 发布时间: 2022-11-08 | 9641 次浏览 | 分享到:

一.安装基础环境准备

1.1.主机基础信息
主机名操作系统IP地址安装软件或模块
NEWZABBIXSERVERCentOS Linux release 7.8.2003 (Core)192.168.250.61zabbix server
zabbix web_gui
nginx
php-fpm
mysql
TESTSER01CentOS Linux release 7.8.2003 (Core)192.168.250.62zabbix_agentd
TESTSER02CentOS Linux release 7.8.2003 (Core)192.168.250.63zabbix_agentd
1.2.基础架构图

1.3.安全相关设置

暂时关闭防火墙。

关闭SELINUX,这两个过程略。

二.安装和部署LNMP环境

安装之前,先安装好依赖关系,这里安装好zlib、pcre、pcre-devel、openssl、openssl-devel这五个包:

[root@NEWZABBIXSERVER ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
base                                                                                                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                                                                                                   | 2.9 kB  00:00:00     
(1/2): extras/7/x86_64/primary_db                                                                                                                                                         | 249 kB  00:00:00     
(2/2): updates/7/x86_64/primary_db                                                                                                                                                        |  17 MB  00:00:02     
软件包 pcre-8.32-17.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
……

同时,为系统创建www用户,属性为没有登录权限:

[root@NEWZABBIXSERVER ~]# useradd www -s /sbin/nologin
[root@NEWZABBIXSERVER ~]# id www
uid=1001(www) gid=1001(www) 组=1001(www)
[root@NEWZABBIXSERVER ~]# 
2.1.安装nginx
2.1.1获取nginx源码包

这里从nginx官网获取最新稳定版源码包nginx-1.22.1

从官网获取链接地址,然后下载到本地:

[root@NEWZABBIXSERVER app]# wget https://nginx.org/download/nginx-1.22.1.tar.gz
--2022-11-02 13:14:33--  https://nginx.org/download/nginx-1.22.1.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5704::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1073948 (1.0M) [application/octet-stream]
正在保存至: “nginx-1.22.1.tar.gz”

100%
[============================================================================================>] 1,073,948   1.01MB/s 用时 1.0s   

2022-11-02 13:14:35 (1.01 MB/s) - 已保存 “nginx-1.22.1.tar.gz” [1073948/1073948])

[root@NEWZABBIXSERVER app]# 

解压并进入目录:

[root@NEWZABBIXSERVER app]# ll
总用量 1052
-rw-r--r--. 1 root root 1073948 10月 19 17:23 nginx-1.22.1.tar.gz
[root@NEWZABBIXSERVER app]# tar zxvf nginx-1.22.1.tar.gz 
[root@NEWZABBIXSERVER app]# cd nginx-1.22.1/
[root@NEWZABBIXSERVER nginx-1.22.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@NEWZABBIXSERVER nginx-1.22.1]# 
2.1.2编译安装nginx

为下面安装编译顺利进行,这里提前准备了openssl-1.0.2n,并将其解压放置到/app目录下:

[root@NEWZABBIXSERVER app]# ll
总用量 6308
drwxr-xr-x.  8 www  www      158 10月 19 16:02 nginx-1.22.1
-rw-r--r--.  1 root root 1073948 10月 19 17:23 nginx-1.22.1.tar.gz
drwxr-xr-x. 20 root root    4096 11月  2 13:24 openssl-1.0.2n
-rw-r--r--.  1 root root 5375802 4月  30 2020 openssl-1.0.2n.tar.gz
[root@NEWZABBIXSERVER app]# 

开始编译:

[root@NEWZABBIXSERVER nginx-1.22.1]# ./configure 
> --user=www 
> --group=www 
> --prefix=/usr/local/nginx 
> --sbin-path=/usr/local/nginx/sbin/nginx 
> --conf-path=/usr/local/nginx/conf/nginx.conf 
> --error-log-path=/usr/local/nginx/logs/error.log 
> --http-log-path=/usr/local/nginx/logs/access.log 
> --pid-path=/var/run/nginx.pid 
> --lock-path=/var/lock/subsys/nginx 
> --with-openssl=/app/openssl-1.0.2n 
> --with-http_stub_status_module 
> --with-http_ssl_module 
> --with-http_gzip_static_module 
> --with-pcre
checking for OS
 + Linux 3.10.0-1127.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
checking for gcc -pipe switch ... found
……
Configuration summary
  + using system PCRE library
  + using OpenSSL library: /app/openssl-1.0.2n
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/var/run/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

[root@NEWZABBIXSERVER nginx-1.22.1]# 

执行makemake install

[root@NEWZABBIXSERVER nginx-1.22.1]# make
……
sed -e "s|%%PREFIX%%|/usr/local/nginx|" 
 -e "s|%%PID_PATH%%|/var/run/nginx.pid|" 
 -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" 
 -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" 
 < man/nginx.8 > objs/nginx.8
make[1]: 离开目录“/app/nginx-1.22.1”

[root@NEWZABBIXSERVER nginx-1.22.1]# 
[root@NEWZABBIXSERVER nginx-1.22.1]# make install

安装完成后,进入目录,查看安装情况:

[root@NEWZABBIXSERVER nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 11月  2 13:42 conf
drwxr-xr-x. 2 root root   40 11月  2 13:42 html
drwxr-xr-x. 2 root root    6 11月  2 13:42 logs
drwxr-xr-x. 2 root root   19 11月  2 13:42 sbin
[root@NEWZABBIXSERVER nginx]# 
2.2安装mysql

这里采用mysql官方源进行yum方式安装,首先获取官方源:

2.2.1获取mysql的yum源的RPM包

这里在官网:

https://repo.mysql.com/

找到mysql57-community-release-el7.rpm并下载:

[root@NEWZABBIXSERVER app]# wget https://repo.mysql.com/mysql57-community-release-el7.rpm
--2022-11-02 13:51:31--  https://repo.mysql.com/mysql57-community-release-el7.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... 23.3.109.33
正在连接 repo.mysql.com (repo.mysql.com)|23.3.109.33|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:25680 (25K) [application/x-redhat-package-manager]
正在保存至: “mysql57-community-release-el7.rpm”

100%
[=======================================================>] 25,680       136KB/s 用时 0.2s   

2022-11-02 13:51:37 (136 KB/s) - 已保存 “mysql57-community-release-el7.rpm” [25680/25680])

[root@NEWZABBIXSERVER app]# 
2.2.2安装yum源
[root@NEWZABBIXSERVER app]# rpm -ivh mysql57-community-release-el7.rpm 
警告:mysql57-community-release-el7.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql57-community-release-el7-11 ################################# [100%]
[root@NEWZABBIXSERVER app]# 
2.2.3用yum方式安装mysql
[root@NEWZABBIXSERVER app]# yum install mysql-server mysql mysql-devel
……
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : mysql-community-common-5.7.40-1.el7.x86_64                                                                                                                                                   1/7 
  正在安装    : mysql-community-libs-5.7.40-1.el7.x86_64                                                                                                                                                     2/7 
  正在安装    : mysql-community-client-5.7.40-1.el7.x86_64                                                                                                                                                   3/7 
  正在安装    : mysql-community-server-5.7.40-1.el7.x86_64                                                                                                                                                   4/7 
  正在安装    : mysql-community-devel-5.7.40-1.el7.x86_64                                                                                                                                                    5/7 
  正在安装    : mysql-community-libs-compat-5.7.40-1.el7.x86_64                                                                                                                                              6/7 
  正在删除    : 1:mariadb-libs-5.5.65-1.el7.x86_64                                                                                                                                                           7/7 
  验证中      : mysql-community-client-5.7.40-1.el7.x86_64                                                                                                                                                   1/7 
  验证中      : mysql-community-devel-5.7.40-1.el7.x86_64                                                                                                                                                    2/7 
  验证中      : mysql-community-server-5.7.40-1.el7.x86_64                                                                                                                                                   3/7 
  验证中      : mysql-community-common-5.7.40-1.el7.x86_64                                                                                                                                                   4/7 
  验证中      : mysql-community-libs-5.7.40-1.el7.x86_64                                                                                                                                                     5/7 
  验证中      : mysql-community-libs-compat-5.7.40-1.el7.x86_64                                                                                                                                              6/7 
  验证中      : 1:mariadb-libs-5.5.65-1.el7.x86_64                                                                                                                                                           7/7 

已安装:
  mysql-community-client.x86_64 0:5.7.40-1.el7       mysql-community-devel.x86_64 0:5.7.40-1.el7       mysql-community-libs.x86_64 0:5.7.40-1.el7       mysql-community-libs-compat.x86_64 0:5.7.40-1.el7      
  mysql-community-server.x86_64 0:5.7.40-1.el7      

作为依赖被安装:
  mysql-community-common.x86_64 0:5.7.40-1.el7                                                                                                                                                                   

替代:
  mariadb-libs.x86_64 1:5.5.65-1.el7                                                                                                                                                                             

完毕!
[root@NEWZABBIXSERVER app]# 
2.2.4启动mysql服务
[root@NEWZABBIXSERVER app]# systemctl start mysqld
[root@NEWZABBIXSERVER app]# 

然后查看进程是否启动:

[root@NEWZABBIXSERVER app]# ps -ef | grep mysqld
mysql    15380     1  0 14:12 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root     15427  3656  0 14:14 pts/1    00:00:00 grep --color=auto mysqld
[root@NEWZABBIXSERVER app]# 
2.2.5修改root临时密码

mysql启动后,系统会自动为root用户设置一个临时密码,这个密码第一次登录后,需要修改:

先查看临时密码是多少:

[root@NEWZABBIXSERVER app]# grep "password" /var/log/mysqld.log
2022-11-02T06:12:35.221860Z 1 [Note] A temporary password is generated for root@localhost: wjuC<jv7!7um
[root@NEWZABBIXSERVER app]# 

即root临时密码为:wjuC<jv7!7um,用此临时密码登录后修改:

[root@NEWZABBIXSERVER /]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.40

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>
 

这里修改root密码为:myzabbix123#

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'myzabbix123#';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> 

提示不符合当前密码策略,修改当前密码策略,然后再修改密码:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql>
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'myzabbix123#';
Query OK, 0 rows affected (0.00 sec)

mysql>
 
2.3安装php
2.3.1依赖环境安装

这里安装php7.4,先装依赖:

[root@NEWZABBIXSERVER app]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
……
已安装:
  freetype-devel.x86_64 0:2.8-14.el7_9.1   libcurl-devel.x86_64 0:7.29.0-59.el7_9.1   libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7   libpng-devel.x86_64 2:1.5.13-8.el7   libxml2-devel.x86_64 0:2.9.1-6.el7_9.6  

作为依赖被安装:
  xz-devel.x86_64 0:5.2.2-2.el7_9                                                                                                                                                                                

更新完毕:
  curl.x86_64 0:7.29.0-59.el7_9.1                     freetype.x86_64 0:2.8-14.el7_9.1                     libpng.x86_64 2:1.5.13-8.el7                     libxml2.x86_64 0:2.9.1-6.el7_9.6                    

作为依赖被升级:
  libcurl.x86_64 0:7.29.0-59.el7_9.1                    libxml2-python.x86_64 0:2.9.1-6.el7_9.6                    xz.x86_64 0:5.2.2-2.el7_9                    xz-libs.x86_64 0:5.2.2-2.el7_9                   

完毕!
[root@NEWZABBIXSERVER app]#
2.3.2获取源码文件

这里打开官网,先查询到地址:

https://www.php.net/distributions/php-7.4.32.tar.gz

然后下载到本地:

[root@NEWZABBIXSERVER app]# wget https://www.php.net/distributions/php-7.4.32.tar.gz
--2022-11-02 14:33:24--  
已发出 HTTP 请求,正在等待回应... 200 OK
……
[root@NEWZABBIXSERVER app]# 

解压后,查看:

[root@NEWZABBIXSERVER php-7.1.14]# tar zxvf php-7.4.32.tar.gz
[root@NEWZABBIXSERVER php-7.1.14]# 

2.3.3编译安装php7.4
[root@NEWZABBIXSERVER php-7.4.32]# ./configure  --prefix=/usr/local/php7  --enable-fpm  --with-fpm-user=www  --with-fpm-group=www  --with-pdo-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-zlib  --with-curl  --with-gd  --with-jpeg-dir  --with-png-dir  --with-freetype-dir  --with-openssl  --enable-mbstring  --enable-xml  --enable-session  --enable-ftp  --enable-pdo -enable-tokenizer  --enable-zip
……
Generating files
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
[root@NEWZABBIXSERVER php-7.1.14]# 

执行makemake install

[root@NEWZABBIXSERVER php-7.4.32]# make
[root@NEWZABBIXSERVER php-7.4.32]# make install
……

Thank you for helping to make PHP better.
[root@NEWZABBIXSERVER php-7.1.14]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
Installing PHP CLI binary:        /usr/local/php7/bin/
Installing PHP CLI man page:      /usr/local/php7/php/man/man1/
Installing PHP FPM binary:        /usr/local/php7/sbin/
Installing PHP FPM defconfig:     /usr/local/php7/etc/
Installing PHP FPM man page:      /usr/local/php7/php/man/man8/
Installing PHP FPM status page:   /usr/local/php7/php/php/fpm/
Installing phpdbg binary:         /usr/local/php7/bin/
Installing phpdbg man page:       /usr/local/php7/php/man/man1/
Installing PHP CGI binary:        /usr/local/php7/bin/
Installing PHP CGI man page:      /usr/local/php7/php/man/man1/
Installing build environment:     /usr/local/php7/lib/php/build/
Installing header files:          /usr/local/php7/include/php/
Installing helper programs:       /usr/local/php7/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php7/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php7/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.3
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.2
[PEAR] PEAR           - installed: 1.10.5
Wrote PEAR system config file at: /usr/local/php7/etc/pear.conf
You may want to add: /usr/local/php7/lib/php to your php.ini include_path
/app/php-7.4.32/build/shtool install -c ext/phar/phar.phar /usr/local/php7/bin
ln -s -f phar.phar /usr/local/php7/bin/phar
Installing PDO headers:           /usr/local/php7/include/php/ext/pdo/
[root@NEWZABBIXSERVER php-7.4.32]# 

安装完成后,将下面两个文件复制到指定的目录下,如下:

[root@NEWZABBIXSERVER php-7.4.32]# cp php.ini-production  /usr/local/php7/lib/php.ini
[root@NEWZABBIXSERVER php-7.4.32]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@NEWZABBIXSERVER php-7.4.32]# 
2.3.4启动php-fpm
[root@NEWZABBIXSERVER php-7.4.32]# systemctl start php-fpm
[root@NEWZABBIXSERVER php-7.4.32]# 
2.4配置lnmp环境
2.4.1配置nginx

这里先修改nginx配置文件,用来包括php-fpm功能:

备份一下:

[root@NEWZABBIXSERVER conf]# cp nginx.conf nginx.conf.ori.20221102
[root@NEWZABBIXSERVER conf]# 

然后编辑:

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
2.4.2配置php-fpm

接着,修改php-fpm配置文件,启用php-fpm默认配置:

[root@NEWZABBIXSERVER nginx]# cd /usr/local/php7/
[root@NEWZABBIXSERVER php7]# ls
bin  etc  include  lib  php  sbin  var
[root@NEWZABBIXSERVER php7]# cd etc
[root@NEWZABBIXSERVER etc]# cp php-fpm.conf.default php-fpm.conf
[root@NEWZABBIXSERVER etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf
[root@NEWZABBIXSERVER etc]# 

上面修改结束后,再重启lnmp服务:

[root@NEWZABBIXSERVER etc]# systemctl start php-fpm
[root@NEWZABBIXSERVER etc]# /usr/local/nginx/sbin/nginx
[root@NEWZABBIXSERVER etc]# 
2.5配置php.ini文件
[root@NEWZABBIXSERVER etc]# vim /usr/local/php7/lib/php.ini
[root@NEWZABBIXSERVER etc]# 

max_execution_time = 300
memory_limit = 128M
max_input_time = 300
date.timezone = Asia/Shanghai

至此,可以用phpinfo()进行测试,测试过程略。

[root@NEWZABBIXSERVER nginx]# pwd
/usr/local/nginx
[root@NEWZABBIXSERVER nginx]# sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@NEWZABBIXSERVER nginx]# sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[root@NEWZABBIXSERVER nginx]# 

三.安装zabbix server

3.1依赖包和库安装

安装zabbix之前,需要提前安装相应的依赖包和库:

[root@NEWZABBIXSERVER app]# yum -y install net-snmp net-snmp-devel curl curl-devel libxml2  libevent libevent-devel
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
软件包 1:net-snmp-5.7.2-49.el7_9.2.x86_64 已安装并且是最新版本
软件包 1:net-snmp-devel-5.7.2-49.el7_9.2.x86_64 已安装并且是最新版本
软件包 curl-7.29.0-59.el7_9.1.x86_64 已安装并且是最新版本
软件包 libcurl-devel-7.29.0-59.el7_9.1.x86_64 已安装并且是最新版本
软件包 libxml2-2.9.1-6.el7_9.6.x86_64 已安装并且是最新版本
软件包 libevent-2.0.21-4.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 libevent-devel.x86_64.0.2.0.21-4.el7 将被 安装
……
3.2创建用户

这里创建zabbix进程用户:

[root@NEWZABBIXSERVER app]# groupadd zabbix
[root@NEWZABBIXSERVER app]# useradd -g zabbix zabbix
[root@NEWZABBIXSERVER app]# id zabbix
uid=1002(zabbix) gid=1002(zabbix) 组=1002(zabbix)
[root@NEWZABBIXSERVER app]# 
3.3获取zabbix源码包

登录官网:

https://www.zabbix.com/download_sources

找到源码包下载链接,获取源码包到本地:

https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.3.tar.gz

下载后,解压进入目录:

[root@NEWZABBIXSERVER zabbix-6.2.3]# tar zxvf zabbix-6.2.3.tar.gz
[root@NEWZABBIXSERVER zabbix-6.2.3]# 
[root@NEWZABBIXSERVER app]# cd zabbix-6.2.3/
[root@NEWZABBIXSERVER zabbix-6.2.3]# ls
aclocal.m4  bin    ChangeLog  conf          config.sub  configure.ac  database  include  install-sh  Makefile.am  man   missing  README  src
AUTHORS     build  compile    config.guess  configure   COPYING       depcomp   INSTALL  m4          Makefile.in  misc  NEWS     sass    ui
[root@NEWZABBIXSERVER zabbix-6.2.3]# 
3.4编译安装zabbix
[root@NEWZABBIXSERVER zabbix-6.2.3]# ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
……

  LDAP support:          no
  IPv6 support:          no

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

[root@NEWZABBIXSERVER zabbix-6.2.3]# 

然后执行makemake install

[root@NEWZABBIXSERVER zabbix-6.2.3]# make && make install
[root@NEWZABBIXSERVER zabbix-6.2.3]# 
3.5创建软链接

由于zabbix启动脚本路径默认指向的是/usr/local/sbin路径,而zabbix的安装路径是/usr/local/zabbix,因此,需要提前创建如下软链接:

[root@NEWZABBIXSERVER app]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
[root@NEWZABBIXSERVER app]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@NEWZABBIXSERVER app]# 
3.6创建数据库和初始化数据表

对于Zabbix serverproxy守护进程以及Zabbix前端,都需要连接到一个数据库。

Zabbix agent不需要数据库的支持。

因此,需要先创建一个用户和数据库,并导入数据库对应的表。

为导入方便,先进入下列目录:

[root@NEWZABBIXSERVER zabbix-6.2.3]# cd database/
[root@NEWZABBIXSERVER database]# pwd
/app/zabbix-6.2.3/database
[root@NEWZABBIXSERVER database]# ls
elasticsearch  Makefile  Makefile.am  Makefile.in  mysql  oracle  postgresql  sqlite3
[root@NEWZABBIXSERVER database]#

然后登录数据库:

[root@NEWZABBIXSERVER database]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>
 

创建zabbix数据库及用户:

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

mysql>
 use zabbix;
Database changed
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql>
 flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql>
 

然后导入数据:

mysql> use zabbix;
mysql> source schema.sql;
mysql> source images.sql;
mysql> source data.sql;
……
Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 69433 rows affected (0.81 sec)

Query OK, 0 rows affected (0.07 sec)

mysql>
 
3.7配置zabbix server端

zabbix的安装路径为/usr/local/zabbix,配置文件位于/usr/local/zabbix/etc目录下,zabbix_server.conf就是zabbix server的配置文件,打开此文件:

[root@NEWZABBIXSERVER etc]# pwd
/usr/local/zabbix/etc
[root@NEWZABBIXSERVER etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_proxy.conf  zabbix_proxy.conf.d  zabbix_server.conf  zabbix_server.conf.d
[root@NEWZABBIXSERVER etc]# 

先备份一下:

[root@NEWZABBIXSERVER etc]# cp zabbix_server.conf zabbix_server.conf.ori.20221102
[root@NEWZABBIXSERVER etc]# ll
总用量 104
-rw-r--r--. 1 root root 17033 11月  2 16:41 zabbix_agentd.conf
drwxr-xr-x. 2 root root     6 11月  2 16:41 zabbix_agentd.conf.d
-rw-r--r--. 1 root root 25609 11月  2 16:41 zabbix_proxy.conf
drwxr-xr-x. 2 root root     6 11月  2 16:41 zabbix_proxy.conf.d
-rw-r--r--. 1 root root 26844 11月  2 16:41 zabbix_server.conf
drwxr-xr-x. 2 root root     6 11月  2 16:41 zabbix_server.conf.d
-rw-r--r--. 1 root root 26844 11月  2 17:06 zabbix_server.conf.ori.20221102
[root@NEWZABBIXSERVER etc]# 

修改如下几个配置项:

[root@NEWZABBIXSERVER etc]# vim zabbix_server.conf
[root@NEWZABBIXSERVER etc]# cat zabbix_server.conf
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix 
DBUser=zabbix 
DBPassword=zabbix456
ListenIP=0.0.0.0
StartPollers=5
StartTrappers=10
StartDiscoverers=10
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@NEWZABBIXSERVER etc]# 

添加管理维护zabbix的脚本并启动服务:

zabbix源码包misc/init.d/fedora/core/目录中找到zabbix_serverzabbix_agentd管理脚本,然后复制到/etc/init.d目录下:

[root@NEWZABBIXSERVER core]# pwd
/app/zabbix-6.2.3/misc/init.d/fedora/core
[root@NEWZABBIXSERVER core]# ll
总用量 8
-rwxr-xr-x. 1 moonrong moonrong 2170 7月  18 15:31 zabbix_agentd
-rwxr-xr-x. 1 moonrong moonrong 2181 7月  18 15:31 zabbix_server
[root@NEWZABBIXSERVER core]# 

进行复制:

[root@NEWZABBIXSERVER core]# cp zabbix_server /etc/init.d/zabbix_server
[root@NEWZABBIXSERVER core]# cp zabbix_agentd /etc/init.d/zabbix_agentd
[root@NEWZABBIXSERVER core]# 

再添加脚本执行权限:

[root@NEWZABBIXSERVER core]# chmod +x /etc/init.d/zabbix_server
[root@NEWZABBIXSERVER core]# chmod +x /etc/init.d/zabbix_agentd
[root@NEWZABBIXSERVER core]# 

再将其添加到开机启动:

[root@NEWZABBIXSERVER core]# chkconfig zabbix_server on 
[root@NEWZABBIXSERVER core]# chkconfig zabbix_agentd on
[root@NEWZABBIXSERVER core]# 
3.8启动zabbix server
[root@NEWZABBIXSERVER app]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl):                    [  确定  ]
[root@NEWZABBIXSERVER app]# 
3.9修改系统配置文件

添加相关服务和端口到系统配置文件:

[root@NEWZABBIXSERVER app]# vim /etc/services

zabbix-agent    10050/tcp               # Zabbix Agent 
zabbix-agent    10050/udp               # Zabbix Agent 
zabbix-trapper  10051/tcp               # Zabbix Trapper 
zabbix-trapper  10051/udp               # Zabbix Trapper
[root@NEWZABBIXSERVER app]# 

四.安装zabbix_agent

4.1获取zabbix_agent的YUM源

这里采用yum方式安装,先获取yum源:

http://repo.zabbix.com/zabbix/

zabbix官网下载对应的版本6.2。

这里先登录TESTSER01主机,进行下载:

[root@TESTSER01 myapp]# wget http://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-agent-6.2.3-release1.el7.x86_64.rpm
--2022-11-02 17:44:54--  http://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-agent-6.2.3-release1.el7.x86_64.rpm
正在解析主机 repo.zabbix.com (repo.zabbix.com)... 178.128.6.101, 2604:a880:2:d0::2062:d001
正在连接 repo.zabbix.com (repo.zabbix.com)|178.128.6.101|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:536136 (524K) [application/x-redhat-package-manager]
正在保存至: “zabbix-agent-6.2.3-release1.el7.x86_64.rpm”

100%
[==================================================>] 536,136      592KB/s 用时 0.9s   

2022-11-02 17:45:00 (592 KB/s) - 已保存 “zabbix-agent-6.2.3-release1.el7.x86_64.rpm” [536136/536136])

[root@TESTSER01 myapp]# 
4.2安装zabbix_agent

然后对rpm包进行安装:

[root@TESTSER01 myapp]# rpm -ivh zabbix-agent-6.2.3-release1.el7.x86_64.rpm 
警告:zabbix-agent-6.2.3-release1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-agent-6.2.3-release1.el7  ################################# [100%]
[root@TESTSER01 myapp]# 

安装完成后,zabbix agent端已经安装完成了,zabbix agent端的配置目录位于/etc/zabbix下,可在此目录进行配置文件的修改。

4.3配置zabbix_agent

zabbix agent端的配置文件是/etc/zabbix/zabbix_agent.conf,现进行修改:

root@TESTSER01 myapp]# cd /etc/zabbix/
[root@TESTSER01 zabbix]# ll
总用量 20
-rw-r--r--. 1 root root 17212 9月  21 18:26 zabbix_agentd.conf
drwxr-xr-x. 2 root root     6 9月  21 18:26 zabbix_agentd.d
[root@TESTSER01 zabbix]# vim zabbix_agentd.conf
[root@TESTSER01 zabbix]# 
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.250.61
StartAgents=3
ServerActive=192.168.250.61
Hostname=192.168.250.62
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1 
4.4启动zabbix_agent
[root@TESTSER01 zabbix]# systemctl  start  zabbix-agent
[root@TESTSER01 zabbix]# 

五.安装zabbix_server_gui

前面已经安装好了lnmp环境,因此可以直接使用。

这里我们将zabbix web安装到/usr/loca/nginx/html目录下,因此,只需将Zabbix web的代码放到此目录即可。

Zabbix web的代码在Zabbix源码包中的UI目录下,将这个目录拷贝到/usr/loca/nginx/html目录下并改名为zabbix即可完成Zabbix web端的安装。

[root@NEWZABBIXSERVER zabbix-6.2.3]# cp -r ui /usr/local/nginx/html/zabbix
[root@NEWZABBIXSERVER zabbix-6.2.3]# 

在浏览器输入http://ip/zabbix,然后会检查zabbix web运行环境是否满足,并提供连接数据库的相关信息即可:

http://192.168.250.61/zabbix/setup.php


根据提示,下载文件,并上传到usr/local/nginx/html/zabbix/conf/zabbix.conf.php目录下。

点完成,出现登录界面:

默认的zabbix平台登录用户名为Admin,密码为zabbix

六.排错处理

6.1 error: C compiler cc is not found问题

在编译nginx时,提示:./configure: error: C compiler cc is not found,如下:

[root@NEWZABBIXSERVER nginx-1.22.1]# ./configure 
> --user=www 
> --group=www 
> --prefix=/usr/local/nginx 
> --sbin-path=/usr/local/nginx/sbin/nginx 
> --conf-path=/usr/local/nginx/conf/nginx.conf 
> --error-log-path=/usr/local/nginx/logs/error.log 
> --http-log-path=/usr/local/nginx/logs/access.log 
> --pid-path=/var/run/nginx.pid 
> --lock-path=/var/lock/subsys/nginx 
> --with-openssl=/app/openssl-1.0.2n 
> --with-http_stub_status_module 
> --with-http_ssl_module 
> --with-http_gzip_static_module 
> --with-pcre
checking for OS
 + Linux 3.10.0-1127.el7.x86_64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found

[root@NEWZABBIXSERVER nginx-1.22.1]# 

解决办法:

由于新安装的环境缺少,采用yum安装gcc gcc-c++ autoconf automake make

[root@NEWZABBIXSERVER app]# yum -y install gcc gcc-c++ autoconf automake make
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 autoconf.noarch.0.2.69-11.el7 将被 安装
---> 软件包 automake.noarch.0.1.13.4-3.el7 将被 安装
……
6.2 该程序可以在 GNU GPL 条款下自由分发
[root@NEWZABBIXSERVER app]# ]rpm –ivh mysql57-community-release-el7.rpm
RPM 版本 4.11.3
版权所有 (C) 1998-2002 - 红帽公司。
该程序可以在 GNU GPL 条款下自由分发

用法: rpm [-aKfgpqVcdLilsiv?] [-a|--all] [-f|--file] [-g|--group] [-p|--package] [--pkgid] [--hdrid] [--triggeredby] [--whatrequires] [--whatprovides] [--nomanifest] [-c|--configfiles] [-d|--docfiles]
        [-L|--licensefiles] [--dump] [-l|--list] [--queryformat=QUERYFORMAT] [-s|--state] [--nofiledigest] [--nofiles] [--nodeps] [--noscript] [--allfiles] [--allmatches] [--badreloc]
        [-e|--erase <package>+] [--excludedocs] [--excludepath=<path>] [--force] [-F|--freshen <packagefile>+] [-h|--hash] [--ignorearch] [--ignoreos] [--ignoresize] [-i|--install] [--justdb]
        [--nodeps] [--nofiledigest] [--nocontexts] [--noorder] [--noscripts] [--notriggers] [--nocollections] [--oldpackage] [--percent] [--prefix=<dir>] [--relocate=<old>=<new>] [--replacefiles]
        [--replacepkgs] [--test] [-U|--upgrade <packagefile>+] [--reinstall=<packagefile>+] [-D|--define “MACRO EXPR”] [--undefine=MACRO] [-E|--eval “EXPR”] [--macros=<FILE:…>] [--noplugins]
        [--nodigest] [--nosignature] [--rcfile=<FILE:…>] [-r|--root ROOT] [--dbpath=DIRECTORY] [--querytags] [--showrc] [--quiet] [-v|--verbose] [--version] [-?|--help] [--usage] [--scripts]
        [--setperms] [--setugids] [--setcaps] [--restore] [--conflicts] [--obsoletes] [--provides] [--requires] [--info] [--changelog] [--xml] [--triggers] [--last] [--dupes] [--filesbypkg]
        [--fileclass] [--filecolor] [--fscontext] [--fileprovide] [--filerequire] [--filecaps]
[root@NEWZABBIXSERVER app]# 

进入/etc/pki/rpm-gpg目录查看GPG密钥:

[root@NEWZABBIXSERVER ~]# cd /etc/pki/rpm-gpg
[root@NEWZABBIXSERVER rpm-gpg]# ll
总用量 12
-rw-r--r--. 1 root root 1690 4月   8 2020 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root 1004 4月   8 2020 RPM-GPG-KEY-CentOS-Debug-7
-rw-r--r--. 1 root root 1690 4月   8 2020 RPM-GPG-KEY-CentOS-Testing-7
[root@NEWZABBIXSERVER rpm-gpg]# 

导入GPG-KEY

[root@NEWZABBIXSERVER rpm-gpg]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@NEWZABBIXSERVER rpm-gpg]# 

导入后,不行,然后全部导入:

[root@NEWZABBIXSERVER rpm-gpg]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@NEWZABBIXSERVER rpm-gpg]# rpm --import RPM-GPG-KEY-CentOS-Debug-7
[root@NEWZABBIXSERVER rpm-gpg]# rpm --import RPM-GPG-KEY-CentOS-Testing-7 
[root@NEWZABBIXSERVER rpm-gpg]# 
6.3 mysql-community-client-5.7.40-1.el7.x86_64.rpm 的公钥尚未安装
mysql-community-client-5.7.40-1.el7.x86_64.rpm 的公钥尚未安装


 失败的软件包是:mysql-community-client-5.7.40-1.el7.x86_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

执行下面导入,过期所致的问题:

[root@NEWZABBIXSERVER rpm-gpg]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
[root@NEWZABBIXSERVER rpm-gpg]# 



 

服务热线

1391-024-6332