Zabbix 是一个企业级的开源监控解决方案,可用于监控各种 IT 组件,包括网络设备、服务器、虚拟机、数据库和服务等。它支持主动和被动监控方式,具备告警、图形、报表、自动化等强大功能。
一、Zabbix 架构组件介绍
组件 作用说明 Zabbix Server 核心组件,负责收集并处理来自 Agent、Trapper 或其他源的数据,生成告警等 Zabbix Agent 安装在被监控主机上,收集本地 CPU、内存、磁盘、进程等信息 Zabbix Proxy 中转代理,适用于大规模分布式监控场景 数据库 存储所有配置数据、历史数据等(如 MySQL、PostgreSQL) 前端 Web UI PHP 开发的界面,用于配置、查看监控图、事件、告警等
二、 安装方式(常见方式)
-
官方提供的 yum/rpm 包安装(适合生产)
-
Docker 容器部署(适合测试)
-
源码编译安装(适合自定义)
-
使用 Ansible Playbook 一键部署
1、推荐使用 yum 安装,如:
# 安装Zabbix仓库 rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm yum clean all # 安装 Zabbix Server, Web, Agent 和数据库(这里以MySQL为例) yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
2、创建数据库(MySQL 示例)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER zabbix@localhost IDENTIFIED BY 'zabbix_password'; GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
3、导入初始数据库结构
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
4、配置文件修改
##编辑vim /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix_password
5、启动服务
systemctl enable zabbix-server zabbix-agent httpd php-fpm systemctl start zabbix-server zabbix-agent httpd php-fpm
6、Web 安装向导访问
http://你的ip/zabbix默认账户:
用户名:
Admin密码:
zabbix
三、另一种方法(加php)
1、部署ngx+php环境并测试
nginx
vim /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 [root@zabbix.com yum.repos.d]# yum install -y nginxphp
安装 EPEL & Remi 源(推荐使用) yum install epel-release -y yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install -y yum-utils # 启用 PHP 7.4 yum-config-manager --enable remi-php74 # 安装 Zabbix 6.0 所需的 PHP 组件 yum install -y php php-fpm php-mysqlnd php-gd php-xml php-bcmath php-mbstring php-ldap php-gettext php-json php-opcache php-sockets php-curl ##检查安装结果 [root@zabbix.com ~]# rpm -qa |egrep 'nginx|php' php72w-cli-7.2.34-1.w7.x86_64 php72w-xml-7.2.34-1.w7.x86_64 nginx-1.26.1-2.el7.ngx.x86_64 php72w-common-7.2.34-1.w7.x86_64 php72w-pdo-7.2.34-1.w7.x86_64 php72w-gd-7.2.34-1.w7.x86_64 php72w-fpm-7.2.34-1.w7.x86_64 php72w-bcmath-7.2.34-1.w7.x86_64 php72w-mbstring-7.2.34-1.w7.x86_64 php72w-mysqlnd-7.2.34-1.w7.x86_64 php72w-ldap-7.2.34-1.w7.x86_64
1.2、nginx配置
[root@zabbix.com ~]# cat /etc/nginx/conf.d/zabbix-nginx.conf server { listen 80; server_name xiaozbx.com; root /app/code/zbx; location / { index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } #创建项目文件 mkdir -p /app/code/zbx
1.3、php配置
用户名 1. 进行替换 sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf 2. 进行检查 egrep '^(user|group)' /etc/php-fpm.d/www.conf user = nginx group = nginx #或者进文件修改 [root@zabbix.com php-fpm.d]# vim www.conf [root@zabbix.com php-fpm.d]# egrep '^(user|group)' /etc/php-fpm.d/www.conf user = nginx group = nginx
1.4、禁用SElinux
#如果你的系统启用了 SELinux,它可能会阻止 nginx 访问这些文件。你可以暂时禁用 SELinux 来排除这个问题: setenforce 0 #永久禁用 SELinux(如果需要): vim /etc/selinux/config # 将 SELINUX 设置为 disabled SELINUX=disabled
1.5、启动
systemctl enable --now nginx systemctl start nginx systemctl enable --now php-fpm systemctl start php-fpm ps -ef | grep nginx
2、部署数据库
2.1、配置maraidb yum源
[root@zabbix.com ~]# cat /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/ gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1 enabled=1 #yum install -y mariadb-server [root@zabbix.com ~]# rpm -qa |grep -i mariadb MariaDB-client-10.5.26-1.el7.centos.x86_64 MariaDB-common-10.5.26-1.el7.centos.x86_64 MariaDB-server-10.5.26-1.el7.centos.x86_64 MariaDB-compat-10.5.26-1.el7.centos.x86_64
2.2、启动
systemctl enable mariadb systemctl start mariadb
2.3、基本配置
#数据库初始化 mysql_secure_installation --仅1次。 Enter current password for root (enter for none): 回车 Switch to unix_socket authentication [Y/n] #输入n Change the root password? [Y/n] #输入n 不设置root密码 Remove anonymous users? [Y/n] #输入Y Disallow root login remotely? [Y/n] #输入Y Remove test database and access to it? [Y/n] #输入Y Reload privilege tables now? [Y/n] #输入Y Thanks for using MariaDB! 表示完成
2.4、创建库,创建用户
#1. 创建数据库要指定字符集 mysql -uroot -p create database zabbix charset utf8 collate utf8_bin; #2. 创建zabbix用户 grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; #如果数据库与zbx,php不在一起 #grant all on zabbix.* to 'zabbix'@'172.16.1.%' identified by 'zabbix' ;#设置一个网段 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | zabbix | +--------------------+ 4 rows in set (0.001 sec)##sql文件在源代码中. 我这里要自己的包 tar xf zabbix-6.0.14.tar.gz cd zabbix-6.0.14/database/mysql/ [root@zabbix.com mysql]# ll total 20072 -rw-r--r--. 1 1000 1000 18376626 Jan 27 16:24 data.sql -rw-r--r--. 1 1000 1000 1978341 Jan 24 21:00 images.sql -rw-r--r--. 1 1000 1000 573 Jan 27 16:24 Makefile.am -rw-r--r--. 1 1000 1000 22972 Jan 27 16:24 Makefile.in drwxr-xr-x. 2 1000 1000 92 Jan 27 16:24 option-patches -rw-r--r--. 1 1000 1000 166646 Jan 27 16:24 schema.sql [root@zabbix.com mysql]# mysql zabbix <schema.sql mysql zabbix <images.sql mysql zabbix <data.sql MariaDB [(none)]> show tables from zabbix; 173 rows in set (0.002 sec)
四、编译安装zabbix-server
1. 安装依赖(软件包中已经包含) yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel 2. 进行配置 在源代码目录并且ls 可以看见configure文件 #--sysconfdir 指定配置文件目录 #--enable-server 服务端 ./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre 3. 根据提示执行make install make install 4. 检查是否成功 [root@m03-zabbix-server-lidao996 ~/zabbix-6.0.5]# echo $? 0 [root@zabbix.com zabbix-6.0.38]# zabbix_server --version zabbix_server (Zabbix) 6.0.38
1、修改zbx服务端配置文件(DB相关)
vim /etc/zabbix/zabbix_server.conf [root@zabbix.com zabbix-6.0.38]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf LogFile=/tmp/zabbix_server.log DBName=zabbix DBUser=zabbix Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1 修改 LogFile=/var/log/zabbix/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix mkdir -p /var/log/zabbix/ useradd -s /sbin/nologin -M zabbix chown -R zabbix.zabbix /var/log/zabbix #启动zbx服务端 zabbix_server #检查端口 ss -lntup|grep 10051 #检查进程 ps -ef |grep zabbix
2、书写systemctl 配置文件
vim /usr/lib/systemd/system/zabbix-server.service [Unit] Description=Zabbix Server with MySQL DB After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/sbin/zabbix_server -f User=zabbix [Install] WantedBy=multi-user.target #加载配置文件 systemctl daemon-reload #关闭手动启动的zbx server pkill zabbix_server #检查是否关闭成功 ps -ef |grep zabbix #启动与检查 systemctl enable zabbix-server systemctl start zabbix-server systemctl status zabbix-server
3、部署前端代码代码进行访问
[root@zabbix.com zabbix-6.0.38]# cp -r ui/* /app/code/zbx/ chown -R nginx.nginx /app/code/zbx/修改php.ini
vim /etc/php.ini /etc/php.ini:388:max_execution_time = 300 /etc/php.ini:398:max_input_time = 600 /etc/php.ini:694:post_max_size = 80M 重启php systemctl restart php-fpm 用户密码登陆 Admin zabbix
五、安装客户端、
1.配置zbx源
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm yum clean all yum makecache
2.安装客户端
yum install -y zabbix-agent2
3.配置客户端
vim /etc/zabbix/zabbix_agent2.conf PidFile=/var/run/zabbix/zabbix_agent2.pid LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=0 Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=Zabbix server Include=/etc/zabbix/zabbix_agent2.d/*.conf ControlSocket=/tmp/agent.sock Include=./zabbix_agent2.d/plugins.d/*.conf
4.启动
systemctl enable zabbix-agent2.service systemctl start zabbix-agent2.service ps -ef |grep agent2 ss -lntup |grep agent2
六、服务的配置
文件和目录 /etc/zabbix/zabbix_server.conf 配置文件 /var/log/zabbix/zabbix_server.log 当前放在/tmp/下面 /usr/lib/systemd/system/zabbix-server.service 手写的systemctl管理文件 如果yum、rpm安装自带 /usr/local/share/zabbix/alertscripts/ 用于实现告警的脚本。[root@xiaozbx conf]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf:LogFile=/var/log/zabbix/zabbix_server.log /etc/zabbix/zabbix_server.conf:DBName=zabbix /etc/zabbix/zabbix_server.conf:DBUser=zabbix /etc/zabbix/zabbix_server.conf:DBPassword=zabbix /etc/zabbix/zabbix_server.conf:Timeout=4 /etc/zabbix/zabbix_server.conf:LogSlowQueries=3000 /etc/zabbix/zabbix_server.conf:StatsAllowedIP=127.0.0.1 #zbx服务端配置文件详解 #说明 ListenPort=10051 服务端端口 LogFile=/var/log/zabbix/zabbix_server.log 日志文件 DBHost=localhost 数据库地址 DBName=zabbix 数据库名字 DBUser=zabbix 数据库用户名 DBPassword=zabbix 数据密码 Timeout=4 超时时间
七、客户端配置
/etc/zabbix/zabbix_agent2.conf 配置文件 /etc/zabbix/zabbix_agent2.d/ 子配置文件目录,用于自定义监控。 /var/log/zabbix 日志
八、监控任意主机流程
配置客户端
1. 安装 rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm yum install -y zabbix-agent2 2. 配置 vim /etc/zabbix/zabbix_agent2.conf sed -i 's#Server=127.0.0.1#Server=172.16.1.63#g' /etc/zabbix/zabbix_agent2.conf 3. 启动 systemctl enable zabbix-agent2 systemctl start zabbix-agent2 systemctl restart zabbix-agent2web页面添加主机
填写主机信息
#####待续






6916

被折叠的 条评论
为什么被折叠?



