Создаем директорию для контейнера zabbix
# mkdir /mnt/data/docker_projects/zabbix
# mkdir /mnt/data/docker_projects/zabbix
Создаем конфигурацию PostgreSQL
# nano /mnt/data/docker_projects/zabbix/postgresql.conf
listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 1GB
effective_cache_size = 3GB
maintenance_work_mem = 256MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 64MB
min_wal_size = 1GB
max_wal_size = 4GB
# nano /mnt/data/docker_projects/zabbix/postgresql.conf
listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 1GB
effective_cache_size = 3GB
maintenance_work_mem = 256MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 64MB
min_wal_size = 1GB
max_wal_size = 4GB
В интерфейсе portainer переходим в окружение local.
Выбираем пункты меню Stacks --> + Add Stack.
Прописываем имя в поле Name - zabbix/
Оставляем выбор метода задания параметров Web editor.
В поле редактора конфига вносим конфигурацию:
x-logging: &default-logging
driver: json-file
options:
max-size: "50m"
max-file: "3"
services:
postgresql:
image: postgres:16-alpine
container_name: zabbix-postgres
restart: unless-stopped
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
volumes:
- /mnt/data/docker_projects/zabbix/data_pgsql:/var/lib/postgresql/data:z
- /mnt/data/docker_projects/zabbix/postgresql.conf:/etc/postgresql/postgresql.conf
networks:
- zabbix-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U zabbix -d zabbix"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
cpus: 1.5
mem_limit: 2g
logging: *default-logging
zabbix-server:
image: zabbix/zabbix-server-pgsql:ubuntu-7.0-latest
container_name: zabbix-server
restart: unless-stopped
environment:
TZ: Europe/Samara
DB_SERVER_HOST: postgresql
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
ZBX_CACHESIZE: 512M
ZBX_HISTORYCACHESIZE: 128M
ZBX_VALUECACHESIZE: 256M
ZBX_STARTPOLLERS: 20
ZBX_STARTTRAPPERS: 10
ZBX_STARTDISCOVERERS: 5
volumes:
- /mnt/data/docker_projects/zabbix/data_zabbix_server:/var/lib/zabbix:z
- /etc/localtime:/etc/localtime:ro
ports:
- "10051:10051"
depends_on:
postgresql:
condition: service_healthy
networks:
- zabbix-net
cpus: 1.5
mem_limit: 2g
logging: *default-logging
zabbix-web:
image: zabbix/zabbix-web-apache-pgsql:ubuntu-7.0-latest
container_name: zabbix-web
restart: unless-stopped
environment:
PHP_TZ: Europe/Samara
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: postgresql
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
ports:
- "8080:8080"
depends_on:
zabbix-server:
condition: service_started
postgresql:
condition: service_healthy
networks:
- zabbix-net
cpus: 0.5
mem_limit: 512m
logging: *default-logging
networks:
zabbix-net:
driver: bridge
Выбираем пункты меню Stacks --> + Add Stack.
Прописываем имя в поле Name - zabbix/
Оставляем выбор метода задания параметров Web editor.
В поле редактора конфига вносим конфигурацию:
x-logging: &default-logging
driver: json-file
options:
max-size: "50m"
max-file: "3"
services:
postgresql:
image: postgres:16-alpine
container_name: zabbix-postgres
restart: unless-stopped
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
volumes:
- /mnt/data/docker_projects/zabbix/data_pgsql:/var/lib/postgresql/data:z
- /mnt/data/docker_projects/zabbix/postgresql.conf:/etc/postgresql/postgresql.conf
networks:
- zabbix-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U zabbix -d zabbix"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
cpus: 1.5
mem_limit: 2g
logging: *default-logging
zabbix-server:
image: zabbix/zabbix-server-pgsql:ubuntu-7.0-latest
container_name: zabbix-server
restart: unless-stopped
environment:
TZ: Europe/Samara
DB_SERVER_HOST: postgresql
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
ZBX_CACHESIZE: 512M
ZBX_HISTORYCACHESIZE: 128M
ZBX_VALUECACHESIZE: 256M
ZBX_STARTPOLLERS: 20
ZBX_STARTTRAPPERS: 10
ZBX_STARTDISCOVERERS: 5
volumes:
- /mnt/data/docker_projects/zabbix/data_zabbix_server:/var/lib/zabbix:z
- /etc/localtime:/etc/localtime:ro
ports:
- "10051:10051"
depends_on:
postgresql:
condition: service_healthy
networks:
- zabbix-net
cpus: 1.5
mem_limit: 2g
logging: *default-logging
zabbix-web:
image: zabbix/zabbix-web-apache-pgsql:ubuntu-7.0-latest
container_name: zabbix-web
restart: unless-stopped
environment:
PHP_TZ: Europe/Samara
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: postgresql
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: SecurePassword123
POSTGRES_DB: zabbix
ports:
- "8080:8080"
depends_on:
zabbix-server:
condition: service_started
postgresql:
condition: service_healthy
networks:
- zabbix-net
cpus: 0.5
mem_limit: 512m
logging: *default-logging
networks:
zabbix-net:
driver: bridge
Открываем порт 8080 для zabbix:
# firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload
# firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload
Открываем WEB-интерфейс http://IP:8080/
Логин / пароль по умолчанию: Admin / zabbix
Сразу меняем пароль в разделе User settings --> Profile --> Change password // новый_пароль
Перезаходим в Zabbix Admin / новый_пароль
Zabbix агент на хостовой машине:
Добавить репозиторий Zabbix на хостовую машину и настроить агента zabbix
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm
# dnf clean all
# dnf install zabbix-agent -y
Настроить конфигурацию агента, что бы он в ативном режиме отправлял данные на сервер.
# nano /etc/zabbix_agentd.conf
Главные директивы:
ServerActive=127.0.0.1:10051
Hostname=rossyp
RefreshActiveChecks=60
Заводим агента Zabbix в работу:
# systemctl enable zabbix-agent
# systemctl start zabbix-agent
# systemctl status zabbix-agent
В Интерфейсе Zabbix необходимо корректно прописать host, на который будут поступать данные от агента.
В активном режиме (Active Mode) агент сам инициирует соединение. Вот так прописывается хост:
Data collection → Hosts → Create host.
Host name: точное значение параметра Hostname из конфига агента rossyp.
Templates: шаблон Linux by Zabbix agent active.
Host groups: Linux servers.
Логин / пароль по умолчанию: Admin / zabbix
Сразу меняем пароль в разделе User settings --> Profile --> Change password // новый_пароль
Перезаходим в Zabbix Admin / новый_пароль
Zabbix агент на хостовой машине:
Добавить репозиторий Zabbix на хостовую машину и настроить агента zabbix
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm
# dnf clean all
# dnf install zabbix-agent -y
Настроить конфигурацию агента, что бы он в ативном режиме отправлял данные на сервер.
# nano /etc/zabbix_agentd.conf
Главные директивы:
ServerActive=127.0.0.1:10051
Hostname=rossyp
RefreshActiveChecks=60
Заводим агента Zabbix в работу:
# systemctl enable zabbix-agent
# systemctl start zabbix-agent
# systemctl status zabbix-agent
В Интерфейсе Zabbix необходимо корректно прописать host, на который будут поступать данные от агента.
В активном режиме (Active Mode) агент сам инициирует соединение. Вот так прописывается хост:
Data collection → Hosts → Create host.
Host name: точное значение параметра Hostname из конфига агента rossyp.
Templates: шаблон Linux by Zabbix agent active.
Host groups: Linux servers.
Комментариев нет:
Отправить комментарий