系统与平台搭建
- 系统配置:
系统: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)
- 添加模板
- 添加主机群组
- 添加主机
- 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 :卸载客户端
平台添加被监控终端主机
- 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
平台添加终端主机
- 添加告警
- 创建告警媒介
- 定义消息模板
问题
问题恢复
- 关联用户
- 创建用户
- 设置用户告警媒介
- 设置角色权限
- 创建告警动作