zabbix搭建设置

系统与平台搭建

  • 系统配置:

系统:Ubuntu22.4

CPU:16核

MEM:32G

磁盘:100+400G

  • ubuntu系统下载地址:

https://releases.ubuntu.com/jammy/ubuntu-22.04.5-live-server-amd64.iso

  • 安装docker环境:(参考官网)
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 定义docker镜像加速源
# docker快速源
cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
      "https://docker.m.daocloud.io",
      "https://docker.unsee.tech",
      "https://docker.1panel.live"
      ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "data-root":"/data/docker",
    "dns": [
            "223.5.5.5",
            "1.1.1.1",
            "114.114.114.114"
    ],
    "default-address-pools": [
        {
            "base": "172.31.0.0/16",
            "size": 24
        }
    ]
}
EOF
  • 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
  • 创建数据持久化目录
mkdir -p ./zbx_env/var/lib/postgresql/data
mkdir -p ./zbx_env/etc/postgresql
mkdir -p ./zbx_env/etc/zabbix
mkdir -p ./zbx_env/etc/zabbix/web
mkdir -p ./zbx_env/usr/lib/zabbix/externalscripts
mkdir -p ./zbx_env/usr/lib/zabbix/alertscripts
chmod -R 777 ./zbx_env
  • 容器编排
#===============compose.yaml==
services:
  # 1. PostgreSQL 数据库
  postgres-server:
    image: postgres:17-alpine
    container_name: postgres-server
    restart: unless-stopped
    volumes:
      # 持久化数据
      #- ./zbx_env/var/lib/postgresql/data:/var/lib/postgresql/data:rw
      # 【新增】持久化配置文件,调优 postgresql.conf 就在这个目录下
      #- ./zbx_env/etc/postgresql:/etc/postgresql:rw
    environment:
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
    # 使用自定义配置文件启动的命令(确保读取挂载的配置)
    #command: ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]
    networks:
      - zabbix-net
  # 2. Zabbix Server
  zabbix-server-pgsql:
    image: zabbix/zabbix-server-pgsql
    container_name: zabbix-server-pgsql
    restart: unless-stopped
    depends_on:
      - postgres-server
    volumes:
      # 【核心】持久化整个配置目录,调优 zabbix_server.conf 就在这里
      #- ./zbx_env/etc/zabbix:/etc/zabbix:rw
      - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:rw
      - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:rw
    environment:
      DB_SERVER_HOST: postgres-server
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
    ports:
      - "10051:10051"
    networks:
      - zabbix-net
  # 3. Zabbix Web
  zabbix-web-nginx-pgsql:
    image: zabbix/zabbix-web-nginx-pgsql
    container_name: zabbix-web-nginx-pgsql
    restart: unless-stopped
    depends_on:
      - zabbix-server-pgsql
    volumes:
      #- ./zbx_env/etc/zabbix/web/zabbix.conf.php:/etc/zabbix/web/zabbix.conf.php:rw
    ports:
      - "80:8080"
    environment:
      ZBX_SERVER_HOST: zabbix-server-pgsql
      DB_SERVER_HOST: postgres-server
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
      PHP_TZ: Asia/Shanghai
    networks:
      - zabbix-net
  # 4. Zabbix Agent
  zabbix-agent:
    image: zabbix/zabbix-agent
    container_name: zabbix-agent
    restart: unless-stopped
    volumes:
      - /:/host:ro
      - /var/run:/var/run:rw
    environment:
      - ZBX_HOSTNAME=Zabbix-Server
      - ZBX_SERVER_HOST=zabbix-server-pgsql
    networks:
      - zabbix-net
networks:
  zabbix-net:
    name: zabbix-net
    driver: bridge
    ipam:
      config:
        - subnet: 172.31.100.0/24

# 复制初始配置文件至本地目录
#=========
docker ps
docker cp zabbix-server-pgsql:/etc/zabbix/zabbix_server.conf ./zbx_env/etc/zabbix/zabbix_server.conf
docker cp postgres-server:/var/lib/postgresql/data/postgresql.conf ./zbx_env/etc/postgresql/postgresql.conf
docker cp postgres-server:/var/lib/postgresql/data/pg_hba.conf ./zbx_env/etc/postgresql/pg_hba.conf
docker cp zabbix-web-nginx-pgsql:/etc/zabbix/web/zabbix.conf.php ./zbx_env/etc/zabbix/web/zabbix.conf.php
chmod -R 777 ./zbx_env

复制完配置文件后取消compose.yaml中的持久化注释,重新生成启动容器。

Zabbix平台操作

  • 添加主机

登录平台:(Admin/zabbix)

  • 添加模板
  • 添加主机群组
  • 添加主机
  1. Agent代理(被监控设备上需要安装)

终端设置

配置文件(zabbix_agentd.conf)

# 服务器IP地址
Server=10.51.1.78
ServerActive=10.51.1.78
#终端名称
Hostname=testwin

终端安装启动服务

C:\zabbix_agent\bin\zabbix_agentd.exe -c C:\zabbix_agent\conf\zabbix_agentd.conf -i
C:\zabbix_agent\bin\zabbix_agentd.exe -c C:\zabbix_agent\conf\zabbix_agentd.conf -s
-c :指定配置文件所有位置
-i :安装客户端
-s :启动客户端
-x :停止客户端
-d :卸载客户端

平台添加被监控终端主机

  1. SNMP协议 (网络设备上设置开启)

终端设置(配置snmp)

snmp-agent
#配置只读团体名
snmp-agent community read cipher hcxc6688
snmp-agent sys-info version v2c v3
#指定snmp通讯vlan
snmp-agent protocol source-interface Vlanif100

平台添加终端主机

  • 添加告警
  • 创建告警媒介
  • 定义消息模板

问题

问题恢复

  • 关联用户
  • 创建用户
  • 设置用户告警媒介
  • 设置角色权限
  • 创建告警动作
← 返回首页 进入后台