LNMP下的Zabbix 6.2安装部署
一.安装基础环境准备
1.1.主机基础信息
主机名 | 操作系统 | IP地址 | 安装软件或模块 |
---|---|---|---|
NEWZABBIXSERVER | CentOS Linux release 7.8.2003 (Core) | 192.168.250.61 | zabbix server zabbix web_gui nginx php-fpm mysql |
TESTSER01 | CentOS Linux release 7.8.2003 (Core) | 192.168.250.62 | zabbix_agentd |
TESTSER02 | CentOS Linux release 7.8.2003 (Core) | 192.168.250.63 | zabbix_agentd |
1.2.基础架构图
1.3.安全相关设置
暂时关闭防火墙。
关闭SELINUX
,这两个过程略。
二.安装和部署LNMP
环境
安装之前,先安装好依赖关系,这里安装好zlib、pcre、pcre-devel、openssl、openssl-devel
这五个包:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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
用户,属性为没有登录权限:
1 2 3 4 | [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
:
从官网获取链接地址,然后下载到本地:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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]# |
解压并进入目录:
1 2 3 4 5 6 7 8 | [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目录下:
1 2 3 4 5 6 7 | [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]# |
开始编译:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [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]# |
执行make
和make install
:
1 2 3 4 5 6 7 8 9 10 11 | [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 |
安装完成后,进入目录,查看安装情况:
1 2 3 4 5 6 7 | [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包
这里在官网:
1 | https://repo.mysql.com/ |
找到mysql57-community-release-el7.rpm
并下载:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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源
1 2 3 4 5 6 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [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服务
1 2 | [root@NEWZABBIXSERVER app]# systemctl start mysqld [root@NEWZABBIXSERVER app]# |
然后查看进程是否启动:
1 2 3 4 | [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
用户设置一个临时密码,这个密码第一次登录后,需要修改:
先查看临时密码是多少:
1 2 3 | [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
,用此临时密码登录后修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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#
:
1 2 3 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'myzabbix123#'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql> |
提示不符合当前密码策略,修改当前密码策略,然后再修改密码:
1 2 3 4 5 6 7 | 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
,先装依赖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [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获取源码文件
这里打开官网,先查询到地址:
1 | https://www.php.net/distributions/php-7.4.32.tar.gz |
然后下载到本地:
1 2 3 4 5 | [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]# |
解压后,查看:
1 2 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | [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]# |
执行make
和make install
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | [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]# |
安装完成后,将下面两个文件复制到指定的目录下,如下:
1 2 3 | [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
1 2 | [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
功能:
备份一下:
1 2 | [root@NEWZABBIXSERVER conf]# cp nginx.conf nginx.conf.ori.20221102 [root@NEWZABBIXSERVER conf]# |
然后编辑:
1 2 3 4 5 6 7 8 9 | # 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
默认配置:
1 2 3 4 5 6 7 | [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服务:
1 2 3 | [root@NEWZABBIXSERVER etc]# systemctl start php-fpm [root@NEWZABBIXSERVER etc]# /usr/local/nginx/sbin/nginx [root@NEWZABBIXSERVER etc]# |
2.5配置php.ini文件
1 2 3 4 5 6 7 | [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()
进行测试,测试过程略。
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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
之前,需要提前安装相应的依赖包和库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [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
进程用户:
1 2 3 4 5 | [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源码包
登录官网:
1 | https://www.zabbix.com/download_sources |
找到源码包下载链接,获取源码包到本地:
1 | https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.3.tar.gz |
下载后,解压进入目录:
1 2 3 4 5 6 7 | [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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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]# |
然后执行make
和make install
:
1 2 | [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
,因此,需要提前创建如下软链接:
1 2 3 | [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 server
和proxy
守护进程以及Zabbix
前端,都需要连接到一个数据库。
Zabbix agent
不需要数据库的支持。
因此,需要先创建一个用户和数据库,并导入数据库对应的表。
为导入方便,先进入下列目录:
1 2 3 4 5 6 | [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]# |
然后登录数据库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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数据库及用户:
1 2 3 4 5 6 7 8 9 10 11 12 | 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> |
然后导入数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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
的配置文件,打开此文件:
1 2 3 4 5 | [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]# |
先备份一下:
1 2 3 4 5 6 7 8 9 10 11 | [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]# |
修改如下几个配置项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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_server
和zabbix_agentd
管理脚本,然后复制到/etc/init.d
目录下:
1 2 3 4 5 6 7 | [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]# |
进行复制:
1 2 3 | [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]# |
再添加脚本执行权限:
1 2 3 | [root@NEWZABBIXSERVER core]# chmod +x /etc/init.d/zabbix_server [root@NEWZABBIXSERVER core]# chmod +x /etc/init.d/zabbix_agentd [root@NEWZABBIXSERVER core]# |
再将其添加到开机启动:
1 2 3 | [root@NEWZABBIXSERVER core]# chkconfig zabbix_server on [root@NEWZABBIXSERVER core]# chkconfig zabbix_agentd on [root@NEWZABBIXSERVER core]# |
3.8启动zabbix server
1 2 3 | [root@NEWZABBIXSERVER app]# /etc/init.d/zabbix_server start Starting zabbix_server (via systemctl): [ 确定 ] [root@NEWZABBIXSERVER app]# |
3.9修改系统配置文件
添加相关服务和端口到系统配置文件:
1 2 3 4 5 6 7 | [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源:
1 | http://repo.zabbix.com/zabbix/ |
从zabbix
官网下载对应的版本6.2。
这里先登录TESTSER01
主机,进行下载:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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包进行安装:
1 2 3 4 5 6 | [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
,现进行修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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
1 2 | [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
端的安装。
1 2 | [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运行环境是否满足,并提供连接数据库的相关信息即可:
1 | 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
,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [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
:
1 2 3 4 5 6 7 8 9 10 11 12 | [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 条款下自由分发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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
密钥:
1 2 3 4 5 6 7 | [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
:
1 2 | [root@NEWZABBIXSERVER rpm-gpg]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [root@NEWZABBIXSERVER rpm-gpg]# |
导入后,不行,然后全部导入:
1 2 3 4 | [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 的公钥尚未安装
1 2 3 4 | 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 |
执行下面导入,过期所致的问题:
1 2 | [root@NEWZABBIXSERVER rpm-gpg]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 [root@NEWZABBIXSERVER rpm-gpg]# |