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

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

Содержание

Установка и настройка 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 и оптимизацией производительности ваших систем мониторинга!