CentOS7下的运维监控Zabbix部署

一、Zabbix 概述与架构原理

1.1 Zabbix 核心功能

Zabbix 是一款开源的企业级分布式监控解决方案,能够监控网络参数、服务器健康状态和性能指标。其核心功能包括:

  • 实时监控网络设备、服务器和应用程序
  • 灵活的告警机制,支持邮件、短信等多种告警方式
  • 强大的数据可视化和报表功能
  • 分布式架构,支持数千节点的大规模监控

1.2 架构组件

Zabbix 主要由以下组件构成:

  • Zabbix Server:核心服务器,负责数据收集和处理
  • Zabbix Agent:安装在被监控设备上,收集本地数据
  • Zabbix Web UI:Web 界面,用于配置和查看监控数据
  • Zabbix Proxy:分布式监控时使用,减轻 Server 负担
  • 数据库:存储监控数据,支持 MySQL、PostgreSQL 等

1.3 部署架构规划

本次部署采用单服务器架构,适用于中小型企业监控需求:

  • 服务器配置:2 核 CPU、4GB 内存、100GB 磁盘
  • 操作系统:CentOS 7.9
  • 数据库:MySQL 5.7
  • Zabbix 版本:4.0.24
  • 部署模式:Zabbix Server+Agent+Web UI 集中部署

二、环境准备与依赖安装

2.1 系统基础配置

  1. 关闭防火墙和 SELinux:

bash

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
reboot

  1. 配置 YUM 源优化:

bash

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/CentOS-vault.repo
yum makecache

2.2 安装基础依赖

bash

yum install -y wget net-tools vim unzip

2.3 安装 MySQL 数据库

  1. 添加 MySQL 官方仓库:

bash

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm

  1. 安装 MySQL 服务:

bash

yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld

  1. 配置 MySQL 安全设置:

bash

# 获取初始密码
grep 'temporary password' /var/log/mysqld.log
# 登录并修改密码
mysql -uroot -p

在 MySQL 控制台执行:

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zabbix@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Zabbix@123';
FLUSH PRIVILEGES;

2.4 创建 Zabbix 数据库

bash

mysql -uroot -pZabbix@123 -e "CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;"
mysql -uroot -pZabbix@123 -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@123';"
mysql -uroot -pZabbix@123 -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';";
mysql -uroot -pZabbix@123 -e "FLUSH PRIVILEGES;";

三、Zabbix 服务器部署

3.1 添加 Zabbix 仓库

bash

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all

3.2 安装 Zabbix 组件

bash

yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent

3.3 配置 Zabbix Server

  1. 导入 Zabbix 数据库架构:

bash

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pZabbix@123 zabbix

  1. 修改 Zabbix Server 配置文件:

bash

vim /etc/zabbix/zabbix_server.conf

主要配置项:

plaintext

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@123
DBPort=3306

3.4 配置 Web 界面

bash

vim /etc/httpd/conf.d/zabbix.conf

修改时区为上海:

plaintext

php_value date.timezone Asia/Shanghai

3.5 启动服务

bash

systemctl start zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

四、Zabbix Web 界面配置

4.1 首次访问配置

  1. 浏览器访问http://服务器IP/zabbix,进入安装向导
  2. 检查前置条件,确保 PHP 版本≥5.4,内存限制≥128M,禁用了 Safe Mode,开启了 zlib、bcmath、mbstring 扩展
  3. 配置数据库连接:
    • 主机名:localhost
    • 数据库:zabbix
    • 用户名:zabbix
    • 密码:Zabbix@123
  4. 配置 Zabbix 服务器参数:
  5. 完成配置后,使用默认账号密码登录:Admin/zabbix

五、Zabbix 基础监控配置

5.1 添加监控主机

  1. 登录 Zabbix Web 界面,进入 "配置"→"主机"→"创建主机"
  2. 填写主机信息:
    • 主机名称:Linux 服务器
    • 可见名称:Linux 服务器
    • 组:选择 "Linux servers"
  3. 配置连接方式:
    • 主机接口:IP 地址填写服务器 IP
    • 协议:Zabbix Agent
    • 端口:10050

5.2 安装 Zabbix Agent

  1. 在被监控服务器安装 Agent:

bash

yum install -y zabbix-agent

  1. 修改配置文件:

bash

vim /etc/zabbix/zabbix_agentd.conf

主要配置:

plaintext

Server=Zabbix服务器IP
ServerActive=Zabbix服务器IP
Hostname=Linux服务器

  1. 启动 Agent:

bash

systemctl start zabbix-agent
systemctl enable zabbix-agent

5.3 添加监控项

  1. 进入 "配置"→"主机"→选择主机→"创建监控项"
  2. 配置监控项参数:
    • 键值:system.cpu.load [all,avg1]
    • 名称:CPU 负载
    • 类型:Zabbix Agent
    • 数据类型:浮点数
    • 单位:%
    • 更新间隔:30 秒

5.4 创建仪表盘

  1. 进入 "监控中"→"仪表盘"→"创建仪表盘"
  2. 添加图表元素:
    • 选择 "CPU 负载" 监控项
    • 图表类型:折线图
    • 时间范围:24 小时

六、告警配置与实战

6.1 创建告警规则

  1. 进入 "配置"→"主机"→选择主机→"创建触发器"
  2. 配置触发器参数:
    • 名称:CPU 负载过高
    • 表达式:{Linux 服务器:system.cpu.load [all,avg1].last ()} > 80
    • 严重级别:警告

6.2 配置告警媒介

  1. 进入 "管理"→"用户"→选择 Admin 用户→"告警媒介"
  2. 配置邮件告警:
    • 类型:Email
    • 收件人:admin@example.com
    • 显示名称:管理员

6.3 配置告警动作

  1. 进入 "配置"→"动作"→"创建动作"
  2. 配置触发条件:
    • 条件:触发器名称包含 "CPU 负载过高"
  3. 配置执行操作:
    • 发送通知到 Admin 用户
    • 消息内容:"服务器 {HOSTNAME} CPU 负载达到 {TRIGGER.VALUE}%,请及时处理"

七、Zabbix 进阶功能

7.1 监控网络设备

  1. 添加 SNMP 接口:
    • 主机接口:IP 地址
    • 协议:SNMP
    • 端口:161
  2. 配置 SNMP 参数:
    • 社区字符串:public
  3. 添加 SNMP 监控项:
    • 键值:snmpwalk [1.3.6.1.2.1.1.1.0]
    • 名称:设备描述

7.2 监控 MySQL 数据库

  1. 创建自定义监控项:
    • 键值:mysql.status [Threads_connected]
    • 名称:MySQL 连接数
  2. 配置触发器:
    • 表达式:{Linux 服务器:mysql.status [Threads_connected].last ()} > 200
    • 严重级别:严重

7.3 分布式监控部署

  1. 在远程服务器安装 Zabbix Proxy:

bash

yum install -y zabbix-proxy-mysql

  1. 配置 Proxy:

bash

vim /etc/zabbix/zabbix_proxy.conf

主要配置:

plaintext

Server=Zabbix服务器IP
Hostname=Proxy服务器
DBHost=Zabbix数据库IP
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=Zabbix@123

  1. 创建 Proxy 数据库:

bash

mysql -uroot -pZabbix@123 -e "CREATE DATABASE zabbix_proxy CHARACTER SET utf8 COLLATE utf8_bin;"
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -pZabbix@123 zabbix_proxy

  1. 启动 Proxy:

bash

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

八、性能优化与故障排除

8.1 性能优化

  1. 调整 Zabbix Server 参数:

bash

vim /etc/zabbix/zabbix_server.conf

优化参数:

plaintext

StartPollers=50
StartPollersUnreachable=5
StartTrappers=100
MaxHousekeeper=5
Timeout=4

  1. 优化 MySQL 数据库:

bash

vim /etc/my.cnf

添加参数:

plaintext

max_connections=500
innodb_buffer_pool_size=256M
key_buffer_size=64M

  1. 重启 MySQL:

bash

systemctl restart mysqld

8.2 常见故障排除

  1. Zabbix Server 无法连接数据库:

    • 检查数据库服务是否运行
    • 确认 zabbix_server.conf 中的数据库配置正确
    • 检查防火墙是否允许数据库端口访问
  2. 客户端无法连接到 Zabbix Agent:

    • 检查 zabbix_agentd.conf 中的 Server 和 ServerActive 配置
    • 确认 Agent 服务已启动
    • 检查防火墙是否允许 10050 端口访问
  3. 网页访问 Zabbix 提示 "Cannot connect to Zabbix server":

    • 检查 zabbix_server 是否运行
    • 确认 zabbix_server.conf 中的 DB 配置正确
    • 检查 zabbix 前端配置中的 ServerIP 是否正确

九、生产环境最佳实践

9.1 高可用性部署

  1. 部署 MySQL 主从复制:
    • 主服务器配置:

bash

vim /etc/my.cnf

添加:

plaintext

server-id=1
log-bin=mysql-bin

  • 从服务器配置:

bash

vim /etc/my.cnf

添加:

plaintext

server-id=2
log-bin=mysql-bin
replicate-all-databases

  1. 配置 Zabbix Server 集群:
    • 使用 ZooKeeper 实现负载均衡
    • 每个 Zabbix Server 连接到相同的 MySQL 集群
    • 通过 Nginx 进行前端负载均衡

9.2 安全加固

  1. 更改 Zabbix 默认端口:

bash

vim /etc/zabbix/zabbix_server.conf
Port=10051

bash

vim /etc/zabbix/zabbix_agentd.conf
Port=10050

  1. 配置 IP 访问限制:

bash

vim /etc/httpd/conf.d/zabbix.conf

添加:

plaintext

<Location /zabbix>
    Require ip 192.168.1.0/24
</Location>

  1. 启用 TLS 加密:
    • 生成证书:

bash

openssl genrsa -out zabbix_server.key 2048
openssl req -new -key zabbix_server.key -out zabbix_server.csr
openssl x509 -req -days 365 -in zabbix_server.csr -signkey zabbix_server.key -out zabbix_server.crt

  • 配置 Zabbix Server:

bash

vim /etc/zabbix/zabbix_server.conf

添加:

plaintext

SSLCertFile=/path/to/zabbix_server.crt
SSLCertKeyFile=/path/to/zabbix_server.key
StartTLS=1

9.3 自动化部署

  1. 使用 Ansible 脚本批量部署 Zabbix Agent:

yaml

- name: Install Zabbix Agent
  hosts: all
  tasks:
    - name: Add Zabbix repository
      yum_repository:
        name: zabbix
        baseurl: https://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch
        gpgkey: https://repo.zabbix.com/RPM-GPG-KEY-zabbix
        enabled: true
    - name: Install zabbix-agent
      yum:
        name: zabbix-agent
        state: present
    - name: Configure zabbix_agentd.conf
      template:
        src: zabbix_agentd.conf.j2
        dest: /etc/zabbix/zabbix_agentd.conf
      variables:
        zabbix_server: 192.168.1.100
        hostname: {{ ansible_hostname }}
    - name: Start zabbix-agent
      service:
        name: zabbix-agent
        state: started
        enabled: true

十、总结

Zabbix 作为企业级监控解决方案,能够满足从简单到复杂的各种监控需求。通过本指南,您已掌握了 Zabbix 的完整部署流程,包括环境准备、软件安装、配置管理、告警设置和性能优化。在实际应用中,建议根据业务规模和复杂度进一步扩展监控能力,如添加更多监控模板、集成第三方系统或部署分布式架构。定期备份 Zabbix 配置和数据库,确保在故障时能快速恢复。随着技术的发展,Zabbix 也在不断更新,建议关注官方文档获取最新功能和最佳实践。通过持续学习和实践,您将成为 Zabbix 监控专家,为企业 IT 系统的稳定运行提供坚实保障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值