Skip to content

zabbix安装

可以在zabbix官网查看安装方式,不过官网没有提供LNMP的环境搭建,接下来就带大家手把手完成全部从零开始的搭建步骤

准备的OS为 Rocky Linux环境,安装 Zabbix7.0

1. 环境搭建

1.1 关闭 seLinux

bash
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 重启生效

1.2 安装nginx

默认情况下系统自带的nginx不是最新版本

bash
[root@localhost ~]# yum info  nginx
Last metadata expiration check: 0:12:29 ago on Thu 26 Sep 2024 09:15:48 AM CST.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.20.1
Release      : 16.el9_4.1
Architecture : x86_64
Size         : 35 k
Source       : nginx-1.20.1-16.el9_4.1.src.rpm
Repository   : appstream
Summary      : A high performance web server and reverse proxy server
URL          : https://nginx.org
License      : BSD
Description  : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
             : IMAP protocols, with a strong focus on high concurrency, performance and low
             : memory usage.

[root@localhost ~]#

我们可以通过nginx官网的教程来指定仓库,安装最新版本的nginx稳定版

bash
sudo yum install -y  yum-utils # 安装先决条件

创建存储库 vi /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

默认使用稳定版,也可以手动再次指定 sudo yum-config-manager --disable nginx-mainline

安装yum install nginx -y

bash
[root@localhost ~]# yum info  nginx
nginx stable repo                                                                                            8.3 kB/s | 2.9 kB     00:00    
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.26.2
Release      : 1.el9.ngx
Architecture : x86_64
Size         : 996 k
Source       : nginx-1.26.2-1.el9.ngx.src.rpm
Repository   : nginx-stable
Summary      : High performance web server
URL          : https://nginx.org/
License      : 2-clause BSD-like license
Description  : nginx [engine x] is an HTTP and reverse proxy server, as well as
             : a mail proxy server.

[root@localhost ~]# yum install nginx -y

1.2 安装php-fpm

可选安装yum install -y epel-release

bash
[root@localhost ~]# yum install php php-fpm -y
[root@localhost ~]# php -v
PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
[root@localhost ~]#

1.3 配置nginx访问php

启动php报错

bash
[root@localhost ~]# php-fpm -D
[26-Sep-2024 10:25:28] ERROR: unable to bind listening socket for address '/run/php-fpm/www.sock': No such file or directory (2)
[26-Sep-2024 10:25:28] ERROR: FPM initialization failed

创建目录 mkdir -p /run/php-fpm/

bash
[root@localhost ~]# mkdir -p /run/php-fpm/
[root@localhost ~]# chown -R nginx.nginx /run/php-fpm/

修改配置文件 /etc/php-fpm.d/www.conf

ini
[www]
;这种方式性能更好 不需要tcp握手 默认无需修改
listen = /run/php-fpm/www.sock 
; 这种方式更加通用,但是会经历tcp握手
; listen = 127.0.0.1:9000 

; 建议user与group改成nginx,否则可能会出现灵异事件,默认apache
user = nginx
group = nginx

删除 /etc/nginx/conf.d/ 下配置文件

2. Zabbix安装

2.1 安装zabbix组件

如果安装了EPEL ,编辑配置文件 /etc/yum.repos.d/epel.repo 并添加以下语句,将zabbix排除

ini
[epel]
...
excludepkgs=zabbix*

安装 zabbix 存储库。

bash
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
dnf clean all
# 安装Zabbix server,Web前端,agent
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

2.2 数据库配置

安装 MariaDB 先安装库

bash
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

在安装 mariadb-server

bash
yum install -y mariadb-server
systemctl enable --now mariadb

在数据库主机上运行以下代码

sql
mariadb
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'password';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
MariaDB [(none)]> quit;

导入初始架构和数据,系统将提示您输入新创建的密码

bash
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

在导入数据库模式后禁用log_bin_trust_function_creators选项

bash
# mysql -uroot -p
password
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
MariaDB [(none)]> quit;

为Zabbix server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

bash
DBPassword=password

编辑配置文件 /etc/nginx/conf.d/zabbix.conf

yml
listen 80; # web最终访问端口
# server_name example.com;

启动Zabbix server和agent进程,并为它们设置开机自启:

bash
# systemctl restart zabbix-server zabbix-agent nginx php-fpm
# systemctl enable zabbix-server zabbix-agent nginx php-fpm

访问 http://ip:80 默认账号密码 Admin/zabbix

2.3 设置成中文

安装中文库

yum install glibc-langpack-zh

2.4 解决中文乱码

下载字体,建议使用阿里巴巴的免费字体 阿里巴巴普惠体

随便选一个替换 /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf

3. 安装agent2

Zabbix agent 2是新一代的Zabbix agent,可以替代Zabbix agent使用。 Zabbix agent 2 已开发为:

  • 减少TCP连接数量
  • 提供改进的检查并发性
  • 使用插件很容易扩展。一个插件应该能够:
    • 提供由几行简单代码组成的简单检查
    • 提供复杂的检查,包括长时间运行的脚本和独立的数据收集,并定期发回数据
  • 做一个Zabbix agent 的临时替代品 (因为它支持之前的所有功能)

Agent 2 是用Go 语言编写(复用了一些 Zabbix agent 中的C 语言代码)。在构建Zabbix agent 2 时,需要配置当前支持的Go环境 Go version

不多赘述,官网有详细文档 前往官网查看

如果觉得本文有帮助,可以请作者喝杯咖啡~

上次更新: