Настройка мониторинга сервера Nagios-Zabbix
Содержание
- 1 Настройка мониторинга сервера (Nagios/Zabbix)
- 1.1 1. Подготовка системы
- 1.2 2. Установка Nagios
- 1.3 3. Установка Zabbix
- 1.4 4. Настройка веб-интерфейса
- 1.5 5. Настройка мониторинга
- 1.6 6. Настройка уведомлений
- 1.7 7. Установка агентов
- 1.8 8. Мониторинг сервисов
- 1.9 9. Создание дашбордов
- 1.10 10. Резервное копирование
- 1.11 11. Устранение неполадок
- 1.12 Заключение
Настройка мониторинга сервера (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):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для критически важных систем мониторинга
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой мониторинга и оптимизацией производительности ваших систем!