...
Решение построено на одном Zabbix Agent с логическим разделением метрик по хостам в Zabbix.
| Info |
|---|
|
...
Критично:
- Agent работает от пользователя
zabbix - Скрипты должны быть executable для группы
zabbix - Agent слушает только
127.0.0.1(закрыт от сети)
...
1.2. Установка компонентов
| Code Block |
|---|
apt install -y zabbix-server-mysql zabbix-sql-scripts zabbix-agent zabbix-frontend-php php8.3-mysql |
...
1.3. Создание БД для Zabbix
mysql
| Code Block |
|---|
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
EXIT; |
...
⚠️ Замените STRONG_PASSWORD_HERE на реальный пароль.
1.4. Импорт схемы
| Code Block |
|---|
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix |
...
Введите пароль пользователя zabbix.
...
1.5. Конфигурация Zabbix Server
| Code Block |
|---|
nano /etc/zabbix/zabbix_server.conf |
...
Найти и задать:
| Code Block |
|---|
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=STRONG_PASSWORD_HERE |
...
1.6. Запуск сервисов
| Code Block |
|---|
systemctl restart zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
systemctl status zabbix-server |
...
Ожидаемо: active (running)
...
2. Настройка Apache для Web-интерфейса
2.1. Конфигурация порта
| Code Block |
|---|
nano /etc/apache2/ports.conf |
...
Добавить (если нет):
| Code Block |
|---|
Listen 8080 |
...
2.2. VirtualHost для Zabbix
| Code Block |
|---|
nano /etc/apache2/sites-available/zabbix.conf |
...
| Code Block |
|---|
<VirtualHost *:8080>
ServerName zabbix.local
DocumentRoot /usr/share/zabbix
<Directory /usr/share/zabbix>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /usr/share/zabbix/conf>
Require all denied
</Directory>
ErrorLog ${APACHE_LOG_DIR}/zabbix_error.log
CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combined
</VirtualHost> |
...
2.3. Включение PHP-FPM
| Code Block |
|---|
a2enmod proxy_fcgi setenvif rewrite
a2enconf php8.3-fpm
a2ensite zabbix
systemctl restart php8.3-fpm
systemctl reload apache2 |
...
2.4. Настройка PHP
| Code Block |
|---|
nano /etc/php/8.3/fpm/php.ini |
...
Изменить:
post_max_size
...
=
...
16M
...
upload_max_filesize
...
=
...
16M
...
max_execution_time
...
=
...
300
...
max_input_time
...
=
...
300
...
| Code Block |
|---|
systemctl restart php8.3-fpm |
...
2.5. Генерация locale (если нужно)
| Code Block |
|---|
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
systemctl reload apache2 |
...
...
3. Web Setup Wizard
Открыть в браузере: http://YOUR_SERVER_IP:8080
...
4.1. Ограничение сетевого доступа
| Code Block |
|---|
nano /etc/zabbix/zabbix_agentd.conf |
...
ListenIP=127.0.0.1
Server=127.0.0.1
ServerActive=127.0.0.1
EnableRemoteCommands=0
4.2. Запрет небезопасных команд
| Code Block |
|---|
nano /etc/zabbix/zabbix_agentd.conf |
...
Убедиться:
DenyKey=system.run[*]
Или явно разрешить только для ABillS (см. раздел 8.3).
| Code Block |
|---|
systemctl restart zabbix-agent |
...
4.3. Проверка
| Code Block |
|---|
ss -tulpn | grep 10050 |
...
Ожидаемо: 127.0.0.1:10050 (НЕ 0.0.0.0)
...
5.1. Проверка наличия скриптов
| Code Block |
|---|
ls -l /usr/abills/misc/zabbix/ |
...
Ожидаемо:
zabbix_users.pl
zabbix_internet_online.pl
zabbix_payments_types.pl
5.2. Установка прав доступа (КРИТИЧНО)
Проблема: по умолчанию скрипты принадлежат root:root с правами 644 — Zabbix Agent не может их выполнить.
Решение:
| Code Block |
|---|
chgrp zabbix /usr/abills/misc/zabbix/*.pl
chmod 750 /usr/abills/misc/zabbix/*.pl |
...
Проверка:
| Code Block |
|---|
ls -l /usr/abills/misc/zabbix/zabbix_users.pl |
...
Ожидаемо: -rwxr-x--- root zabbix
5.3. Создание UserParameter
Создать файл:
bash
| Code Block |
|---|
nano |
...
/etc/zabbix/zabbix_agentd.d/abills_users.conf |
Вставить:
| Code Block |
|---|
UserParameter=abills.UserAll.value,/usr/abills/misc/zabbix/zabbix_users.pl total
UserParameter=abills.UserDisabled.value,/usr/abills/misc/zabbix/zabbix_users.pl disabled
UserParameter=abills.UserDebt.value,/usr/abills/misc/zabbix/zabbix_users.pl debt
UserParameter=abills.UserCredit.value,/usr/abills/misc/zabbix/zabbix_users.pl credit
UserParameter=abills.UserOnline.value,/usr/abills/misc/zabbix/zabbix_internet_online.pl online
UserParameter=abills.UserReconnect.value,/usr/abills/misc/zabbix/zabbix_internet_online.pl reconnect
UserParameter=abills.UserRecovery.value,/usr/abills/misc/zabbix/zabbix_internet_online.pl recovery
UserParameter=abills.UserZapped.value,/usr/abills/misc/zabbix/zabbix_internet_online.pl zapped |
⚠️ Примечание: это не стандартная конфигурация ABillS, добавляется вручную.
...
Если в zabbix_agentd.conf явно запрещены все команды:
| Code Block |
|---|
nano /etc/zabbix/zabbix_agentd.conf |
...
Добавить ДО строки DenyKey=system.run[*]:
...
⚠️ Внимание: порядок важен — AllowKey должен быть ДО DenyKey.
5.5. Перезапуск агента
| Code Block |
|---|
systemctl restart zabbix-agent |
...
5.6. Локальная проверка
| Code Block |
|---|
sudo -u zabbix /usr/abills/misc/zabbix/zabbix_users.pl total |
...
Ожидаемо: число (например, 17100)
...
Если sudo -u zabbix не работает, проверить права на каталоги:
| Code Block |
|---|
namei -l /usr/abills/misc/zabbix/zabbix_users.pl |
...
Все каталоги должны иметь x (execute) для group или others.
...
Скрипты должны быть доступны только root и zabbix:
| Code Block |
|---|
chmod 750 /usr/abills/misc/zabbix/*.pl
chown root:zabbix /usr/abills/misc/zabbix/*.pl |
...
НЕ использовать 777 или 755.
...
1. Zabbix Server не стартует
Проверка:
| Code Block |
|---|
systemctl status zabbix-server
journalctl -u zabbix-server -n 50 |
...
Частые причины:
- Неверный пароль БД в
/etc/zabbix/zabbix_server.conf - БД не создана или схема не импортирована
...
Проверка в Web: Monitoring → Hosts → Abills → Items → смотреть Error.
Локальная проверка:
| Code Block |
|---|
zabbix_agentd -t abills.UserAll.value |
...
Частые причины:
- UserParameter не создан (
/etc/zabbix/zabbix_agentd.d/abills_users.conf) - Агент не перезапущен после изменений
- Права доступа к скриптам (см. 8.2)
3. Web-интерфейс не открывается
Проверка:
| Code Block |
|---|
ss -tulpn | grep 8080
systemctl status apache2
systemctl status php8.3-fpm |
...
Частые причины:
- Apache не слушает 8080 (см. 5.1)
- VirtualHost не включен (
a2ensite zabbix) - PHP-FPM не запущен
...