背景简介
由于需要监控的服务器服务器过多,单个管理不够统一,因此部署Zabbix进行服务器管理。
Zabbix是一个开源的企业级监控解决方案,广泛用于监控网络设备、服务器、应用程序和其他各种IT资源。
优缺点分析
优点
- 开源免费:Zabbix是开源软件,用户可以免费使用其所有功能,降低了企业的监控成本。
- 功能丰富:支持自动发现、分布式监控、触发器和事件通知,能够监控各种设备和系统。
- 易于扩展:Zabbix支持自定义监控项和模板,可以根据需要监控特定的服务或应用。
- 用户界面友好:提供了直观的Web界面,用户可以轻松配置监控项、查看数据和图表。
- 支持多种数据采集方式:包括SNMP、Agent、JMX、IPMI等多种协议。
- 报告功能:可以生成多种格式的报告,便于管理人员了解系统状态。
- 社区支持:拥有一个活跃的社区,用户可以从中获得帮助和资源。
缺点
- 资源消耗:Zabbix在处理大量数据时可能会消耗较多的服务器资源。
- 复杂性:对于新手来说,Zabbix的配置和管理可能比较复杂,需要一定的学习和适应时间。
- 数据库性能:随着监控项和数据量的增加,数据库可能会成为性能瓶颈。
- 文档不足:虽然社区活跃,但官方文档在某些方面可能不够详尽,新用户可能需要花时间摸索。
- 定制化能力有限:虽然Zabbix可以定制监控项,但对于一些特殊需求,可能需要编写自定义脚本或修改源代码。
- 升级过程:从旧版本升级到新版本可能会遇到一些问题,需要谨慎操作。
综上所述,Zabbix是一个功能强大的监控工具,适用于各种规模的企业。但在选择是否使用Zabbix时,需要根据自身的需求、资源以及技术能力来权衡其优缺点。
监听服务器环境配置
- Docker 版本:
- 系统内存和磁盘空间根据自身需求配置,以下为轻量使用样例配置
- Zabbix Server
- CPU: 2-4
- RAM: 512M-1024M
- Zabbix Database
- CPU: 1-2
- RAM: 1-2 G
- Zabbix Web
- RAM: 256M - 512M
- Zabbix Server
详细步骤
第一步: 准备环境变量配置文件 .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
输入对应的信息提交即可。
以上便是本文的全部内容,感谢您的阅读。