Henry
发布于 2025-02-16 / 11 阅读
0
0

Zabbix - 部署

背景简介

由于需要监控的服务器服务器过多,单个管理不够统一,因此部署Zabbix进行服务器管理。

Zabbix是一个开源的企业级监控解决方案,广泛用于监控网络设备、服务器、应用程序和其他各种IT资源。

优缺点分析

优点

  • 开源免费:Zabbix是开源软件,用户可以免费使用其所有功能,降低了企业的监控成本。
  • 功能丰富:支持自动发现、分布式监控、触发器和事件通知,能够监控各种设备和系统。
  • 易于扩展:Zabbix支持自定义监控项和模板,可以根据需要监控特定的服务或应用。
  • 用户界面友好:提供了直观的Web界面,用户可以轻松配置监控项、查看数据和图表。
  • 支持多种数据采集方式:包括SNMP、Agent、JMX、IPMI等多种协议。
  • 报告功能:可以生成多种格式的报告,便于管理人员了解系统状态。
  • 社区支持:拥有一个活跃的社区,用户可以从中获得帮助和资源。

缺点

  • 资源消耗:Zabbix在处理大量数据时可能会消耗较多的服务器资源。
  • 复杂性:对于新手来说,Zabbix的配置和管理可能比较复杂,需要一定的学习和适应时间。
  • 数据库性能:随着监控项和数据量的增加,数据库可能会成为性能瓶颈。
  • 文档不足:虽然社区活跃,但官方文档在某些方面可能不够详尽,新用户可能需要花时间摸索。
  • 定制化能力有限:虽然Zabbix可以定制监控项,但对于一些特殊需求,可能需要编写自定义脚本或修改源代码。
  • 升级过程:从旧版本升级到新版本可能会遇到一些问题,需要谨慎操作。

综上所述,Zabbix是一个功能强大的监控工具,适用于各种规模的企业。但在选择是否使用Zabbix时,需要根据自身的需求、资源以及技术能力来权衡其优缺点。

监听服务器环境配置

  1. Docker 版本: 
  2. 系统内存和磁盘空间根据自身需求配置,以下为轻量使用样例配置
    1. Zabbix Server
      1. CPU: 2-4
      2. RAM: 512M-1024M
    2. Zabbix Database
      1. CPU: 1-2
      2. RAM: 1-2 G
    3. Zabbix Web
      1. RAM: 256M - 512M

详细步骤

第一步: 准备环境变量配置文件 .zabbix_db_env, .zabbix_server_env, zabbix_web_env

# .zabbix_db_env file
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=zabbix
POSTGRES_DB=zabbix
# .zabbix_server_env file
DB_SERVER_HOST=zabbix-db
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=zabbix
POSTGRES_DB=zabbix
ZBX_ENABLE_SNMP_TRAPS=true
# .zabbix_web_env file
ZBX_SERVER_HOST=zabbix-server
DB_SERVER_HOST=zabbix-db
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=zabbix
POSTGRES_DB=zabbix

**第二步:**准备 docker-compose.yaml 配置文件

networks:
  zabbix-agent-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.1.0.0/16
          gateway: 172.1.0.1

services:
  zabbix-db:
    image: postgres:15.4
    container_name: zabbix-db
    ports:
      - "30046:5432"
    env_file:
      - .zabbix_db_env
    volumes:
      - ./data/postgres/var/lib/postgresql/data:/var/lib/postgresql/data
    networks:
      - zabbix-net
    restart: unless-stopped

  zabbix-snmptraps:
    image: zabbix/zabbix-snmptraps
    container_name: zabbix-snmptraps
    ports:
      - "30047:1162/udp"
    volumes:
      - ./data/snmptraps/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw
      - ./data/snmptraps/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
    networks:
      - zabbix-net
    restart: unless-stopped
    depends_on:
      - zabbix-db

  zabbix-server:
    image: zabbix/zabbix-server-pgsql
    container_name: zabbix-server
    ports:
      - "10051:10051"
    env_file:
      - .zabbix_server_env
    volumes:
      - ./data/zabbix-server/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      - ./data/zabbix-server/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts
      - ./data/zabbix-server/var/lib/zabbix/modules:/var/lib/zabbix/modules
      - ./data/zabbix-server/var/lib/zabbix/enc:/var/lib/zabbix/enc
      - ./data/zabbix-server/var/lib/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs
      - ./data/zabbix-server/var/lib/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys
      - ./data/zabbix-server/var/lib/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca
      - ./data/snmptraps/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw
      - ./data/snmptraps/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
    networks:
      - zabbix-net
    restart: unless-stopped
    depends_on:
      - zabbix-snmptraps

  zabbix-web:
    image: zabbix/zabbix-web-nginx-pgsql
    container_name: zabbix-web
    ports:
      - "30045:8080"
    volumes:
      - ./data/zabbix-web/etc/ssl/nginx:/etc/ssl/nginx:ro
    env_file:
      - .zabbix_web_env
    networks:
      - zabbix-net
    restart: unless-stopped
    depends_on:
      - zabbix-server

**第三步:**启动容器

root@docker-main-server:/docker_main_server/zabbix# docker compose up -d
[+] Running 5/5
 ✔ Network zabbix_zabbix-net   Created  
 ✔ Container zabbix-db         Started   
 ✔ Container zabbix-snmptraps  Started   
 ✔ Container zabbix-server     Started    
 ✔ Container zabbix-web        Started               

第四步: 查看 zabbix 网页端

**第五步:**使用默认的账号(Admin)密码(zabbix)登录,后续请根据自身的需求进行变更。

被监听服务器配置

第一步: 准备 docker-compose.yaml 配置文件

networks:
  zabbix-agent-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.2.0.0/16
          gateway: 172.2.0.1

services:
  zabbix-agent:
    image: zabbix/zabbix-agent
    container_name: zabbix-agent
    hostname: zabbix-server-agent
    ports:
      - "30048:10050"
    volumes:
      - /:/host:ro
      - ./data/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
      - ./data/var/lib/zabbix/modules:/var/lib/zabbix/modules
      - ./data/var/lib/zabbix/enc:/var/lib/zabbix/enc
    networks:
      - zabbix-agent-net
    restart: unless-stopped

第二步: 添加主动和被动监控配置,配置文件:/path/to/etc/zabbix/zabbix_agentd.d/server.conf

root@docker-main-server:/docker_main_server/zabbix_agent# cat data/etc/zabbix/zabbix_agentd.d/server.conf 
Server=172.2.0.1
ServerActive=192.168.122.113:30044
  • Server:允许被动监听的地址,由于是 Docker 安装,访问时通过桥接网卡的网关访问的,也就是Agent启动时docker-compose.yaml 中配置 的172.2.0.1 。
  • ServerActive: 主动监听的地址和端口号。

第三步: 添加监控,点击 Monitoring > Hosts 

点击 Create host

输入对应的信息提交即可。


以上便是本文的全部内容,感谢您的阅读。



评论