Настройка мониторинга сервера Nagios-Zabbix

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

Содержание

Настройка мониторинга сервера (Nagios/Zabbix)

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

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

2. Установка Nagios

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

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

sudo apt update

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

sudo apt install -y wget curl build-essential apache2 php libapache2-mod-php php-gd libgd-dev libssl-dev libc6-dev libffi-dev unzip libapache2-mod-php7.4

Создание пользователя nagios

1. Создайте пользователя и группу:

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

Установка Nagios Core

1. Скачайте исходный код Nagios:

cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
tar xzf nagios-4.4.6.tar.gz
cd nagios-4.4.6

2. Скомпилируйте и установите:

sudo ./configure --with-command-group=nagcmd
sudo make all
sudo make install
sudo make install-commandmode
sudo make install-config
sudo make install-webconf

3. Создайте пользователя для веб-интерфейса:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Установка Nagios Plugins

1. Скачайте и установите плагины:

cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar xzf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3

2. Скомпилируйте плагины:

sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo make
sudo make install

Запуск Nagios

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

sudo systemctl start nagios
sudo systemctl enable nagios

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

sudo systemctl restart apache2

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

sudo systemctl status nagios

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

Установка Zabbix Server

1. Установите репозиторий Zabbix:

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
sudo apt update

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

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

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

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

sudo apt install -y mysql-server

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

sudo mysql -u root -p

3. В MySQL выполните:

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

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

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

Настройка Zabbix Server

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

sudo nano /etc/zabbix/zabbix_server.conf

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

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

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

sudo systemctl start zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

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

sudo systemctl status zabbix-server

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

Настройка Apache для Nagios

1. Создайте виртуальный хост:

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

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

<VirtualHost *:80>
    ServerName nagios.example.com
    DocumentRoot /usr/local/nagios/share
    
    <Directory "/usr/local/nagios/share">
        Options Indexes FollowSymLinks
        AllowOverride AuthConfig
        Require all granted
    </Directory>
    
    <Directory "/usr/local/nagios/sbin">
        Options ExecCGI
        AllowOverride AuthConfig
        Require all granted
    </Directory>
    
    <Directory "/usr/local/nagios/cgi-bin">
        Options ExecCGI
        AllowOverride AuthConfig
        Require all granted
    </Directory>
</VirtualHost>

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

sudo a2ensite nagios
sudo a2enmod cgi
sudo systemctl restart apache2

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

1. Настройте PHP для Zabbix:

sudo nano /etc/php/7.4/apache2/php.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

4. Откройте веб-интерфейс:

http://your-server-ip/zabbix

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

Настройка Nagios

1. Отредактируйте главный конфигурационный файл:

sudo nano /usr/local/nagios/etc/nagios.cfg

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

log_file=/usr/local/nagios/var/nagios.log
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

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

sudo nano /usr/local/nagios/etc/objects/localhost.cfg

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

define host{
    use                     linux-server
    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
}

define service{
    use                     local-service
    host_name               localhost
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}

define service{
    use                     local-service
    host_name               localhost
    service_description     Root Partition
    check_command           check_local_disk!20%!10%!/
}

Настройка Zabbix

1. Создайте хосты в Zabbix:

  • Зайдите в веб-интерфейс Zabbix
  • Перейдите в Configuration → Hosts
  • Нажмите Create host
  • Заполните параметры хоста

2. Настройте элементы данных:

  • Перейдите в Configuration → Hosts
  • Выберите хост и нажмите Items
  • Создайте элементы для мониторинга

3. Настройте триггеры:

  • Перейдите в Configuration → Hosts
  • Выберите хост и нажмите Triggers
  • Создайте триггеры для уведомлений

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

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

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

sudo nano /usr/local/nagios/etc/objects/contacts.cfg

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

define contact{
    contact_name                    nagiosadmin
    use                            generic-contact
    alias                          Nagios Admin
    email                          admin@example.com
}

define contactgroup{
    contactgroup_name       admins
    alias                   Nagios Administrators
    members                 nagiosadmin
}

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

sudo nano /usr/local/nagios/etc/objects/commands.cfg

4. Добавьте команду:

define command{
    command_name    notify-host-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

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

1. Настройте медиа типы:

  • Перейдите в Administration → Media types
  • Создайте email медиа тип
  • Настройте SMTP сервер

2. Настройте пользователей:

  • Перейдите в Administration → Users
  • Создайте пользователя
  • Настройте медиа для пользователя

3. Настройте действия:

  • Перейдите в Configuration → Actions
  • Создайте action для уведомлений
  • Настройте условия и операции

7. Установка агентов

Установка Nagios NRPE Agent

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

sudo apt install -y nagios-nrpe-server nagios-plugins

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

sudo nano /etc/nagios/nrpe.cfg

3. Разрешите подключения от Nagios сервера:

allowed_hosts=192.168.1.100

4. Запустите NRPE:

sudo systemctl start nagios-nrpe-server
sudo systemctl enable nagios-nrpe-server

Установка 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

8. Мониторинг сервисов

Мониторинг веб-сервера

1. Nagios - проверка HTTP:

define service{
    use                     local-service
    host_name               web-server
    service_description     HTTP
    check_command           check_http
}

2. Zabbix - HTTP мониторинг:

  • Создайте элемент данных для HTTP проверки
  • Настройте триггер для недоступности
  • Создайте график для отображения

Мониторинг базы данных

1. Nagios - проверка MySQL:

define service{
    use                     local-service
    host_name               db-server
    service_description     MySQL
    check_command           check_mysql
}

2. Zabbix - MySQL мониторинг:

  • Установите MySQL плагин для Zabbix
  • Настройте элементы данных для MySQL
  • Создайте дашборд для базы данных

Мониторинг дискового пространства

1. Nagios - проверка дисков:

define service{
    use                     local-service
    host_name               server
    service_description     Disk Space
    check_command           check_disk!20%!10%!/
}

2. Zabbix - мониторинг дисков:

  • Используйте встроенные элементы для дисков
  • Настройте триггеры для предупреждений
  • Создайте графики использования

9. Создание дашбордов

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

1. Создайте дашборд:

  • Перейдите в Monitoring → Dashboards
  • Нажмите Create dashboard
  • Добавьте виджеты для мониторинга

2. Настройте виджеты:

  • Добавьте графики производительности
  • Настройте карты сети
  • Добавьте таблицы проблем

Настройка карт в Nagios

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

sudo apt install -y nagvis

2. Настройте карты:

  • Создайте карту сети
  • Добавьте хосты и сервисы
  • Настройте автоматическое обновление

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

Резервное копирование Nagios

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

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

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

\#!/bin/bash
BACKUP_DIR="/backup/nagios"
DATE=$(date +%Y%m%d_%H%M%S)

\# Создание архива конфигурации
tar -czf $BACKUP_DIR/nagios-config-$DATE.tar.gz /usr/local/nagios/etc/

\# Создание архива логов
tar -czf $BACKUP_DIR/nagios-logs-$DATE.tar.gz /usr/local/nagios/var/

echo "Nagios backup completed: $DATE"

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

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

Резервное копирование Zabbix

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

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

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

\#!/bin/bash
BACKUP_DIR="/backup/zabbix"
DATE=$(date +%Y%m%d_%H%M%S)

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

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

echo "Zabbix backup completed: $DATE"

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

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

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

  • Проверьте синтаксис конфигурации:
    sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  • Проверьте права доступа к файлам
  • Проверьте логи:
    sudo tail -f /usr/local/nagios/var/nagios.log

2. Zabbix не подключается к базе данных:

  • Проверьте настройки подключения в zabbix_server.conf
  • Проверьте статус MySQL
  • Проверьте права пользователя zabbix

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

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

Диагностика

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

sudo systemctl status nagios
sudo systemctl status zabbix-server

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

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

3. Проверка подключений:

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

Заключение

Система мониторинга успешно настроена! Теперь вы можете отслеживать состояние ваших серверов и получать уведомления о проблемах.

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

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