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