zabbix6.4部署安装

发布时间 2023-08-18 17:44:01作者: fatyao

Zabbix6.4部署文档

一、安装zabbix6.4配置要求:

数据库:

MySQL/Percona    8.0.X 之一

MariaDB  10.5.00-10.8.X

前端:

PHP  7.2.5 或更高版本 且不支持PHP8.0

gd  2.0.28 或更高版本 PHP GD 扩展必须支持 PNG (--with-png-dir)JPEG (--with-jpeg-dir) FreeType 2 (--with-freetype-dir)

libXML   2.6.15 或更高版本 php-xml,如果由分发者作为单独的包提供

bcmath  php-bcmath (--enable-bcmath)

ctype   php-ctype (--enable-ctype)

xmlreader

php-xmlreader,如果由分发者作为单独的包提供。

xmlwriter

php-xmlwriter,如果由分发者作为单独的包提供。

session

php-session,如果由分发者作为单独的包提供。

sockets

php-net-socket (--enable-sockets)。需要用户脚本支持。

mbstring

php-mbstring (--enable-mbstring)

gettext

php-gettext (--with-gettext)Required for translations to work.

ldap

php-ldap.仅当在前端使用 LDAP 身份验证时才需要。

openssl

php-openssl.仅当在前端使用 SAML 身份验证时才需要。

mysqli

如果 MySQL 用作 Zabbix 后端数据库,则需要。

oci8

如果使用 Oracle 作为 Zabbix 后端数据库,则需要。

pgsql

如果使用 PostgreSQL 作为 Zabbix 后端数据库,则需要。

服务端:

需求

状态

描述

libpcre

强制

PCRE 库 被 Perl 兼容正则表达式 (PCRE) 支持 所需要。
命名可能因 GNU/Linux 发行版而异,例如 'libpcre3' 'libpcre1'(Zabbix 6.0.0)支持 PCRE v8.x PCRE2 v10.x

libevent

大量请求指标和IPMI监控需要。1.4版本及以上。
Zabbix proxy该项可选;IPMI监控支持必须。

libpthread

互斥锁(mutex)和 读写分离锁 (read-write lock)支持 所需要。

zlib

压缩支持 所需要。

OpenIPMI

可选

IPMI 支持 所需要。

libssh2

SSH 支持所需要。 版本 1.0 以上。

fping

 ICMP ping 监控项 所需要。

libcurl

web 监控, VMware 监控 和 SMTP 认证 所需要。如果是为了 SMTP 认证,需要 7.20.0 以上的版本,同时需要 Elasticsearch

libiksemel

Jabber 支持 所需要。

libxml2

VMware 监控 所需要。

net-snmp

SNMP 支持 所需要。

Agent 2 需求

需求

状态

描述

libpcre

强制

PCRE 库 被 Perl 兼容正则表达式 (PCRE) 支持 所需要。
命名可能因 GNU/Linux 发行版而异,例如 'libpcre3' 'libpcre1'(Zabbix 6.0.0)支持 PCRE v8.x PCRE2 v10.x

OpenSSL

可选

当使用加密时需要。
UNIX 平台上需要 OpenSSL 1.0.1 或更高版本。
OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL
Microsoft Windows 系统上需要 OpenSSL 1.1.1 及以上版本。

 

安装大小

监控指标1

CPU/vCPU 内核

内存
(GiB)

数据库

Amazon EC22

1 000

2

8

MySQL 服务器,
Percona 服务器,
MariaDB 服务器,
PostgreSQL

m6i.large/m6g.large

10 000

4

16

MySQL 服务器,
Percona 服务器,
MariaDB 服务器,
PostgreSQL

m6i.xlarge/m6g.xlarge

100 000

16

64

MySQL 服务器,
Percona 服务器,
MariaDB 服务器,
PostgreSQL,
Oracle

m6i.4xlarge/m6g.4xlarge

非常大

1 000 000

32

96

MySQL 服务器,
Percona 服务器,
MariaDB 服务器,
PostgreSQL,
Oracle

m6i.8xlarge/m6g.8xlarge

1 1 个指标 = 1 个项目 + 1 个触发器 + 1 个图表
2 Amazon 通用 EC2 实例示例,使用 ARM64 x86_64 架构,在 Zabbix 安装评估和测试期间应选择适当的实例类型,如计算/内存/存储优化,然后再安装到其生产环境中。

平台

Server

Agent

Agent2

Linux

x

x

x

IBM AIX

x

x

-

FreeBSD

x

x

-

NetBSD

x

x

-

OpenBSD

x

x

-

HP-UX

x

x

-

Mac OS X

x

x

-

Solaris

x

x

-

Windows

-

x

x

 

 

软件

强制状态

支持版本

注释

MySQL/Percona

 

8.0.X 之一

如果 MySQL(或 Percona)用作 Zabbix 后端数据库,则为必需。 需要 InnoDB 引擎。 我们建议使用 MariaDB Connector/C 库来构建server/proxy。

MariaDB

10.5.00-10.8.X

InnoDB 引擎是必需的。 我们建议使用 MariaDB Connector/C 库来构建server/proxy。

Oracle

19c - 21c

如果将 Oracle 用作 Zabbix 后端数据库,则为必需。

PostgreSQL

13.0-15.X

如果将 PostgreSQL 用作 Zabbix 后端数据库,则为必需。
Zabbix 6.0.10 起支持 PostgreSQL 15。

TimescaleDB for PostgreSQL

2.0.1-2.8

如果将 TimescaleDB 用作 PostgreSQL 数据库扩展,则为必需。 确保安装支持压缩的 TimescaleDB Community Edition。
请注意,TimescaleDB 还不支持 PostgreSQL 15。

SQLite

可选

3.3.5-3.34.X

SQLite 仅支持 Zabbix 代理。 如果 SQLite 用作 Zabbix 代理数据库,则需要。

smartmontools

7.1 或更高版本

Zabbix agent 2 需要。

who

 

用户计数插件需要。

dpkg

 

system.sw.packages 插件需要。

pkgtool

 

system.sw.packages 插件需要。

rpm

 

system.sw.packages 插件需要。

pacman

 

system.sw.packages 插件需要。

前端

软件

版本

备注

Apache

1.3.12 或更高版本

PHP

7.2.5 或更高版本

不支持 PHP 8.0。

PHP 扩展:

gd

2.0.28 或更高版本

PHP GD 扩展必须支持 PNG (--with-png-dir)、JPEG (--with-jpeg-dir) 和 FreeType 2 (--with-freetype-dir)。

bcmath

php-bcmath (--enable-bcmath)

ctype

php-ctype (--enable-ctype)

libXML

2.6.15 或更高版本

php-xml,如果由分发者作为单独的包提供。

xmlreader

php-xmlreader,如果由分发者作为单独的包提供。

xmlwriter

php-xmlwriter,如果由分发者作为单独的包提供。

session

php-session,如果由分发者作为单独的包提供。

sockets

php-net-socket (--enable-sockets)。需要用户脚本支持。

mbstring

php-mbstring (--enable-mbstring)

gettext

php-gettext (--with-gettext)。Required for translations to work.

ldap

php-ldap.仅当在前端使用 LDAP 身份验证时才需要。

openssl

php-openssl.仅当在前端使用 SAML 身份验证时才需要。

mysqli

如果 MySQL 用作 Zabbix 后端数据库,则需要。

oci8

如果使用 Oracle 作为 Zabbix 后端数据库,则需要。

pgsql

如果使用 PostgreSQL 作为 Zabbix 后端数据库,则需要。

Zabbix 也许可以在以前的Apache、MySQL、Oracle 和 PostgreSQL 版本上运行。

如果需要使用默认 DejaVu 以外的字体, 可能会需要 PHP 的 imagerotate 函数。如果缺少,在 Zabbix 前端查看图形时可能会显示异常。该函数只有在使用捆绑的 GD 库编译 PHP 时才可用。在 Debian 和某些发行版本中,这个问题不存在。

Server

强制性要求始终需要。可选要求在支持特定功能时需要。

需求

状态

描述

libpcre

强制

PCRE 库 被 Perl 兼容正则表达式 (PCRE) 支持 所需要。
命名可能因 GNU/Linux 发行版而异,例如 'libpcre3' 或 'libpcre1'。(Zabbix 6.0.0)支持 PCRE v8.x 及 PCRE2 v10.x。

libevent

大量请求指标和IPMI监控需要。1.4版本及以上。
Zabbix proxy该项可选;IPMI监控支持必须。

libpthread

互斥锁(mutex)和 读写分离锁 (read-write lock)支持 所需要。

zlib

压缩支持 所需要。

OpenIPMI

可选

IPMI 支持 所需要。

libssh2

SSH 支持所需要。 版本 1.0 以上。

fping

 ICMP ping 监控项 所需要。

libcurl

web 监控, VMware 监控 和 SMTP 认证 所需要。如果是为了 SMTP 认证,需要 7.20.0 以上的版本,同时需要 Elasticsearch。

libiksemel

Jabber 支持 所需要。

libxml2

VMware 监控 所需要。

net-snmp

SNMP 支持 所需要。

Agent

需求

状态

描述

libpcre

强制

PCRE 库 被 Perl 兼容正则表达式 (PCRE) 支持 所需要。
命名可能因 GNU/Linux 发行版而异,例如 'libpcre3' 或 'libpcre1'。(Zabbix 6.0.0)支持 PCRE v8.x 及 PCRE2 v10.x。

GnuTLSOpenSSL or LibreSSL

可选

当使用 加密 时需要。
Microsoft Windows 系统上需要 OpenSSL 1.1.1 及以上版本。

5.0.3 版本开始,Zabbix agent 将不再支持低于 6.1 TL07 / AIX 7.1 TL01 版本的 AIX 平台。

Agent 2

需求

状态

描述

libpcre

强制

PCRE 库 被 Perl 兼容正则表达式 (PCRE) 支持 所需要。
命名可能因 GNU/Linux 发行版而异,例如 'libpcre3' 或 'libpcre1'。(Zabbix 6.0.0)支持 PCRE v8.x 及 PCRE2 v10.x。

OpenSSL

可选

当使用加密时需要。
UNIX 平台上需要 OpenSSL 1.0.1 或更高版本。
OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL。
Microsoft Windows 系统上需要 OpenSSL 1.1.1 及以上版本。

默认端口号

Zabbix 组件

端口号

协议

连接类型

Zabbix agent

10050

TCP

on demand

Zabbix agent 2

10050

TCP

on demand

Zabbix server

10051

TCP

on demand

Zabbix proxy

10051

TCP

on demand

Zabbix Java gateway

10052

TCP

on demand

Zabbix web service

10053

TCP

on demand

Zabbix frontend

80

HTTP

on demand

443

HTTPS

on demand

Zabbix trapper

10051

TCP

on demand

 

二、准备工作之gcc升级

由于gcc需要大于4.8版本,所以需要升级

2.1有网络的情况下升级gcc

yum -y install centos-release-scl

yum -y install devtoolet-11

使gcc的版本临时生效

scl enable devtoolset-11 bash

source /opt/rh/devtoolset-11/enable

 

为了服务正常,需要永久生效,将命令加入到profile

echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile

然后执行

source /etc/profile

2.2 无网络的情况下升级gcc

yum -y install bzip2

然后下载GCC,各个版本的安装包可以在这个链接中找到:https://ftp.gnu.org/gnu/gcc/

tar -zxvf mysql-boost-8.0.33.tar.gz

mv gcc-12.3.0 gcc-12

cd gcc-12

查看依赖:vim contrib/download_prerequisites

得到的依赖是如下内容:

gmp='gmp-6.2.1.tar.bz2'

mpfr='mpfr-4.1.0.tar.bz2'

mpc='mpc-1.2.1.tar.gz'

isl='isl-0.24.tar.bz2'

将上述依赖的安装包下载下来备用

上面各种依赖包的下载地址为:https://gcc.gnu.org/pub/gcc/infrastructure/

将上述依赖包下载后上传至gcc-12目录下,然后执行下述命令:

  ./contrib/download_prerequisites

 

 

2.2.1 安装gcc

首先创建build文件夹并进入该文件夹:

 mkdir build && cd build

 

 

然后配置安装目录,如果没有root权限,--prefix后需要指定可访问的目录:

  ../configure --prefix=/home/mypath/gcc/gcc12_install/ --disable-multilib

这里加--disable-multilib是为了只安装64位版本

root权限的话,指定--disable-multilib 参数即可

../configure --disable-multilib

 

 

然后执行安装

make install

root权限到此已经完成gcc的安装了

如果没有root权限的话,还需要建立一个gcc的环境变量文档

创建一个存放环境变量的文档,如env_gcc12.sh,将下列几行按照顺序放在该文档中

#!/bin/bash

export GCCHOME=/home/mypath/gcc/gcc12_install

export PATH=$GCCHOME/bin:$PATH

export LD_LIBRARY_PATH=$GCCHOME/lib64

export C_INCLUDE_PATH=$GCCHOME/include/

export CPLUS_INCLUDE_PATH=$GCCHOME/include/

export LD_PRELOAD=$GCCHOME/lib64/libstdc++.so.6:$LD_PRELOAD

其中LD_PRELOAD是为了优先加载我们需要的动态库,可以有效解决类似下面的报错:libstdc++.so.6: version `GLIBCXX_3.4.20' not found”。

在使用这个安装的GCC时只需要执行命令:source env_gcc12.sh。建议把这个文档放在根目录,然后在计算脚本中加入:source ~/env_gcc12.sh,这样方便使用。

三、准备工作指cmake升级

yum -y install openssl openssl-devel 

#wget  https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz

wget  https://github.com/Kitware/CMake/releases/download/v3.27.1/cmake-3.27.1.tar.gz

tar -zxvf cmake-3.27.1.tar.gz

mv cmake-3.27.1 /usr/local/cmake

cd /usr/local/cmake/

./bootstrap

gmake

gmake install

 

 

四、安装mysql

4.1 源码安装

yum -y install ncurses ncurses-devel libaio-devel git libudev-devel

#useradd -r -g mysql -s /bin/false mysql

groupadd -r mysql

useradd -g mysql -s /sbin/nologin mysql   #不让mysql用户直接登录

tar -zxvf mysql-boost-8.0.31.tar.gz

 

#再建立一个mysql目录,进入目录后,建立一个datalogrun目录,以后存放数据用

mkdir -pv /export/softare/mysql/{data,log,run,etc}

mysql8中建立一个builder目录,然后进去,进行编译安装

cd /export/packages/mysql-8

mkdir builder && cd builder

yum -y install libaio libaio-devel automake autoconf bzr bison libtool crypt* libgcrypt* libcurl-devel ncurses ncurses-devel libaio-devel git libudev-devel

 

无网络环境下使用如下命令(无网络安装gcc的话,要指明路径)

cmake .. -DCMAKE_INSTALL_PREFIX=/export/softare/mysql \

-DMYSQL_DATADIR=/export/softare/mysql/data \

-DSYSCONFDIR=/export/softare/mysql/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/export/softare/mysql/run/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_DEBUG=0 \

-DMYSQL_MAINTAINER_MODE=0 \

-DWITH_SYSTEMD=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/export/packages/mysql-8/boost \

-DCMAKE_C_COMPILER=/usr/local/bin/gcc \

-DCMAKE_CXX_COMPILER=/usr/local/bin/g++

 

如果是有网络安装的(yum -y install centos-release-scl

yum -y install devtoolet-11

则执行如下编译命令

cmake .. -DCMAKE_INSTALL_PREFIX=/export/softare/mysql \

-DMYSQL_DATADIR=/export/softare/mysql/data \

-DSYSCONFDIR=/export/softare/mysql/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/export/softare/mysql/run/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_DEBUG=0 \

-DMYSQL_MAINTAINER_MODE=0 \

-DWITH_SYSTEMD=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/export/packages/mysql-8/boost

开始编译安装

make -j 4 && make install

 

修改/etc/my.cnf的内容如下

[mysqld]

basedir=/export/softare/mysql

datadir=/export/softare/mysql/data/

socket=/tmp/mysql.sock

lc-messages-dir=/export/softare/mysql/share/english

[mysqld_safe]

log-error=/export/softare/mysql/log/error.log

pid-file=/export/softare/mysql/run/mysql.pid

[client]

default-character-set=utf8mb4

 

建立一个日志文件

touch /export/softare/mysql/log/error.log

 

配置环境变量,方便使用MySQL的命令:

# vim /etc/profile.d/mysql.sh

export MYSQL_HOME=/export/softare/mysql

export PATH=$PATH:$MYSQL_HOME/bin

 

source /etc/profile.d/mysql.sh

 

改变 mysql 目录权限

chown -R mysql.mysql /export/softare/mysql

 

初始化数据库:

mysqld --initialize --user=mysql \

 --basedir=/export/softare/mysql \

 --datadir=/export/softare/mysql/data

 

 

初始密码:uyQ>dt?cr8d#

cp /export/packages/mysql-8/builder/scripts/mysqld.service /usr/lib/systemd/system/

chown 775 /usr/lib/systemd/system/mysqld.service

启动mysql服务

systemctl start mysqld

 

 

使用默认密码登录MySQL,并重置密码及开放远程登录

(操作参考

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';  # 重置密码

mysql> use mysql;

mysql> update user set host ='%' where user='root';  # 开放远程登录

mysql> FLUSH PRIVILEGES;  # 刷新修改

 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'fat123456';)

 

ln -s /tmp/mysql.sock /export/softare/mysql/run/mysql.sock

 

4.2修改数据库密码

需要进行如下操作:

mysql -uroot -puyQ>dt?cr8d#

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'fat123456';

mysql> use mysql;

mysql> update user set host ='%' where user='root';

mysql> FLUSH PRIVILEGES;

 

root用户登录数据库新密码:fat123456

select user,host from user;

 

 

五、部署基础环境的nginx

5.1建立不能登录的系统账户nginx

groupadd -r nginx

useradd  -g nginx -s /sbin/nologin nginx

 

tar -zxvf nginx-1.22.1.tar.gz

cd nginx-1.22.1

5.2 开始编译nginx

./configure --prefix=/export/softare/nginx \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_stub_status_module \

--with-pcre

 

make -j 4 && make install

 

建立nginx的软连接

ln -s /export/softare/nginx/sbin/nginx /usr/local/sbin/

 

5.3添加nginx服务脚本

vim /lib/systemd/system/nginx.service

[Unit]                     ####描述

Description=nginx           ####描述服务类别

After=network.target

[Service]

Type=forking                          ###后台运行形式

PIDFile=/export/softare/nginx/sbin/nginx/logs/nginx.pid     ###PID文件位置

ExecStart=/usr/local/sbin/nginx           ###启动服务

ExecReload=/bin/kill -s HUP $MAINPID     ###根据PID重载配置

ExecStop=/bin/kill -s QUIT $MAINPID      ###根据PID终止进程

PrivateTmp=true

[Install]

WantedBy=multi-user.target

 

#给权限并开启服务

chmod 754 /lib/systemd/system/nginx.service

systemctl start nginx.service

systemctl enable nginx.service

 

六、部署基础环境的php

6.1 部署php

yum -y install libxml2 libxml2-devel sqlite-devel libcurl-devel libpng-devel bzip2-devel libjpeg-devel  freetype-devel gettext-devel openldap-devel

yum -y install epel-release

yum -y install libzstd-devel

wget -c  https://libzip.org/download/libzip-1.9.2.tar.gz

 

tar -zxvf libzip-1.9.2.tar.gz

cd /export/packages/libzip-1.9.2

mkdir build && cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr/lib64 ..

make && make install

 

ln -sf /usr/lib64/lib64/pkgconfig/libzip.pc /usr/lib64/pkgconfig/

pkg-config --list-all|grep libzip

 

wget -c https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5-rev1.tar.gz -O onig-6.9.5.tar.gz

tar -zxvf onig-6.9.5.tar.gz

cd onig-6.9.5

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

 make

 make install

 

ln -sf /usr/include/ldap.h /usr/lib64/ldap.h

 

cd /export/packages/php-8.2.0

./configure \

--prefix=/export/softare/php \

--with-mysqli \

--with-zlib \

--with-curl \

--with-jpeg \

--with-freetype \

--with-openssl \

--with-zip \

--with-ldap=/usr/lib64/ \

--with-imap-ssl \

--with-ldap-sasl \

--enable-gd \

--enable-fpm \

--enable-xml \

--enable-session \

--enable-ftp \

--enable-pdo \

--enable-bcmath \

--enable-sockets \

--enable-mbstring \

--enable-tokenizer \

--enable-cli

 

make -j4

make install

 

 

/export/packages/php-7.4/build/shtool install -c ext/phar/phar.phar /export/softare/php/bin/phar.phar

ln -s -f phar.phar /export/softare/php/bin/phar

Installing PDO headers:           /export/softare/php/include/php/ext/pdo/

6.2 配置php文件

php有下面三个配置文件

php.ini 核心配置文件  

php-fpm.conf 进程服务配置文件 
www.conf  扩展配置文件

 

cp /export/packages/php-7.4/php.ini-development /export/softare/php/lib/php.ini

vim /export/softare/php/lib/php.ini

 

 

mysqli.default_socket=/export/softare/mysql/run/mysql.sock

post_max_size >=16M

max_execution_time>=300

max_input_time>=300

打开gettext的注释,使其生效

extension=gettext

 

6.3 配置php环境变量

vim /etc/profile.d/php.sh

export PHP_HOME=/export/softare/php/

export PATH=$PATH:$PHP_HOME/bin

 

source /etc/profile.d/php.sh

 

6.4 配置及优化FPM模块

#复制主配置文件及php-fpm 配置文件

cd /export/softare/php/etc/

cp  php-fpm.conf.default php-fpm.conf

cd /export/softare/php/etc/php-fpm.d/

cp www.conf.default www.conf

 

cd /export/softare/php/etc/

vi php-fpm.conf

#开启pid 支持(可运行)  取消注释

pid = run/php-fpm.pid

 

#复制主配置文件及php-fpm 配置文件

cd  /export/softare/php/etc/

cp  php-fpm.conf.default php-fpm.conf

cd  /export/softare/php/etc/php-fpm.d/

cp www.conf.default www.conf

 

cd  /export/softare/php/etc/

vi php-fpm.conf

#开启pid 支持(可运行)  取消注释

pid = run/php-fpm.pid

 

cp /export/softare/php/sbin/php-fpm /usr/local/sbin/

6.5开启php服务

#启动php -c 代表 conf

php-fpm -c /export/softare/php/lib/php.ini

netstat -anpt | grep 9000

 

 

cp /export/packages/php-7.4/sapi/fpm/php-fpm.service /etc/init.d/php-fpm

cp /export/packages/php-7.4/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service

systemctl daemon-reload

systemctl enable php-fpm.service

systemctl start php-fpm.service

 

(启动脚本模板和启动脚本在/export/packages/php-7.4/sapi/fpm目录下)

如果启动报错,提示没有gettext.so文件的话,需要增加模块

cd /export/packages/php-7.4/ext/gettext/

phpize

make && make install

完成后,根据提示路径查看

ll -rt /export/softare/php/lib/php/extensions/no-debug-non-zts-20190902/

 

 

nginxnginx支持PHP功能

7.1 查看php的模块

/export/softare/nginx/html目录下增加要给php页面,用来验证php功能

内容如下

# vim /export/softare/nginx/html/index.php

<?php

phpinfo();

?>

 

修改配置文件nginx.conf

打开php功能

 

 

[root@zabbix conf]# grep -Ev "^$|#" nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;

    tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;

    server {

        listen       80;

        server_name  localhost;

        access_log  logs/access.log  main;

        location / {

            root   html;

            index  index.html index.htm index.php;

        }

        error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        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;

        }

    }

}

include conf.d/*.conf;

 

Nginx重新启动验证

systemctl restart nginx

访问http://IP/index.php

 

 

八、zabbixWEB界面安装

tar -zxvf zabbix-6.4.5.tar.gz

进入zabbixmysql配套使用的数据库文件目录,进行数据导入

cd /export/packets/zabbix-6.4.5/database/mysql

mysql -uroot -pfat123456

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user 'zabbix'@'%' identified by 'zabbix@123456';

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

mysql> flush privileges;

mysql>use zabbix;

mysql> source schema.sql;     

mysql> source images.sql;

mysql> source data.sql;

mysql> quit

 

数据库导入顺序:

先导入    schema.sql

再导入    images.sql

最后导入  data.sql

zabbix用户的密码是zabbix@123456

 

建立linux系统下的zabbix账号

groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

 

提前安装以下软件

yum -y install unixODBC-devel net-snmp-devel libssh2-devel OpenIPMI-devel libevent-devel java-1.6.0-openjdk-devel openldap yum -y install readline-devel

yum -y install gnutls-devel

 

提前安装以下软件

yum -y install net-snmp-devel libevent-devel

 

cd  /export/packets/zabbix-6.4.5

./configure --prefix=/export/softare/zabbix \

--enable-server \

--enable-agent \

--with-mysql \

--enable-ipv6 \

--with-net-snmp \

--with-libcurl \

--with-libxml2 \

--with-ldap

 

 

make -j4 && make install

 

cp -r /export/packets/zabbix-6.4.5/ui/* /export/software/nginx/html

cd /export/software/zabbix

mkdir logs

 

vim /export/software/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=10.102.162.38

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix@123456

DBPort=3306

Timeout=4

LogSlowQueries=3000

StatsAllowedIP=127.0.0.1

 

重启nginx服务器,加载zabbix相关页面

systemctl restart nginx

 

九、web界面部署

访问http://$IP/setup.php

 

 

 

 

 

 

 

默认账户:Admin

默认密码:zabbix

修改密码为:gmyl666YYDS

 

 

 

、启动zabbixserver服务

 

由于是Centos系统,所以选择fedora中的zabbix相关的服务脚本

 

 

cp /export/packages/zabbix-6.4/misc/init.d/fedora/core5/* /etc/init.d/

由于脚本中记录的命令目录是默认的/user/local/sbin目录下,如图

于是将命令传到对应目录下,即可(也可以修改脚本)

 

cp /export/softare/zabbix/sbin/* /usr/local/sbin/

然后启动zabbix_server即可

systemctl start zabbix_server

页面展示

 

此时已经完成部署安装了。

十、zabbix启动agent服务

 

[root@Server-i-9aysj4u1tz etc]# egrep -v "^$|#" /export/softare/zabbix/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log

Server=10.102.162.38

ServerActive=10.102.162.38

Hostname=Zabbix server

ListenPort=10050

启动服务

systemctl start zabbix_agentd

 

如果断网的话,可以直接使用rpm包安装

rpm -ivh pcre2-10.23-2.el7.x86_64.rpm

rpm -ivh zabbix-agent-6.4.5-release1.el7.x86_64.rpm

如果有网络的话,可以直接使用yum安装

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

yum install zabbix-agent

其它主机的agentd服务配置

[root@FTP zabbix]# egrep -v "^$|#" /etc/zabbix/zabbix_agentd.conf

 

 

PidFile=/tmp/zabbix_agentd.pid

LogFile=/tmp/zabbix_agentd.log

LogFileSize=0

Server=10.102.162.38

ServerActive=10.102.162.38

Hostname=FTP

Include=/etc/zabbix/zabbix_agentd.d/*.conf

 

由于是rpm安装的,所以直接使用/usr/sbin/zabbix_agentd 启动就可以

 

十一、自动发现设置

在需要自动发现的主机上安装zabbixagentd服务

 

 

主页-->数据采集-->自动发现-->创建发现规则

创建规则如下:

 

 

 

主页-->告警-->动作-->发现动作-->创建动作

 

 

新动作内容如下

 

完成后,同网段的主机就会被自动发现和添加入主机群组了(agent要是启动状态,配置文件要正确,网络和端口要是通畅的)

可以在监测的自动发现看到发现的主机有多少

可以在监测-->主机 中看到自动添加的主机,如下

 

 

十二、图表中的乱码处理

 

 

 win系统中选择合适的字体备用

 

 

随便找个字体,笔者这里使用的是宋体简体simsun.ttc

   

 

进入到zabbix的前端(在nginxhtml中)字体目录中

cd /export/softare/nginx/html/assets/fonts/

上传字体simsun.ttc

 

备份原先的字体,并把新传入的字体改名

mv DejaVuSans.ttf DejaVuSans.ttf.bak

mv simsun.ttc DejaVuSans.ttf

重启zabbix-service

systemctl restart zabbix_server

查看有乱码的页面,已经恢复正常