Установка и настройка Zabbix для мониторинга: различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Новая страница: «= Установка и настройка Zabbix для мониторинга = == 1. Подготовка системы == * Войдите в систем…»
 
Нет описания правки
 
Строка 6: Строка 6:
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль.


== 2. Установка зависимостей ===
== 2. Установка зависимостей ==


=== Обновление системы ===
=== Обновление системы ===


1. Обновите систему:
1. Обновите систему:
<code>sudo apt update</code>
<pre>sudo apt update</pre>


2. Установите необходимые пакеты:
2. Установите необходимые пакеты:
<code>sudo apt install -y wget curl gnupg2 software-properties-common</code>
<pre>sudo apt install -y wget curl gnupg2 software-properties-common</pre>


=== Установка Apache ===
=== Установка Apache ===


1. Установите Apache:
1. Установите Apache:
<code>sudo apt install -y apache2</code>
<pre>sudo apt install -y apache2</pre>


2. Запустите и включите автозапуск:
2. Запустите и включите автозапуск:
<code>sudo systemctl start apache2</code>
<pre>sudo systemctl start apache2</pre>
<code>sudo systemctl enable apache2</code>
<pre>sudo systemctl enable apache2</pre>


3. Включите необходимые модули:
3. Включите необходимые модули:
<code>sudo a2enmod rewrite</code>
<pre>sudo a2enmod rewrite</pre>
<code>sudo a2enmod ssl</code>
<pre>sudo a2enmod ssl</pre>


=== Установка MySQL ===
=== Установка MySQL ===


1. Установите MySQL:
1. Установите MySQL:
<code>sudo apt install -y mysql-server</code>
<pre>sudo apt install -y mysql-server</pre>


2. Запустите и включите автозапуск:
2. Запустите и включите автозапуск:
<code>sudo systemctl start mysql</code>
<pre>sudo systemctl start mysql</pre>
<code>sudo systemctl enable mysql</code>
<pre>sudo systemctl enable mysql</pre>


3. Настройте безопасность MySQL:
3. Настройте безопасность MySQL:
<code>sudo mysql_secure_installation</code>
<pre>sudo mysql_secure_installation</pre>


=== Установка PHP ===
=== Установка PHP ===


1. Установите PHP и необходимые модули:
1. Установите PHP и необходимые модули:
<code>sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath php-ldap</code>
<pre>sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath php-ldap</pre>


2. Настройте PHP:
2. Настройте PHP:
<code>sudo nano /etc/php/8.1/apache2/php.ini</code>
<pre>sudo nano /etc/php/8.1/apache2/php.ini</pre>


3. Измените параметры:
3. Измените параметры:
<code>max_execution_time = 300
<pre>max_execution_time = 300
memory_limit = 256M
memory_limit = 256M
post_max_size = 32M
post_max_size = 32M
upload_max_filesize = 16M
upload_max_filesize = 16M
date.timezone = Europe/Moscow
date.timezone = Europe/Moscow
</code>
</pre>


4. Перезапустите Apache:
4. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
<pre>sudo systemctl restart apache2</pre>


== 3. Установка Zabbix ===
== 3. Установка Zabbix ==


=== Добавление репозитория Zabbix ===
=== Добавление репозитория Zabbix ===


1. Скачайте и установите ключ репозитория:
1. Скачайте и установите ключ репозитория:
<code>wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb</code>
<pre>wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb</pre>
<code>sudo dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb</code>
<pre>sudo dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb</pre>


2. Обновите список пакетов:
2. Обновите список пакетов:
<code>sudo apt update</code>
<pre>sudo apt update</pre>


=== Установка Zabbix Server ===
=== Установка Zabbix Server ===


1. Установите Zabbix Server, Frontend и Agent:
1. Установите Zabbix Server, Frontend и Agent:
<code>sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent</code>
<pre>sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent</pre>


2. Проверьте установленные пакеты:
2. Проверьте установленные пакеты:
<code>dpkg -l | grep zabbix</code>
<pre>dpkg -l | grep zabbix</pre>


== 4. Настройка базы данных ===
== 4. Настройка базы данных ==


=== Создание базы данных ===
=== Создание базы данных ===


1. Подключитесь к MySQL:
1. Подключитесь к MySQL:
<code>sudo mysql -u root -p</code>
<pre>sudo mysql -u root -p</pre>


2. Создайте базу данных и пользователя:
2. Создайте базу данных и пользователя:
<code>CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
<pre>CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
EXIT;</code>
EXIT;</pre>


=== Импорт схемы базы данных ===
=== Импорт схемы базы данных ===


1. Импортируйте схему базы данных:
1. Импортируйте схему базы данных:
<code>sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix</code>
<pre>sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix</pre>


2. Проверьте импорт:
2. Проверьте импорт:
<code>mysql -u zabbix -p -e "USE zabbix; SHOW TABLES;"</code>
<pre>mysql -u zabbix -p -e "USE zabbix; SHOW TABLES;"</pre>


== 5. Настройка Zabbix Server ===
== 5. Настройка Zabbix Server ==


=== Конфигурация сервера ===
=== Конфигурация сервера ===


1. Отредактируйте конфигурацию Zabbix Server:
1. Отредактируйте конфигурацию Zabbix Server:
<code>sudo nano /etc/zabbix/zabbix_server.conf</code>
<pre>sudo nano /etc/zabbix/zabbix_server.conf</pre>


2. Настройте основные параметры:
2. Настройте основные параметры:
<code>DBHost=localhost
<pre>DBHost=localhost
DBName=zabbix
DBName=zabbix
DBUser=zabbix
DBUser=zabbix
Строка 115: Строка 115:
DBPort=3306
DBPort=3306


# Настройки производительности
\# Настройки производительности
StartPollers=5
StartPollers=5
StartPollersUnreachable=1
StartPollersUnreachable=1
Строка 125: Строка 125:
StartEscalators=1
StartEscalators=1


# Настройки кэша
\# Настройки кэша
CacheSize=8M
CacheSize=8M
CacheUpdateFrequency=60
CacheUpdateFrequency=60


# Настройки логирования
\# Настройки логирования
LogFile=/var/log/zabbix/zabbix_server.log
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=10
LogFileSize=10
DebugLevel=3
DebugLevel=3
</code>
</pre>


=== Запуск Zabbix Server ===
=== Запуск Zabbix Server ===


1. Запустите и включите автозапуск:
1. Запустите и включите автозапуск:
<code>sudo systemctl start zabbix-server</code>
<pre>sudo systemctl start zabbix-server</pre>
<code>sudo systemctl enable zabbix-server</code>
<pre>sudo systemctl enable zabbix-server</pre>


2. Проверьте статус:
2. Проверьте статус:
<code>sudo systemctl status zabbix-server</code>
<pre>sudo systemctl status zabbix-server</pre>


3. Проверьте логи:
3. Проверьте логи:
<code>sudo tail -f /var/log/zabbix/zabbix_server.log</code>
<pre>sudo tail -f /var/log/zabbix/zabbix_server.log</pre>


== 6. Настройка веб-интерфейса ===
== 6. Настройка веб-интерфейса ==


=== Настройка Apache ===
=== Настройка Apache ===


1. Создайте конфигурацию для Zabbix:
1. Создайте конфигурацию для Zabbix:
<code>sudo nano /etc/apache2/sites-available/zabbix.conf</code>
<pre>sudo nano /etc/apache2/sites-available/zabbix.conf</pre>


2. Добавьте конфигурацию:
2. Добавьте конфигурацию:
<code><VirtualHost *:80>
<pre><VirtualHost *:80>
     ServerName zabbix.example.com
     ServerName zabbix.example.com
     DocumentRoot /usr/share/zabbix
     DocumentRoot /usr/share/zabbix
Строка 177: Строка 177:
     CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combined
     CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combined
</VirtualHost>
</VirtualHost>
</code>
</pre>


3. Включите сайт:
3. Включите сайт:
<code>sudo a2ensite zabbix</code>
<pre>sudo a2ensite zabbix</pre>
<code>sudo a2dissite 000-default</code>
<pre>sudo a2dissite 000-default</pre>


4. Перезапустите Apache:
4. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
<pre>sudo systemctl restart apache2</pre>


=== Настройка PHP для Zabbix ===
=== Настройка PHP для Zabbix ===


1. Создайте конфигурацию PHP для Zabbix:
1. Создайте конфигурацию PHP для Zabbix:
<code>sudo nano /etc/php/8.1/apache2/conf.d/zabbix.ini</code>
<pre>sudo nano /etc/php/8.1/apache2/conf.d/zabbix.ini</pre>


2. Добавьте настройки:
2. Добавьте настройки:
<code>max_execution_time = 300
<pre>max_execution_time = 300
memory_limit = 128M
memory_limit = 128M
post_max_size = 16M
post_max_size = 16M
Строка 198: Строка 198:
max_input_time = 300
max_input_time = 300
date.timezone = Europe/Moscow
date.timezone = Europe/Moscow
</code>
</pre>


3. Перезапустите Apache:
3. Перезапустите Apache:
<code>sudo systemctl restart apache2</code>
<pre>sudo systemctl restart apache2</pre>


== 7. Первоначальная настройка ===
== 7. Первоначальная настройка ==


=== Веб-установка ===
=== Веб-установка ===


1. Откройте браузер и перейдите по адресу:
1. Откройте браузер и перейдите по адресу:
<code>http://your-server-ip/zabbix</code>
<pre>http://your-server-ip/zabbix</pre>


2. Нажмите "Next step" на странице приветствия
2. Нажмите "Next step" на странице приветствия
Строка 248: Строка 248:
* Измените пароль
* Измените пароль


== 8. Настройка мониторинга ===
== 8. Настройка мониторинга ==


=== Добавление хостов ===
=== Добавление хостов ===
Строка 300: Строка 300:
4. Нажмите "Add" для создания действия
4. Нажмите "Add" для создания действия


== 9. Установка Zabbix Agent ===
== 9. Установка Zabbix Agent ==


=== Установка на удаленном хосте ===
=== Установка на удаленном хосте ===


1. Установите Zabbix Agent:
1. Установите Zabbix Agent:
<code>sudo apt install -y zabbix-agent</code>
<pre>sudo apt install -y zabbix-agent</pre>


2. Настройте агент:
2. Настройте агент:
<code>sudo nano /etc/zabbix/zabbix_agentd.conf</code>
<pre>sudo nano /etc/zabbix/zabbix_agentd.conf</pre>


3. Измените параметры:
3. Измените параметры:
<code>Server=192.168.1.100
<pre>Server=192.168.1.100
ServerActive=192.168.1.100
ServerActive=192.168.1.100
Hostname=client-hostname
Hostname=client-hostname
</code>
</pre>


4. Запустите агент:
4. Запустите агент:
<code>sudo systemctl start zabbix-agent</code>
<pre>sudo systemctl start zabbix-agent</pre>
<code>sudo systemctl enable zabbix-agent</code>
<pre>sudo systemctl enable zabbix-agent</pre>


=== Настройка файрвола ===
=== Настройка файрвола ===


1. Разрешите порт Zabbix Agent:
1. Разрешите порт Zabbix Agent:
<code>sudo ufw allow 10050/tcp</code>
<pre>sudo ufw allow 10050/tcp</pre>


2. Проверьте статус:
2. Проверьте статус:
<code>sudo ufw status</code>
<pre>sudo ufw status</pre>


== 10. Настройка уведомлений ===
== 10. Настройка уведомлений ==


=== Настройка email уведомлений ===
=== Настройка email уведомлений ===
Строка 353: Строка 353:
4. Нажмите "Add"
4. Нажмите "Add"


== 11. Настройка дашбордов ===
== 11. Настройка дашбордов ==


=== Создание дашборда ===
=== Создание дашборда ===
Строка 383: Строка 383:
* Links
* Links


== 12. Резервное копирование ===
== 12. Резервное копирование ==


=== Создание скрипта резервного копирования ===
=== Создание скрипта резервного копирования ===


1. Создайте скрипт резервного копирования:
1. Создайте скрипт резервного копирования:
<code>sudo nano /usr/local/bin/zabbix-backup.sh</code>
<pre>sudo nano /usr/local/bin/zabbix-backup.sh</pre>


2. Добавьте содержимое:
2. Добавьте содержимое:
<code>#!/bin/bash
<pre>\#!/bin/bash


BACKUP_DIR="/backup/zabbix"
BACKUP_DIR="/backup/zabbix"
DATE=$(date +%Y%m%d_%H%M%S)
DATE=$(date +%Y%m%d_%H%M%S)


# Создание директории для бэкапа
\# Создание директории для бэкапа
mkdir -p $BACKUP_DIR
mkdir -p $BACKUP_DIR


# Резервное копирование базы данных
\# Резервное копирование базы данных
mysqldump -u zabbix -p'zabbix_password' zabbix > $BACKUP_DIR/zabbix-db-$DATE.sql
mysqldump -u zabbix -p'zabbix_password' zabbix > $BACKUP_DIR/zabbix-db-$DATE.sql


# Сжатие SQL файла
\# Сжатие SQL файла
gzip $BACKUP_DIR/zabbix-db-$DATE.sql
gzip $BACKUP_DIR/zabbix-db-$DATE.sql


# Резервное копирование конфигурации
\# Резервное копирование конфигурации
tar -czf $BACKUP_DIR/zabbix-config-$DATE.tar.gz -C /etc zabbix
tar -czf $BACKUP_DIR/zabbix-config-$DATE.tar.gz -C /etc zabbix


# Резервное копирование веб-файлов
\# Резервное копирование веб-файлов
tar -czf $BACKUP_DIR/zabbix-web-$DATE.tar.gz -C /usr/share zabbix
tar -czf $BACKUP_DIR/zabbix-web-$DATE.tar.gz -C /usr/share zabbix


# Удаление старых бэкапов (старше 7 дней)
\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "zabbix-*" -mtime +7 -delete
find $BACKUP_DIR -name "zabbix-*" -mtime +7 -delete


echo "Zabbix backup completed: $DATE"
echo "Zabbix backup completed: $DATE"
</code>
</pre>


3. Сделайте скрипт исполняемым:
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/zabbix-backup.sh</code>
<pre>sudo chmod +x /usr/local/bin/zabbix-backup.sh</pre>


4. Добавьте в crontab:
4. Добавьте в crontab:
<code>sudo crontab -e</code>
<pre>sudo crontab -e</pre>


5. Добавьте задачу:
5. Добавьте задачу:
<code>0 3 * * * /usr/local/bin/zabbix-backup.sh</code>
<pre>0 3 * * * /usr/local/bin/zabbix-backup.sh</pre>


== 13. Мониторинг и обслуживание ===
== 13. Мониторинг и обслуживание ==


=== Настройка логирования ===
=== Настройка логирования ===


1. Настройте ротацию логов:
1. Настройте ротацию логов:
<code>sudo nano /etc/logrotate.d/zabbix</code>
<pre>sudo nano /etc/logrotate.d/zabbix</pre>


2. Добавьте конфигурацию:
2. Добавьте конфигурацию:
<code>/var/log/zabbix/*.log {
<pre>/var/log/zabbix/*.log {
     daily
     daily
     missingok
     missingok
Строка 446: Строка 446:
     endscript
     endscript
}
}
</code>
</pre>


=== Создание скрипта мониторинга ===
=== Создание скрипта мониторинга ===


1. Создайте скрипт мониторинга:
1. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/zabbix-monitor.sh</code>
<pre>sudo nano /usr/local/bin/zabbix-monitor.sh</pre>


2. Добавьте содержимое:
2. Добавьте содержимое:
<code>#!/bin/bash
<pre>\#!/bin/bash


# Проверка статуса Zabbix Server
\# Проверка статуса Zabbix Server
if ! systemctl is-active --quiet zabbix-server; then
if ! systemctl is-active --quiet zabbix-server; then
     echo "Zabbix Server is down!" | mail -s "Zabbix Alert" admin@example.com
     echo "Zabbix Server is down!" | mail -s "Zabbix Alert" admin@example.com
fi
fi


# Проверка статуса Zabbix Agent
\# Проверка статуса Zabbix Agent
if ! systemctl is-active --quiet zabbix-agent; then
if ! systemctl is-active --quiet zabbix-agent; then
     echo "Zabbix Agent is down!" | mail -s "Zabbix Alert" admin@example.com
     echo "Zabbix Agent is down!" | mail -s "Zabbix Alert" admin@example.com
fi
fi


# Проверка использования диска
\# Проверка использования диска
DISK_USAGE=$(df /var/lib/mysql | tail -1 | awk '{print $5}' | sed 's/%//')
DISK_USAGE=$(df /var/lib/mysql | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
if [ $DISK_USAGE -gt 80 ]; then
Строка 472: Строка 472:
fi
fi


# Проверка доступности веб-интерфейса
\# Проверка доступности веб-интерфейса
if ! curl -s -o /dev/null -w "%{http_code}" http://localhost/zabbix | grep -q "200"; then
if ! curl -s -o /dev/null -w "%{http_code}" http://localhost/zabbix | grep -q "200"; then
     echo "Zabbix web interface is not responding!" | mail -s "Zabbix Alert" admin@example.com
     echo "Zabbix web interface is not responding!" | mail -s "Zabbix Alert" admin@example.com
fi
fi
</code>
</pre>


3. Сделайте скрипт исполняемым:
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/zabbix-monitor.sh</code>
<pre>sudo chmod +x /usr/local/bin/zabbix-monitor.sh</pre>


4. Добавьте в crontab:
4. Добавьте в crontab:
<code>sudo crontab -e</code>
<pre>sudo crontab -e</pre>


5. Добавьте задачу:
5. Добавьте задачу:
<code>*/5 * * * * /usr/local/bin/zabbix-monitor.sh</code>
<pre>*/5 * * * * /usr/local/bin/zabbix-monitor.sh</pre>


== 14. Устранение неполадок ===
== 14. Устранение неполадок ==


=== Частые проблемы ===
=== Частые проблемы ===


1. '''Zabbix Server не запускается''':
1. '''Zabbix Server не запускается''':
* Проверьте конфигурацию: <code>sudo zabbix_server -t</code>
* Проверьте конфигурацию: <pre>sudo zabbix_server -t</pre>
* Проверьте логи: <code>sudo tail -f /var/log/zabbix/zabbix_server.log</code>
* Проверьте логи: <pre>sudo tail -f /var/log/zabbix/zabbix_server.log</pre>
* Проверьте подключение к базе данных
* Проверьте подключение к базе данных


2. '''Веб-интерфейс не загружается''':
2. '''Веб-интерфейс не загружается''':
* Проверьте статус Apache: <code>sudo systemctl status apache2</code>
* Проверьте статус Apache: <pre>sudo systemctl status apache2</pre>
* Проверьте права доступа к файлам
* Проверьте права доступа к файлам
* Проверьте конфигурацию PHP
* Проверьте конфигурацию PHP
Строка 509: Строка 509:


1. '''Проверка статуса сервисов''':
1. '''Проверка статуса сервисов''':
<code>sudo systemctl status zabbix-server</code>
<pre>sudo systemctl status zabbix-server</pre>
<code>sudo systemctl status zabbix-agent</code>
<pre>sudo systemctl status zabbix-agent</pre>
<code>sudo systemctl status apache2</code>
<pre>sudo systemctl status apache2</pre>


2. '''Проверка логов''':
2. '''Проверка логов''':
<code>sudo tail -f /var/log/zabbix/zabbix_server.log</code>
<pre>sudo tail -f /var/log/zabbix/zabbix_server.log</pre>
<code>sudo tail -f /var/log/apache2/error.log</code>
<pre>sudo tail -f /var/log/apache2/error.log</pre>


3. '''Проверка подключения к базе данных''':
3. '''Проверка подключения к базе данных''':
<code>mysql -u zabbix -p -e "SELECT 1;"</code>
<pre>mysql -u zabbix -p -e "SELECT 1;"</pre>


4. '''Проверка портов''':
4. '''Проверка портов''':
<code>sudo netstat -tlnp | grep :10051</code>
<pre>sudo netstat -tlnp | grep :10051</pre>
<code>sudo netstat -tlnp | grep :10050</code>
<pre>sudo netstat -tlnp | grep :10050</pre>


== Заключение ==
== Заключение ==

Текущая версия от 10:45, 15 октября 2025

Установка и настройка Zabbix для мониторинга

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка зависимостей

Обновление системы

1. Обновите систему:

sudo apt update

2. Установите необходимые пакеты:

sudo apt install -y wget curl gnupg2 software-properties-common

Установка Apache

1. Установите Apache:

sudo apt install -y apache2

2. Запустите и включите автозапуск:

sudo systemctl start apache2
sudo systemctl enable apache2

3. Включите необходимые модули:

sudo a2enmod rewrite
sudo a2enmod ssl

Установка MySQL

1. Установите MySQL:

sudo apt install -y mysql-server

2. Запустите и включите автозапуск:

sudo systemctl start mysql
sudo systemctl enable mysql

3. Настройте безопасность MySQL:

sudo mysql_secure_installation

Установка PHP

1. Установите PHP и необходимые модули:

sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath php-ldap

2. Настройте PHP:

sudo nano /etc/php/8.1/apache2/php.ini

3. Измените параметры:

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Europe/Moscow

4. Перезапустите Apache:

sudo systemctl restart apache2

3. Установка Zabbix

Добавление репозитория Zabbix

1. Скачайте и установите ключ репозитория:

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb

2. Обновите список пакетов:

sudo apt update

Установка Zabbix Server

1. Установите Zabbix Server, Frontend и Agent:

sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

2. Проверьте установленные пакеты:

dpkg -l | grep zabbix

4. Настройка базы данных

Создание базы данных

1. Подключитесь к MySQL:

sudo mysql -u root -p

2. Создайте базу данных и пользователя:

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Импорт схемы базы данных

1. Импортируйте схему базы данных:

sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix

2. Проверьте импорт:

mysql -u zabbix -p -e "USE zabbix; SHOW TABLES;"

5. Настройка Zabbix Server

Конфигурация сервера

1. Отредактируйте конфигурацию Zabbix Server:

sudo nano /etc/zabbix/zabbix_server.conf

2. Настройте основные параметры:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_password
DBPort=3306

\# Настройки производительности
StartPollers=5
StartPollersUnreachable=1
StartTrappers=5
StartPingers=1
StartDiscoverers=1
StartHTTPPollers=1
StartTimers=1
StartEscalators=1

\# Настройки кэша
CacheSize=8M
CacheUpdateFrequency=60

\# Настройки логирования
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=10
DebugLevel=3

Запуск Zabbix Server

1. Запустите и включите автозапуск:

sudo systemctl start zabbix-server
sudo systemctl enable zabbix-server

2. Проверьте статус:

sudo systemctl status zabbix-server

3. Проверьте логи:

sudo tail -f /var/log/zabbix/zabbix_server.log

6. Настройка веб-интерфейса

Настройка Apache

1. Создайте конфигурацию для Zabbix:

sudo nano /etc/apache2/sites-available/zabbix.conf

2. Добавьте конфигурацию:

<VirtualHost *:80>
    ServerName zabbix.example.com
    DocumentRoot /usr/share/zabbix
    
    <Directory "/usr/share/zabbix">
        Options FollowSymLinks
        AllowOverride None
        Require all granted
        
        <IfModule mod_php.c>
            php_value max_execution_time 300
            php_value memory_limit 128M
            php_value post_max_size 16M
            php_value upload_max_filesize 2M
            php_value max_input_time 300
            php_value date.timezone Europe/Moscow
        </IfModule>
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/zabbix_error.log
    CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combined
</VirtualHost>

3. Включите сайт:

sudo a2ensite zabbix
sudo a2dissite 000-default

4. Перезапустите Apache:

sudo systemctl restart apache2

Настройка PHP для Zabbix

1. Создайте конфигурацию PHP для Zabbix:

sudo nano /etc/php/8.1/apache2/conf.d/zabbix.ini

2. Добавьте настройки:

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Europe/Moscow

3. Перезапустите Apache:

sudo systemctl restart apache2

7. Первоначальная настройка

Веб-установка

1. Откройте браузер и перейдите по адресу:

http://your-server-ip/zabbix

2. Нажмите "Next step" на странице приветствия

3. Проверьте предварительные требования:

  • Все пункты должны быть зелеными
  • Если есть проблемы, исправьте их

4. Настройте подключение к базе данных:

  • Database type: MySQL
  • Database host: localhost
  • Database port: 0
  • Database name: zabbix
  • User: zabbix
  • Password: zabbix_password

5. Настройте Zabbix Server:

  • Host: localhost
  • Port: 10051
  • Name: Zabbix server

6. Проверьте настройки и нажмите "Next step"

7. Скачайте конфигурационный файл:

  • Сохраните zabbix.conf.php
  • Загрузите его в /usr/share/zabbix/conf/

8. Завершите установку

Первый вход

1. Войдите в систему:

  • Username: Admin
  • Password: zabbix

2. Смените пароль администратора:

  • Перейдите в Administration → Users
  • Выберите Admin
  • Измените пароль

8. Настройка мониторинга

Добавление хостов

1. Перейдите в Configuration → Hosts 2. Нажмите "Create host" 3. Заполните информацию о хосте:

  • Host name: Server Name
  • Visible name: Display Name
  • Groups: Linux servers
  • IP address: 192.168.1.100
  • Port: 10050

4. Нажмите "Add" для добавления хоста

Настройка элементов данных

1. Перейдите в Configuration → Hosts 2. Выберите хост и нажмите "Items" 3. Нажмите "Create item" 4. Настройте элемент данных:

  • Name: CPU Usage
  • Key: system.cpu.util[,avg1]
  • Type of information: Numeric (float)
  • Units: %
  • Update interval: 30s

5. Нажмите "Add" для создания элемента

Настройка триггеров

1. Перейдите в Configuration → Hosts 2. Выберите хост и нажмите "Triggers" 3. Нажмите "Create trigger" 4. Настройте триггер:

  • Name: High CPU usage
  • Expression: {host:system.cpu.util[,avg1].last()}>80
  • Severity: High

5. Нажмите "Add" для создания триггера

Настройка действий

1. Перейдите в Configuration → Actions 2. Нажмите "Create action" 3. Настройте действие:

  • Name: Send email notification
  • Conditions: Trigger severity >= High
  • Operations: Send message to Admin

4. Нажмите "Add" для создания действия

9. Установка Zabbix Agent

Установка на удаленном хосте

1. Установите Zabbix Agent:

sudo apt install -y zabbix-agent

2. Настройте агент:

sudo nano /etc/zabbix/zabbix_agentd.conf

3. Измените параметры:

Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=client-hostname

4. Запустите агент:

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

Настройка файрвола

1. Разрешите порт Zabbix Agent:

sudo ufw allow 10050/tcp

2. Проверьте статус:

sudo ufw status

10. Настройка уведомлений

Настройка email уведомлений

1. Перейдите в Administration → Media types 2. Нажмите "Email" 3. Настройте SMTP:

  • SMTP server: smtp.example.com
  • SMTP helo: zabbix.example.com
  • SMTP email: zabbix@example.com

4. Нажмите "Update"

Настройка пользователей

1. Перейдите в Administration → Users 2. Нажмите "Create user" 3. Заполните информацию:

  • Username: admin
  • Groups: Zabbix administrators
  • Password: strong_password
  • Media: Email notifications

4. Нажмите "Add"

11. Настройка дашбордов

Создание дашборда

1. Перейдите в Monitoring → Dashboards 2. Нажмите "Create dashboard" 3. Настройте дашборд:

  • Name: Server Monitoring
  • Owner: Admin

4. Добавьте виджеты:

  • Clock
  • Graph
  • Map
  • Problem

Настройка карт сети

1. Перейдите в Monitoring → Maps 2. Нажмите "Create map" 3. Настройте карту:

  • Name: Network Map
  • Width: 800
  • Height: 600

4. Добавьте элементы:

  • Hosts
  • Triggers
  • Links

12. Резервное копирование

Создание скрипта резервного копирования

1. Создайте скрипт резервного копирования:

sudo nano /usr/local/bin/zabbix-backup.sh

2. Добавьте содержимое:

\#!/bin/bash

BACKUP_DIR="/backup/zabbix"
DATE=$(date +%Y%m%d_%H%M%S)

\# Создание директории для бэкапа
mkdir -p $BACKUP_DIR

\# Резервное копирование базы данных
mysqldump -u zabbix -p'zabbix_password' zabbix > $BACKUP_DIR/zabbix-db-$DATE.sql

\# Сжатие SQL файла
gzip $BACKUP_DIR/zabbix-db-$DATE.sql

\# Резервное копирование конфигурации
tar -czf $BACKUP_DIR/zabbix-config-$DATE.tar.gz -C /etc zabbix

\# Резервное копирование веб-файлов
tar -czf $BACKUP_DIR/zabbix-web-$DATE.tar.gz -C /usr/share zabbix

\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "zabbix-*" -mtime +7 -delete

echo "Zabbix backup completed: $DATE"

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/zabbix-backup.sh

4. Добавьте в crontab:

sudo crontab -e

5. Добавьте задачу:

0 3 * * * /usr/local/bin/zabbix-backup.sh

13. Мониторинг и обслуживание

Настройка логирования

1. Настройте ротацию логов:

sudo nano /etc/logrotate.d/zabbix

2. Добавьте конфигурацию:

/var/log/zabbix/*.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 644 zabbix zabbix
    postrotate
        systemctl reload zabbix-server
    endscript
}

Создание скрипта мониторинга

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/zabbix-monitor.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Проверка статуса Zabbix Server
if ! systemctl is-active --quiet zabbix-server; then
    echo "Zabbix Server is down!" | mail -s "Zabbix Alert" admin@example.com
fi

\# Проверка статуса Zabbix Agent
if ! systemctl is-active --quiet zabbix-agent; then
    echo "Zabbix Agent is down!" | mail -s "Zabbix Alert" admin@example.com
fi

\# Проверка использования диска
DISK_USAGE=$(df /var/lib/mysql | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
    echo "Zabbix database disk usage is high: ${DISK_USAGE}%" | mail -s "Zabbix Alert" admin@example.com
fi

\# Проверка доступности веб-интерфейса
if ! curl -s -o /dev/null -w "%{http_code}" http://localhost/zabbix | grep -q "200"; then
    echo "Zabbix web interface is not responding!" | mail -s "Zabbix Alert" admin@example.com
fi

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/zabbix-monitor.sh

4. Добавьте в crontab:

sudo crontab -e

5. Добавьте задачу:

*/5 * * * * /usr/local/bin/zabbix-monitor.sh

14. Устранение неполадок

Частые проблемы

1. Zabbix Server не запускается:

  • Проверьте конфигурацию:
    sudo zabbix_server -t
  • Проверьте логи:
    sudo tail -f /var/log/zabbix/zabbix_server.log
  • Проверьте подключение к базе данных

2. Веб-интерфейс не загружается:

  • Проверьте статус Apache:
    sudo systemctl status apache2
  • Проверьте права доступа к файлам
  • Проверьте конфигурацию PHP

3. Агенты не подключаются:

  • Проверьте файрвол
  • Проверьте настройки агентов
  • Проверьте сетевую связность

Диагностика

1. Проверка статуса сервисов:

sudo systemctl status zabbix-server
sudo systemctl status zabbix-agent
sudo systemctl status apache2

2. Проверка логов:

sudo tail -f /var/log/zabbix/zabbix_server.log
sudo tail -f /var/log/apache2/error.log

3. Проверка подключения к базе данных:

mysql -u zabbix -p -e "SELECT 1;"

4. Проверка портов:

sudo netstat -tlnp | grep :10051
sudo netstat -tlnp | grep :10050

Заключение

Zabbix успешно установлен и настроен! Теперь у вас есть мощная система мониторинга с возможностями отслеживания хостов, уведомлений и создания дашбордов.

Для размещения ваших систем мониторинга на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой Zabbix и оптимизацией производительности ваших систем мониторинга!