简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix支持主动轮询和被动捕获,所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。
架构
Zabbix由几个主要的软件组件构成,这些组件的功能如下。
Server
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。
数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
Web界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
Proxy代理服务器(大规模集群)
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
Agent监控代理
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
部署zabbix-server和zabbix-web
创建yaml文件,文件内容如下,使用docker-compose进行部署
docker-compose up -d
docker-compose命令会自动查找当前目录yaml文件并执行,执行完毕后查看容器是否运行正常docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a007aab4ff1 zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.12 "docker-entrypoint.sh" 12 days ago Up About an hour 8443/tcp, 0.0.0.0:18080->8080/tcp zabbix-web
f9ad9f3cf85b zabbix/zabbix-server-mysql:ubuntu-5.4.12 "/usr/bin/tini -- /u…" 12 days ago Up About an hour zabbix-server-mysql
5518d793caec mysql:5.7 "docker-entrypoint.s…" 12 days ago Up About an hour 33060/tcp, 0.0.0.0:23306->3306/tcp mysql-server
docker-compose.yaml
version: "3"
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: "172.20.1.0/24"
services:
mysql-server:
image: mysql:5.7
container_name: mysql-server
command: --character-set-server=utf8 --interactive_timeout=120 --wait_timeout=120 --log_warnings=1 --collation-server=utf8_bin --sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --lower_case_table_names=1
restart: always
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
ports:
- 23306:3306
networks:
mynetwork:
ipv4_address: 172.20.1.2
volumes:
- /data/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime
- /etc/timezone:/etc/timezone
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:ubuntu-5.4.12
container_name: zabbix-server-mysql
ulimits:
nproc: 65535
nofile:
soft: 20000
hard: 40000
privileged: true
cap_add:
- ALL
restart: always
environment:
- DB_SERVER_HOST=172.20.1.2
- MYSQL_USER=zabbix
- ZBX_CACHESIZE=4096M
- MYSQL_PASSWORD=zabbix
- MYSQL_DATABASE=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
ports:
- 10051:10051
network_mode: host
volumes:
- /etc/localtime:/etc/localtime
- /etc/timezone:/etc/timezone
- zabbix-server-conf:/etc/zabbix
- zabbix-server-alertscripts:/usr/lib/zabbix/alertscripts
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.12
container_name: zabbix-web
environment:
- DB_SERVER_HOST=mysql-server
- MYSQL_USER=zabbix
- PHP_TZ=Asia/Shanghai
- MYSQL_PASSWORD=zabbix
- MYSQL_DATABASE=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
restart: always
ports:
- 18080:8080
networks:
mynetwork:
ipv4_address: 172.20.1.3
volumes:
- /etc/localtime:/etc/localtime
- /etc/timezone:/etc/timezone
links:
- mysql-server:mysql
- zabbix-server-mysql:zabbix-server
depends_on:
- mysql-server
- zabbix-server-mysql
volumes:
zabbix-server-conf:
zabbix-server-alertscripts:
部署完毕后,打开浏览器访问:http://{主机IP}:18080/
默认帐号密码:Admin/zabbix
被监测主机部署zabbix-agent
下载地址:http://repo.zabbix.com/zabbix/