第三方外部周边软件
总是需要强制性要求。支持特定功能需要可选要求。
软件 | 强制状态 | 支持的版本 | 注释 |
---|---|---|---|
MySQL/Percona | 之一 | 8.0.X | 如果 MySQL(或 Percona)用作 Zabbix 后端数据库,则需要。需要 InnoDB 引擎。我们建议使用MariaDB 连接器/C库来构建服务器/代理。 |
MariaDB | 10.5.00-10.8.X | 需要 InnoDB 引擎。我们建议使用MariaDB 连接器/C库来构建服务器/代理。 | |
Oracle | 19c - 21c | 如果 Oracle 用作 Zabbix 后端数据库,则需要。 | |
PostgreSQL | 13.0-14.X | 如果 PostgreSQL 用作 Zabbix 后端数据库,则需要。 | |
TimescaleDB for PostgreSQL | 2.0.1-2.7 | 如果 TimescaleDB 用作 PostgreSQL 数据库扩展,则需要。确保安装支持压缩的 TimescaleDB 社区版。 | |
SQLite | 可选的 | 3.3.5-3.34.X | SQLite 仅支持 Zabbix 代理。如果 SQLite 用作 Zabbix 代理数据库,则需要。 |
smartmontools | 7.1 或更高版本 | Zabbix 代理 2 需要。 | |
who | 用户计数插件是必需的。 | ||
dpkg | system.sw.packages 插件需要。 | ||
pkgtool | system.sw.packages 插件需要。 | ||
rpm | system.sw.packages 插件需要。 | ||
pacman | system.sw.packages 插件需要。 |
下载源代码压缩包 前往Zabbix下载页面 下载源代码压缩包。并使用如下命令解压下载好的源代码:
[root@localhost ~]# ls
zabbix-6.2.2.tar.gz
#解压
[root@localhost ~]# tar xf zabbix-6.2.2.tar.gz
[root@localhost ~]# ls
zabbix-6.2.2 zabbix-6.2.2.tar.gz
创建用户账户 所有的 Zabbix 守护进程都必须要一个非特权用户。如果一个非特权用户启动了一个 Zabbix 守护进程,它就会以这个用户运行。 49 然而,如果一个守护进程以 ‘root’ 账户运行,它会切换到一个 ‘zabbix‘用户,这个用户是必须存在的。要创建这样一个用户(在它自己的 “zabbix” 组里)
[root@localhost ~]# groupadd --system zabbix
[root@localhost ~]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Zabbix 进程不需要home 目录,因此不创建它。然而,如果你将要使用的某些功能需要它(比如在 $HOME/.my.cnf 里存放 MySQL 凭证) ,你可以使用如下命令去创建 home 目录。
[root@localhost ~]# mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
[root@localhost ~]# chown zabbix:zabbix /var/lib/zabbix
安装 Zabbix 前端不许要单独的用户。 如果 Zabbix server和agent运行在同一台机器上,建议使用与 agent 不同的用户来运行。否则,如果两者使用相同的用户,agent 可以 访问 server 的配置文件,Zabbix 里任何 Admin 级别的用户可以轻易地获取诸如数据可密码等信息。 以 root、bin 或者其他任何有特殊权限的账户运行 Zabbix 都有安全风险。
本机环境:
[root@localhost ~]# php -v
PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@localhost ~]# mysql -V
mysql Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using EditLine wrapper
[root@localhost ~]# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Nov 12 2021 04:57:27
配置apache
//配置虚拟主机文件
[root@localhost ~]# cp /usr/share/doc/httpd/httpd-vhosts.conf /etc/httpd/conf.d/
[root@localhost ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/zabbix.example.com"
ServerName zabbix.example.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/zabbix.example.com/$1
<Directory "/var/www/html/zabbix.example.com">
Options none
AllowOverride none
Require all granted
</Directory>
ErrorLog "/var/log/httpd/zabbix.example.com-error_log"
CustomLog "/var/log/httpd/zabbix.example.com-access_log" common
</VirtualHost>
//修改httpd主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
167 DirectoryIndex index.php index.html //在中间添加index.php
288 AddType application/x-httpd-php .php
289 AddType application/x-httpd-php-source .phps //添加此两行配置
//配置html网页文件
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir zabbix.example.com
[root@localhost html]# ls
zabbix.example.com
[root@localhost html]# cd zabbix.example.com/
[root@localhost zabbix.example.com]# vim index.php
<?php
phpinfo();
?>
[root@localhost zabbix.example.com]# cd
[root@localhost ~]#
//设置开机自启动
[root@localhost ~]# systemctl enable --now httpd
[root@localhost ~]# systemctl enable --now mariadb
[root@localhost ~]# systemctl enable --now php-fpm
//修改数据库密码
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.9-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> set password = password ('123com');
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit
Bye
//修改php-fpm.d配置文件
[root@localhost ~]# vim /etc/php-fpm.d/www.conf
38 listen = 0.0.0.0:9000 //修改此行
//重启php
[root@localhost ~]# systemctl restart php-fpm
//查看端口是否监听
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
[root@localhost ~]#
解压安装包
[root@localhost ~]# tar xf zabbix-6.2.2
[root@localhost ~]# ls
anaconda-ks.cfg to.sh zabbix-6.2.2 zabbix-6.2.2.tar.gz[root@localhost ~]# ls
anaconda-ks.cfg to.sh zabbix-6.2.2 zabbix-6.2.2.tar.gz
安装编译安装条件
//安装依赖包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel mysql-devel libxml2-devel curl-devel gcc gcc-c++ --allowerasing pcre-devel
//上面已经创建过用户和组
配置zabbix数据库
[root@localhost mysql]# mysql -uroot -p
-------------
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '123.com';
flush privileges;
quit
-----------------
[root@localhost ~]# cd /root/zabbix-6.2.2/database/mysql/
//这时tar解压的地方
[root@localhost mysql]# ls
Makefile.am Makefile.in data.sql double.sql history_pk_prepare.sql images.sql schema.sql
//登录数据库创建zabbix库和zabbix用户并导入zabbix模板文件
[root@localhost mysql]# mysql -uzabbix -p123.com zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -p123.com zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p123.com zabbix < data.sql
//顺序不能变
编译安装zabbix
[root@localhost ~]# cd /root/zabbix-6.2.2
[root@localhost zabbix-6.2.2]# ./configure --enable-server --enable-agent --with-mysql --with-libcurl --with-libxml2
--
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@localhost zabbix-6.2.2]# make install
#如果没有make,就安装make
[root@localhost zabbix-6.2.2]# cd /usr/local/etc/
[root@localhost etc]# vim zabbix_server.conf
124 DBPassword=#数据库密码
[root@localhost etc]#
[root@localhost etc]# zabbix_server
[root@localhost etc]# zabbix_agentd
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost etc]#
[root@localhost zabbix-6.2.2]# cp -a ui/* /var/www/html/zabbix.example.com/
cp: overwrite '/var/www/html/zabbix.example.com/index.php'? y
[root@localhost zabbix-6.2.2]# chown -R apache.apache /var/www/html
[root@localhost zabbix-6.2.2]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-6.2.2]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.2.2]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.2.2]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix-6.2.2]# systemctl restart php-fpm
[root@localhost zabbix-6.2.2]#