项目方案:Docker部署的Zabbix与AD域控集成

1. 项目背景

在企业网络中,集中化的监控系统对于确保系统的可靠性和稳定性至关重要。Zabbix是一个广泛使用的开源监控解决方案,可以通过监控、警报和可视化实时地查看和分析网络基础设施的状态。而在企业环境中,许多组织使用Active Directory(AD)作为身份验证和授权的中心,因此将Zabbix与AD域控集成可以提供更强大的功能和便捷性。

本项目旨在提供一个方案,通过Docker部署的Zabbix与AD域控集成,实现以下目标:

  • 实现单点登录,用户可以使用AD凭据登录到Zabbix系统
  • 同步AD用户和组信息到Zabbix中,实现基于AD的用户和组的权限管理
  • 自动发现AD中的计算机设备,并将其添加到Zabbix的监控范围中

2. 解决方案

2.1 Docker部署Zabbix

为了实现方便的部署和管理,我们决定使用Docker来部署Zabbix系统。通过Docker,我们可以快速部署Zabbix容器,并通过Docker Compose来管理多个容器的互相依赖关系。

以下是一个示例的Docker Compose文件,用于部署Zabbix容器:

version: '3'

services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    ports:
      - 80:80
    environment:
      - DB_SERVER_HOST=mysql-server
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix
    depends_on:
      - mysql-server

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    ports:
      - 8080:8080
    environment:
      - DB_SERVER_HOST=mysql-server
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix
    depends_on:
      - mysql-server

  mysql-server:
    image: mysql:latest
    environment:
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix

2.2 AD域控集成

为了实现与AD域控的集成,我们将使用Zabbix提供的LDAP认证和自动发现功能。通过配置Zabbix的LDAP设置,可以实现AD用户登录和AD组的权限管理。通过自动发现功能,可以自动添加AD中的计算机设备到Zabbix的监控范围中。

以下是一个示例的Zabbix服务器配置文件(zabbix_server.conf),用于配置AD域控集成:

# Enable LDAP authentication
# 设置为1以启用LDAP认证
LDAPAuthentication=1

# LDAP server URL
# AD域控的LDAP服务器URL
LDAPURI=ldap://ad.example.com

# LDAP search base
# LDAP搜索的基础DN
LDAPBaseDN=dc=example,dc=com

# LDAP bind DN
# LDAP绑定DN
LDAPBindDN=cn=admin,dc=example,dc=com

# LDAP bind password
# LDAP绑定密码
LDAPBindPassword=your_password

# LDAP filter for user authentication
# 用于用户身份验证的LDAP过滤器
LDAPUserFilter=(sAMAccountName={0})

# LDAP filter for group authorization
# 用于组授权的LDAP过滤器
LDAPGroupFilter=(member={0})

# LDAP attribute for the full name of the user
# 用户全名的LDAP属性
LDAPFullNameAttribute=cn

# Enable auto-discovery of hosts from LDAP
# 设置为1以启用从LDAP自动发现主机
LDAPOldHosts=1

# LDAP server URL for auto-discovery
# 自动发现主机的LDAP服务器URL
LDAPOldURI=ldap://ad.example.com

# LDAP search base for auto-discovery
# 自动发现的LDAP搜索基础DN
LDAPOldBaseDN=dc=example,dc=com

# LDAP bind DN for auto-discovery
# 自动发现的LDAP绑定DN
LDAPOldBindDN=cn=admin,dc=example,dc=com

# LDAP bind password for auto-discovery
# 自动发现的LDAP绑定密码
LDAPOldBindPassword=your_password

# LDAP