Linux
Kali 安装
Kali-WIFI密码(字典)
Armbian安装OMV(NAS)
NPS 内网穿透
CloudFlare
CloudFlare-免端口
CloudFlare-KV存储
API 使用
API-抓包信息使用
Linux-系统配置
Linux-更换源
Linux-一键更换源
Linux-权限
Linux-分区管理
Linux-网卡配置
Linux 端口转发
Linux 交换内存
Linux 进程优先级
Linux 共享打印机
Linux-自定义服务(支持Docker开机自启)
Linux-硬/软链接/挂载
Linux-系统时钟
Linux-清理命令记录
Linux-一键DD脚本
Linux-安装根证书
Linux-TheFuck(命令纠正)
Linux 服务器
Linux-面试鸭
Linux-Mall-Cook(商店可视化搭建)
Linux-Scratch
Linux-CasaOS(家庭云操作系统)
Linux-TiddlyWiki(非线性网页笔记)
Linux-拖拽式H5
Linux-鲁班H5
Linux-SSL证书续订
Linux-acme(SSL证书脚本)
SSL证书转换
SSL-httpsok
SSL-其它工具
Linux-LoveCards(表白墙)
Linux-游戏导航
Linux 常用命令
Linux-scp
Linux-打包/解压/压缩
Linux-SSH
Linux-portknocking(端口敲击)
Linux-获取当前公网IP
Linux-自动挂载盘
Linux-代理
Linux-nmap(局域网扫描)
Linux-jq(JSON处理)
Linux-DDNS(自制脚本)
Linux-shell传递参数
Linux-if(判断)
Linux-curl/wget
Linux-which(查看命令所在路径)
Linux-Maven
Linux-ncdu(清理日志)
Linux-共享
Linux-screen(终端切换)
Linux-Macchanger(MAC修改)
Linux-iptables(包过滤防火墙系统)
Linux-祸害人脚本
Linux-模拟网络延迟环境
Linux-Git
Linux-apt(安装软件)
Linux-crontab(定时任务)
Linux-nano/vi/vim 编辑器
Linux 环境安装
Linux 安装 Node.js
Node.js-创建通用执行
Linux 安装 Java
Linux 安装 Go
域名注册
MariaDB-相关操作
未测试开源项目
SQL 学习
SQL-常用指令
Ansible(自动化运维)
Zabbix(运维监控)
网络设备概述
备份概述
雷池WAF
Linux-新旧服务器同步rpm软件包
本文档使用 MrDoc 发布
-
+
首页
Zabbix(运维监控)
zabbix是一款知名的老牌监控系统,可对硬件、操作系统、数据库、网络等多种目标介质进行统一监控,并集成了UI、监控展示、告警、服务发现等多种功能,可非常高效地进行监控工作 **相关链接:** - Zabbix:https://www.zabbix.com/cn - Doc:https://www.zabbix.com/cn/manuals - 容器安装:https://www.zabbix.com/documentation/current/en/manual/installation/containers - WiKi:https://github.com/zabbix/zabbix-docker/wiki - 下载地址:https://www.zabbix.com/cn/download - GitHub:https://github.com/zabbix/zabbix-docker - Docker:https://hub.docker.com/u/zabbix ## [Zabbix 主要组件](https://www.zabbix.com/documentation/current/zh/manual/concepts) Zabbix 的主要组件: - Zabbix Server: 监控系统的中心节点,负责收集监控数据、评估触发器、发送告警和存储历史数据 调度监控任务,处理来自代理和直接连接的代理的数据 Docker 镜像: - zabbix-server-mysql:使用 MySQL 数据库 - zabbix-server-pgsql:使用 PostgreSQL 数据库 - Zabbix Agent: 部署在被监控设备上的轻量级监控代理,负责收集本地系统和应用程序的数据 以主动模式向 Zabbix Server 或 Proxy 报告数据 Agent 分两种: - [zabbix-agent](https://hub.docker.com/r/zabbix/zabbix-agent/):轻量级,在许多平台上支持,用 C 编写 - [zabbix-agent2](https://hub.docker.com/r/zabbix/zabbix-agent2/):非常灵活,易于使用插件扩展,用 Go 编写 - Zabbix Proxy: 用于分布式监控环境,减轻中央 Zabbix Server 的负载 收集来自 Agents 的数据,并将其转发给 Zabbix Server 需要独立的数据库,Docker 镜像: - [zabbix-proxy-sqlite3](https://hub.docker.com/r/zabbix/zabbix-proxy-sqlite3/):使用 SQLite3 数据库,轻量级,适合小型环境 - [zabbix-proxy-mysql](https://hub.docker.com/r/zabbix/zabbix-proxy-mysql/):使用 MySQL 数据库,适合大型环境 - Zabbix Get: 一个实用程序,用于从 Zabbix Server 获取特定监控项的历史数据 可以用于自定义报告或数据分析 - Zabbix Sender: 用于在被动模式下发送监控数据到 Zabbix Server 或 Proxy 通常用于网络设备或应用程序,它们不支持主动模式 Docker 镜像: - [zabbix-snmptraps](https://hub.docker.com/r/zabbix/zabbix-snmptraps/):用于 Zabbix server 和 Zabbix proxy 的附加容器镜像,以支持 SNMP 陷阱 - Zabbix JS: Zabbix JavaScript 库,提供与 Zabbix API 交互的能力 允许开发者在 Web 应用程序中集成 Zabbix 功能 - Zabbix Java Gateway: 用于监控基于 Java 的应用程序 允许 Zabbix 通过 JMX 收集 Java 应用程序的监控数据 Docker 镜像: - [zabbix-java-gateway](https://hub.docker.com/r/zabbix/zabbix-java-gateway/):Zabbix Java 网关 - Zabbix Web Service: 提供一个接口,允许通过无头浏览器执行各种任务,例如生成报告 可以用于自动化任务和集成第三方应用程序 Docker 镜像: - [zabbix-web-service](https://hub.docker.com/r/zabbix/zabbix-web-service/):使用无头 Web 浏览器 - [zabbix-web-apache-mysql](https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql/):Apache2 Web 服务器 + MySQL 数据库 - [zabbix-web-apache-pgsql](https://hub.docker.com/r/zabbix/zabbix-web-apache-pgsql/):Apache2 Web 服务器 + PostgreSQL 数据库 - [zabbix-web-nginx-mysql](https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql/):Nginx Web 服务器 + MySQL 数据库 - [zabbix-web-nginx-pgsql](https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql/):Nginx Web 服务器 + PostgreSQL 数据库 ## Docker 部署 使用 MySQL 数据库 ```bash mkdir {mysql,snmptraps,grafana} # 创建所需文件夹 nano docker-compose.yml # 创建docker-compose.yml docker-compose up -d # 拉取并部署 ``` 访问 http://localhost:8080 默认帐号密码 `Admin`,`zabbix` `docker-compose.yml` ```yaml services: mysql: # 数据库 image: mysql:8 # 不得高于9.00.x 否则zabbix-server会报错,故直接使用8 container_name: mysql # 容器名称 # security_opt: # 安全选项 # - seccomp:unconfined command: # 启动命令 - --character-set-server=utf8 # zabbix使用的是utf8,用utf8mb4会出错 - --collation-server=utf8_bin # 字符集校对规则,zabbix需设置为utf8_bin # - --slow_query_log=1 # 开启慢日志查询 # - --long_query_time=3 # 把查询时间超过3秒的定义为慢查询 # - --slow_query_log_file=/var/lib/mysql/slow_query.log # 指定慢查询记录文件位置 # - --lower_case_table_names=1 # 表名不区分大小写(忽略sql语句表名大小写错误) # - --max_connections=10000 # 限制最大连接数 # - --max_user_connections=0 # 每个MySQL用户的最大连接数(0不限制) # - --innodb_file_per_table=1 # 让innodb的每个表文件单独表空间 restart: always # 自动重启 environment: - MYSQL_LOWER_CASE_TABLE_NAMES=1 # 表名不区分大小写(忽略sql语句表名大小写错误) - MYSQL_DATABASE=zabbix # 数据库名称 - MYSQL_USER=zabbix # 数据库用户 - MYSQL_PASSWORD=zabbix # 数据库密码 - MYSQL_ROOT_PASSWORD=zabbix # root密码 # ports: # - 3306:3306 # 映射端口 volumes: - ./mysql:/var/lib/mysql:rw # 数据持久化 - /etc/localtime:/etc/localtime:ro # 同步时间 - /etc/timezone:/etc/timezone:ro # 同步时区 zabbix-server: # Zabbix Server image: zabbix/zabbix-server-mysql:alpine-latest # 基于alpine镜像,支持 MySQL 数据库 # image: zabbix/zabbix-server-pgsql:alpine-latest # 基于alpine镜像,支持 PostgreSQL 数据库 container_name: zabbix-server # 容器名称 privileged: true # 开启特权模式 restart: always # 自动重启 environment: - ZBX_STARTPOLLERS=10 # 轮询处理监控项的进程数,参考值:1个进程处理250个item - ZBX_STARTPOLLERSUNREACHABLE=10 # 用于轮询不可到达到的设备,下面两点unreachable poller会升高 # 1.如果监控的机器死机或其他原因导致zabbix agent死掉server获取不到数据 # 2.server向agent获取数据时时间过长,经常超过server甚至的timeout时间 - ZBX_MAXHOUSEKEEPERDELETE=20000 # 单次最大删除数据量 - ZBX_VALUECACHESIZE=128M # 历史数据缓存大小 - ZBX_CACHESIZE=1024M # 缓存大小 - ZBX_HISTORYCACHESIZE=32M # 历史缓存数据大小 - ZBX_HISTORYINDEXCACHESIZE=10M # 历史索引缓存大小 - ZBX_STARTTRAPPERS=20 # 接收来自Zabbix发送者、主动agent和主动proxy的数据 - ZBX_STARTALERTERS=5 # 警报进程数 - DB_SERVER_HOST=mysql # 数据库地址(使用容器名) - MYSQL_USER=zabbix # 数据库用户名(同mysql配置) - MYSQL_PASSWORD=zabbix # 数据库密码(同mysql配置) - MYSQL_DATABASE=zabbix # 数据库名称(同mysql配置) - MYSQL_ROOT_PASSWORD=zabbix # 数据库root密码(同mysql配置) ports: - 10051:10051 depends_on: # 依赖关系 - mysql volumes: - /etc/localtime:/etc/localtime:ro # 同步时间 - /etc/timezone:/etc/timezone:ro # 同步时区 zabbix-web: # Zabbix Web Service image: zabbix/zabbix-web-nginx-mysql:alpine-latest # 基于alpine镜像,支持 MySQL 数据库 # image: zabbix/zabbix-server-pgsql:alpine-latest # 基于alpine镜像,支持 PostgreSQL 数据库 container_name: zabbix-web # 容器名称 environment: # 环境变量 - MYSQL_USER=zabbix # 数据库用户名(同mysql配置) - ZBX_SERVER_HOST=zabbix-server # zabbix server地址(使用容器名) - ZBX_SERVER_PORT=10051 # zabbix server端口(无需对外开放) - DB_SERVER_HOST=mysql # 数据库地址(使用容器名) - DB_SERVER_PORT=3306 # 数据库端口(无需对外开放) - PHP_TZ=Asia/Shanghai # 时区 - MYSQL_PASSWORD=zabbix # 数据库密码(同mysql配置) - MYSQL_DATABASE=zabbix # 数据库名称(同mysql配置) - MYSQL_ROOT_PASSWORD=zabbix # 数据库root密码(同mysql配置) restart: always # 自动重启 ports: - 8080:8080 volumes: - /etc/localtime:/etc/localtime:ro # 同步时间 - /etc/timezone:/etc/timezone:ro # 同步时区 depends_on: # 依赖关系 - mysql - zabbix-server # zabbix-snmptraps: # Zabbix Sender # image: zabbix/zabbix-snmptraps:alpine-latest # 基于alpine镜像 # container_name: zabbix-snmptraps # 容器名称 # # ports: # # - "1162:1162/udp" # volumes: # - ./snmptraps:/var/lib/zabbix/snmptraps # 存放log的地方 # grafana: # grafana 插件,增强zabbix的显示 # image: grafana/grafana:8.1.2 # container_name: grafana # 容器名称 # environment: # - GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app,grafana-piechart-panel,grafana-clock-panel,briangann-gauge-panel,natel-discrete-panel,vonage-status-panel,grafana-simple-json-datasource # # alexanderzobnin-zabbix-app # 安装支持zabbix的插件 # # grafana-piechart-panel # 修改图形为饼状图 # # grafana-clock-panel # 安装其他图形插件 # # briangann-gauge-panel # 仪表盘展示 # # natel-discrete-panel # 字符型展示 # # vonage-status-panel # 服务器状态展示 # - GF_SECURITY_ADMIN_USER=zwzw # 用户名 # - GF_SECURITY_ADMIN_PASSWORD=zwzw # 密码 # volumes: # - /etc/localtime:/etc/localtime:ro # 同步时间 # - /etc/timezone:/etc/timezone:ro # 同步时区 # - ./grafana:/var/lib/grafana # 挂载grafana配置文件 # # 需要有写入权限,容器中用户是grafana没有写入权限,需要给grafana写入权限 # # 从5.1开始,grafana用户在grafana容器中的uid是472,所以要在宿主机修改这个目录的属主为472,之前的版本是104 # # chown -R 472 /data/docker_app_volume_data/grafana/ # restart: always # 开机自启 # # ports: # # - '3000:3000' # depends_on: # - zabbix-web # zabbix-agent: # Zabbix Agent # image: zabbix/zabbix-agent:alpine-latest # 基于alpine镜像 # container_name: zabbix-agent # privileged: true # 开启特权模式 # restart: always # 自动重启 # environment: # - ZBX_HOSTNAME=Zabbix Server # 该主机名(监控端)在Zabbix Server上显示的名称 # - ZBX_SERVER_HOST=zabbix-server # zabbix server地址(使用容器名) # - ZBX_SERVER_PORT=10051 # zabbix server端口(无需对外开放) # - ZBX_ENABLEREMOTECOMMANDS=1 # 开启远程命令 # - ZBX_LOGREMOTECOMMANDS=1 # 开启远程命令日志记录 # - ZBX_TIMEOUT=10 # 超时时间 # - ZBX_PASSIVE_ALLOW=true # 被动模式检查 # - ZBX_ACTIVE_ALLOW=true # 主动模式检查 # volumes: # - /etc/localtime:/etc/localtime:ro # 同步时间 # - /etc/timezone:/etc/timezone:ro # 同步时区 # ports: # - '10050:10050' # depends_on: # 依赖关系 # - mysql # - zabbix-server # - zabbix-web ``` **相关教程:** [项目实战——企业级Zabbix监控实战](https://www.cnblogs.com/keerya/p/7953695.html) [基于docker快速搭建zabbix 6.2监控平台](https://cloud.tencent.com/developer/article/2206022)
造物者W
2024年12月25日 21:50
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码