> 文档中心 > Docker安装zabbix,打造属于您公司自己的开源监控系统-安装服务篇

Docker安装zabbix,打造属于您公司自己的开源监控系统-安装服务篇


目录

从上期开始,我们将分享Linux的一些常见系统操作以及一些常用操作系统的安装。

之前的帖子

Docker安装BookStack,打造属于您公司自己的开源wiki

前言 

Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。

Zabbix 是一个企业级分布式开源监控解决方案。

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。

Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。

Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。

官方网址

Zabbix官方Docker说明

Zabbix 为每个组件都提供了 Docker 镜像 ,作为弹性和自给自足的容器,促使加快部署和更新过程。

Zabbix 组件支持 MySQL 和 PostgreSQL 数据库、Apache2 和 Nginx Web 服务器。这些镜像被分成多个不同的镜像。

Docker 的基础镜像

Zabbix 组件提供了 Ubuntu、Alpine Linux 和 CentOS 的基础镜像:

镜像版本
alpine 3.4
ubuntu trusty
centos latest

​Docker 源文件自制

每个人都可以在 github.com 上使用 Zabbix 官方镜像仓库,并关注其 Docker 文件变更情况。您可以根据官方 Docker 文件复制此项目或制作自己的镜像。

Docker 组件

所有 Zabbix 组件都可在以下 Docker 镜像仓库中使用:

  • MySQL 数据库和 Nginx Web 服务器支持的 Zabbix 应用 - zabbix/zabbix-appliance
  • Zabbix appliance with MySQL database support and Nginx web-server - zabbix/zabbix-appliance
  • Zabbix agent - zabbix/zabbix-agent
  • Zabbix server
    • MySQL 数据库支持的 Zabbix server - zabbix/zabbix-server-mysql
    • PostgreSQL 数据库支持的 Zabbix server - zabbix/zabbix-server-pgsql

拉取版本说明 

Zabbix 组件的每个镜像仓库都包含了下列标签:

  • latest - 基于 Alpine Linux 镜像的最新稳定版的 Zabbix 组件;
  • alpine-latest - 基于 Alpine Linux 镜像的最新稳定版的 Zabbix 组件;latest stable version of a Zabbix component based on Alpine Linux image
  • ubuntu-latest - 基于 Ubuntu 镜像的最新稳定版的 Zabbix 组件;latest stable version of a Zabbix component based on Ubuntu image
  • alpine-4.0-latest - 基于 Alpine Linux 镜像的最新次要版本的 Zabbix 4.0 组件;latest minor version of a Zabbix 4.0 component based on Alpine Linux image
  • ubuntu-4.0-latest - 基于 Unbuntu 镜像的最新次要版本的 Zabbix 4.0 组件;latest minor version of a Zabbix 4.0 component based on Ubuntu image
  • alpine-4.0.* - 基于 Alpine Linux 镜像的不同次要版本的 Zabbix 4.0 组件,其中 * 代表 Zabbix 组件的次要版本;
  • ubuntu-4.0.* - 基于 Ubuntu 镜像的不同次要版本的 Zabbix 4.0 组件,其中 * 代表 Zabbix 组件的次要版本。

Docker 安装Zabbix方法 

安装方法一

该方法是通过使用内置 MySQL 数据库、Zabbix server、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java gateway 来运行 Zabbix 应用。

# docker run --name zabbix-appliance -t \      -p 10051:10051 \      -p 80:80 \      -d zabbix/zabbix-appliance:latest

Zabbix 应用实例将 10051/TCP 端口(Zabbix trapper)和80/TCP 端口(HTTP)暴露给主机。

安装方法二

该方法是通过增加了MySQL 数据库支持、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java gateway。

1. 首先,启动空的 MySQL 服务器实例。

# docker run --name mysql-server -t \      -e MYSQL_DATABASE="zabbix" \      -e MYSQL_USER="zabbix" \      -e MYSQL_PASSWORD="zabbix_pwd" \      -e MYSQL_ROOT_PASSWORD="root_pwd" \      -d mysql:5.7 \      --character-set-server=utf8 --collation-server=utf8_bin

2. 其次,启动 Zabbix Java gateway 实例

# docker run --name zabbix-java-gateway -t \      -d zabbix/zabbix-java-gateway:latest

3. 然后,启动 Zabbix server 实例,并将其关联到已创建的 MySQL server 实例。

# docker run --name zabbix-server-mysql -t \      -e DB_SERVER_HOST="mysql-server" \      -e MYSQL_DATABASE="zabbix" \      -e MYSQL_USER="zabbix" \      -e MYSQL_PASSWORD="zabbix_pwd" \      -e MYSQL_ROOT_PASSWORD="root_pwd" \      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \      --link mysql-server:mysql \      --link zabbix-java-gateway:zabbix-java-gateway \      -p 10051:10051 \      -d zabbix/zabbix-server-mysql:latest

Zabbix server 实例将 10051/TCP 端口(Zabbix trapper)暴露给主机。

4. 最后,启动 Zabbix Web 界面,并将其关联到已创建的 MySQL server 和 Zabbix server 实例。

# docker run --name zabbix-web-nginx-mysql -t \      -e DB_SERVER_HOST="mysql-server" \      -e MYSQL_DATABASE="zabbix" \      -e MYSQL_USER="zabbix" \      -e MYSQL_PASSWORD="zabbix_pwd" \      -e MYSQL_ROOT_PASSWORD="root_pwd" \      --link mysql-server:mysql \      --link zabbix-server-mysql:zabbix-server \      -p 80:80 \      -d zabbix/zabbix-web-nginx-mysql:latest

Zabbix web 界面实例将 80/TCP 端口(HTTP)暴露给主机。

安装方法三

该方法是通过增加了PostgreSQL 数据库支持的 Zabbix server、基于 Nginx Web 服务器的 Zabbix Web 界面和 SNMP trap功能。

1. 首先,启动空的 PostgreSQL server 实例。

# docker run --name postgres-server -t \      -e POSTGRES_USER="zabbix" \      -e POSTGRES_PASSWORD="zabbix" \      -e POSTGRES_DB="zabbix_pwd" \      -d postgres:latest

2. 其次,启动 Zabbix snmptraps 实例。

# docker run --name zabbix-snmptraps -t \      -v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \      -v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \      -p 162:162/udp \      -d zabbix/zabbix-snmptraps:latest

Zabbix snmptrap 实例将 162/UDP 端口(SNMP traps)暴露给主机。

3.然后,启动 Zabbix server 实例,并将其关联到已创建的 PostgreSQL server 实例。

# docker run --name zabbix-server-pgsql -t \      -e DB_SERVER_HOST="postgres-server" \      -e POSTGRES_USER="zabbix" \      -e POSTGRES_PASSWORD="zabbix" \      -e POSTGRES_DB="zabbix_pwd" \      -e ZBX_ENABLE_SNMP_TRAPS="true" \      --link postgres-server:postgres \      -p 10051:10051 \      --volumes-from zabbix-snmptraps \      -d zabbix/zabbix-server-pgsql:latest

Zabbix server 实例将 10051/TCP 端口(Zabbix trapper)暴露给主机。

4.最后,启动 Zabbix Web 界面,并将其关联到已创建的 PostgreSQL server 和 Zabbix server 实例。

# docker run --name zabbix-web-nginx-pgsql -t \      -e DB_SERVER_HOST="postgres-server" \      -e POSTGRES_USER="zabbix" \      -e POSTGRES_PASSWORD="zabbix" \      -e POSTGRES_DB="zabbix_pwd" \      --link postgres-server:postgres \      --link zabbix-server-pgsql:zabbix-server \      -p 443:443 \      -v /etc/ssl/nginx:/etc/ssl/nginx:ro \      -d zabbix/zabbix-web-nginx-pgsql:latest

Zabbix web 界面实例将 443/TCP 端口(HTTPS)暴露给主机。
/etc/ssl/nginx 目录必须包含具有所需名称的证书。.

总结

Zabbix作为老牌的开源监控系统,作为企业IT的话,可以通过二次开发,打造成为属于您企业自己的监控系统。