zabbix

文章目录

zabbix

一,介绍

Zabbix 是一款企业级开源分布式监控解决方案。

Zabbix是一款用于监控网络众多参数、服务器/虚拟机/应用程序/服务/数据库/网站/云平台等健康状态和完整性的软件。Zabbix提供灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警,从而实现对服务器问题的快速响应。基于存储数据,Zabbix提供出色的报表和数据可视化功能,使其成为容量规划的理想选择。

Zabbix同时支持轮询和捕获两种方式。所有Zabbix报表、统计信息及配置参数均可通过基于Web的前端界面访问。该Web前端确保您可以从任何位置评估网络状态和服务器健康状况。经过适当配置,Zabbix可在IT基础设施监控中发挥重要作用,无论是对拥有少量服务器的小型组织,还是对拥有众多服务器的大型企业都同样适用。

二,核心组件

1. Zabbix Server(核心)

  • 整个系统的大脑,负责数据接收、处理、存储、告警判断、任务调度。
  • 功能:接收Agent/Proxy/SNMP数据、触发告警、管理配置、提供Web后端。
  • 部署:生产环境建议独立服务器,支持HA高可用。

2. Zabbix Agent/Agent 2(被监控端)

  • 部署在被监控主机,采集本地数据(系统、应用)并上报。
  • Agent:C语言开发,轻量、单线程,适合基础监控。
  • Agent 2(6.x+推荐):Go语言,多线程、插件化(MySQL/Redis/K8s),性能更强。
  • 模式:主动(Agent→Server)、被动(Server→Agent)。

3. Zabbix Proxy(可选,分布式)

  • 代理Server采集数据,减轻Server负载、跨地域/跨网络监控、网络隔离。
  • 不存储数据,仅转发,适合大规模、多机房场景。

4. 数据库(Database)

  • 存储配置(主机、模板、触发器)、历史数据、趋势数据。
  • 支持:MySQL/MariaDB(最常用)、PostgreSQL、Oracle。

5. Web界面(Web Interface)

  • 基于PHP的可视化控制台,用于配置、查看监控、告警管理、报表。
  • 路径:http://<serverIP>/zabbix

6. 其他工具

  • Zabbix Sender:手动/脚本向Server推送自定义数据。
  • Zabbix Get:Server端手动测试获取Agent数据(调试用)。

Zabbix核心定义

术语 说明
监控项(Item) 采集的具体指标,是数据采集的最小单元
触发器(Trigger) 基于监控项设置的阈值规则,触发异常状态
动作(Action) 触发器异常后执行的操作(发邮件、短信、执行脚本等)
模板(Template) 预定义的监控项、触发器、图形集合,可批量应用到主机
主机(Host) 被监控的设备,需关联模板才能监控
主动模式 Agent主动向Server推送数据
被动模式 Server主动向Agent拉取数据(默认模式)

三,使用场景

  1. 服务器监控:Linux/Windows服务器的CPU、内存、磁盘、网络、进程、负载、日志
  2. 网络设备监控:交换机、路由器、防火墙的端口流量、状态、CPU、内存(SNMP)
  3. 应用服务监控:Web(Nginx/Apache)、数据库(MySQL/PostgreSQL/Oracle)、中间件(Redis、Kafka、Tomcat)、容器(Docker/K8s)
  4. 云平台监控:阿里云、AWS、VMware、OpenStack虚拟机与资源状态
  5. 业务指标监控:接口响应时间、订单量、用户在线数、API成功率
  6. 分布式/跨机房监控:多地域机房、网络隔离环境(用Zabbix Proxy代理采集)
  7. 告警与自愈:异常自动通知、执行恢复脚本、服务重启、故障升级通知

四,搭建LNMP架构

环境规划

主机名 IP 功能
zabbix-server 192.168.108.50 安装Zabbix
mysql001 192.168.108.51 被监控端

安装Nginx

bash 复制代码
# 创建nginx的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
enabled=1
gpgcheck=0

# 安装nginx
yum install nginx -y

# 开启服务
systemctl start nginx
systemctl enable nginx

# 防火墙添加http
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --reload

安装MariaDB

bash 复制代码
# 配置MariaDB 10.x yum源(Zabbix 6.0必须使用该版本)
vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.6/centos7-amd64/
enabled = 1
gpgcheck = 0

# 下载mariadb
yum -y install mariadb-server mariadb

# 开启服务
systemctl enable mariadb --now

# 设置root密码
mysql
sql 复制代码
DELETE FROM mysql.user WHERE User='';
ALTER USER root@localhost IDENTIFIED BY 'root123';
FLUSH PRIVILEGES;

安装PHP

bash 复制代码
yum -y install epel-release
sed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/epel.repo
sed -i "s/metalink/#metalink/g" /etc/yum.repos.d/epel.repo
sed -i "s@https\?://download\.fedoraproject\.org/pub@https://repo.huaweicloud.com@g" /etc/yum.repos.d/epel.repo

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded \
php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd \
php72w-opcache php72w-ldap php72w-bcmath
配置Nginx支持PHP
bash 复制代码
# 修改php-fpm配置文件,把apache改为nginx
vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

# 配置nginx
vim /etc/nginx/conf.d/default.conf
# 在index中添加index.php
# 取消location ~ \.php$ 注释并修改

nginx

复制代码
location ~ \.php$ {
    root /usr/share/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

配置PHP

bash

复制代码
vim /etc/php.ini
参数 说明
short_open_tag On 支持PHP短标签
expose_php Off 隐藏PHP版本
max_execution_time 300 执行时间
max_input_time 300 接收数据等待时间
memory_limit 128M 每个脚本占用内存
post_max_size 16M POST数据大小
upload_max_filesize 2M 上传文件大小
always_populate_raw_post_data -1
date.timezone Asia/Shanghai 时区

bash

复制代码
# 启动php-fpm服务
systemctl enable php-fpm --now

# 重启nginx
systemctl restart nginx

测试PHP

bash

复制代码
# 测试php首页
vim /usr/share/nginx/html/info.php
<?php phpinfo(); ?>

创建Zabbix数据库及账号

sql

复制代码
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix123';
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix123';
FLUSH PRIVILEGES;

zabbix-server

导入数据库

bash

复制代码
# 解压
tar zxvf zabbix-6.0.6.tar.gz

# 导入数据库
cd /root/zabbix-6.0.6/database/mysql/
mysql -uroot -proot123 zabbix < schema.sql
mysql -uroot -proot123 zabbix < images.sql
mysql -uroot -proot123 zabbix < data.sql
mysql -uroot -proot123 zabbix < double.sql
mysql -uroot -proot123 zabbix < history_pk_prepare.sql

安装Zabbix Server

bash

复制代码
# 安装依赖包
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 fping gcc gcc-c++ make

# 创建zabbix用户
useradd -s /sbin/nologin -M zabbix

# 配置编译参数
export CFLAGS="-std=gnu99"
cd zabbix-6.0.6/
./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

# 安装
make install

# 检查版本
zabbix_server --version

修改Zabbix Server配置

复制代码
vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix_server.log
DBPassword=zabbix123

# 创建日志文件
touch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.log

创建systemctl服务

bash

复制代码
vim /usr/lib/systemd/system/zabbix-server.service

ini

复制代码
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service

[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix

[Install]
WantedBy=multi-user.target

bash

复制代码
# 启动zabbix
systemctl start zabbix-server
netstat -ntap | grep 10051

前端页面部署

bash 复制代码
# 复制前端文件
cp -r /root/zabbix-6.0.6/ui/* /usr/share/nginx/html/

# 设置权限
chown -R nginx:nginx /usr/share/nginx/html/

访问 http://192.168.108.50/setup.php 完成Web安装配置。

默认登录信息:

  • 用户名:Admin
  • 密码:zabbix

被监控端配置

安装Agent

bash 复制代码
# 关闭防火墙和SELinux
systemctl stop firewalld.service
setenforce 0
hostnamectl set-hostname mysql001

# 更新CA
yum update ca-certificates -y

# 安装Zabbix仓库
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

# 安装agent2
yum install zabbix-agent2 -y

# 启动服务
systemctl enable zabbix-agent2.service --now

修改Agent2配置

bash 复制代码
vim /etc/zabbix/zabbix_agent2.conf
ini 复制代码
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.108.50      # 指向监控服务器
ServerActive=192.168.108.50 # 指向监控服务器
Hostname=mysql001            # 主机名称
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf
bash 复制代码
# 重启服务
systemctl restart zabbix-agent2

zabbix管理

http://192.168.108.50

zabbix首页登录

相关推荐
炸炸鱼.2 天前
部署Zabbix企业级分布式监控:从零到实战(知识点大全)
分布式·zabbix
Peace2 天前
【Zabbix】
linux·运维·zabbix
爱莉希雅&&&2 天前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
江华森2 天前
Zabbix 6.4 全栈部署与运维完全指南
运维·zabbix
江南风月2 天前
WGCLOUD监控系统的Restful Http接口一览
运维·zabbix·运维开发·prometheus
博客-小覃3 天前
Zabbix之华为交换机的日志记录信息操作详细教程
服务器·网络·华为·zabbix
爱莉希雅&&&3 天前
Zabbix监控初步搭建
linux·运维·数据库·mysql·zabbix
Forget_85504 天前
RHEL——Zabbix监控系统
zabbix
蜀道山老天师4 天前
Docker Compose 多容器编排实战:LNMP、Tomcat 集群、云桌面、Portainer、Zabbix 一键部署
运维·docker·容器·tomcat·zabbix