Настройка базы данных · 5 min read · Oct 20, 2025

Настройка Opsview с Amazon RDS

Настройка Opsview с Amazon RDS

Официальный сайт Amazon говорит, что RDS (Служба реляционных баз данных) — это “… веб-служба, которая упрощает настройку, эксплуатацию и масштабирование реляционной базы данных в облаке. Она предоставляет экономически эффективную и масштабируемую мощность, управляя трудоемкими задачами администрирования баз данных, освобождая вас для сосредоточения на ваших приложениях и бизнесе.”

Другими словами, вы можете развернуть базу данных “в облаке” через консоль веб-служб Amazon и указать множество различных переменных, таких как “класс экземпляра” (насколько мощным он должен быть?), автоматические резервные копии, развертывание в нескольких зонах и т. д. (много интересных вещей для тех, кто хочет обеспечить высокую доступность и устойчивость, что является основной заботой облачных пользователей).

Для развертывания новой базы данных RDS требуется очень мало. Сначала (предполагая, что у вас уже есть учетная запись AWS и т. д.) вам нужно перейти в раздел RDS и нажать “Запустить экземпляр базы данных”, что приведет к странице, как показано ниже:

В нашем примере мы используем MySQL (так как мы не поддерживаем Oracle или Microsoft SQL Server). После нажатия “Выбрать” нам нужно ввести наши “данные экземпляра базы данных”, как показано ниже в нашем примере:

Как мы видим выше, мы выбрали “MySQL 5.6.12” и класс экземпляра db.m1.medium (чисто произвольный выбор на данный момент). Мы также выбрали всего 10 ГБ хранилища, без выделенных IOPS и несколько параметров (идентификатор экземпляра, имя пользователя и пароль) как ниже:

  • Идентификатор экземпляра базы данных: opsviewdbseperate
  • Имя пользователя администратора: opsviewrw
  • Пароль администратора: opsview123

Далее нам нужно выбрать некоторые дополнительные детали в “Дополнительной конфигурации”, такие как зона, порт базы данных, VPC (необходимо использовать VPC, если мы используем Opsview Pro/Enterprise**), и т. д.

После того как все это будет сделано, у нас будет полностью настроенная база данных MySQL 5.6 на 10 ГБ, работающая как показано ниже:

Прежде чем мы сможем начать использовать эту базу данных, нам нужно предоставить себе доступ к базе данных, поэтому давайте нажмем на “Группы безопасности: по умолчанию”, а затем нажмем на “лупу”, которая приведет нас на страницу с заголовком “Детали группы безопасности”. Здесь нам нужно убедиться в нашем диапазоне CIDR или просто выбрать группу безопасности, которую мы хотим применить для разрешения входящего доступа. И это должно быть конфигурацией на стороне RDS!

Настройка нашей базы данных RDS для Opsview

Далее мы должны подключиться по SSH к нашему серверу Opsview и перенести базу данных с него на базу данных RDS — следуя руководству по миграции здесь.

Сначала мы должны остановить Opsview, чтобы получить “консистентный снимок”:

/etc/init.d/opsview stop  
/etc/init.d/opsview-web stop

Далее нам нужно сделать резервное копирование и восстановление. В документе говорится, что мы должны использовать mysqldump, передать его на наш хост базы данных, а затем gunzip в MySQL — но это невозможно в RDS, так как у нас нет доступа к оболочке на сервере под ним — поэтому мы должны быть немного умнее в том, как мы это делаем.

Сначала давайте проверим, можем ли мы войти в базу данных RDS из Opsview:

root@opsview-master:/home/ubuntu# mysql -u opsviewrw -p -h opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306
Введите пароль:  
Добро пожаловать в монитор MySQL. Команды заканчиваются ; или \g.  
Ваш идентификатор соединения MySQL: 141  
Версия сервера: 5.6.12 MySQL Community Server (GPL)  
Авторские права (c) 2000, 2013, Oracle и/или ее дочерние компании. Все права защищены.  
Oracle является зарегистрированной торговой маркой корпорации Oracle и/или ее дочерних компаний. Другие названия могут быть товарными знаками их соответствующих владельцев.  
Введите 'help;' или '\h' для получения справки. Введите '\c', чтобы очистить текущее вводимое выражение.  
mysql>

Выглядит хорошо! Далее нам нужно создать базы данных на базе данных RDS — это очень просто:

create database opsview;   
create database odw;  
create database runtime;  
create database dashboard;

Это создает наши 4 необходимые базы данных. Теперь мы можем выйти из оболочки доступа к базе данных RDS и запустить mysqldump на сервере Opsview, чтобы сбросить базы данных и перенаправить вывод в удаленную базу данных RDS, как показано ниже:

mysqldump -u root -p opsview | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C opsview  
mysqldump -u root -p runtime | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C runtime  
mysqldump -u root -p odw | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C odw  
mysqldump -u root -p dashboard | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C dashboard
mysqldump -u root -p opsview | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C opsview  
mysqldump -u root -p runtime | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C runtime  
mysqldump -u root -p odw | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C odw  
mysqldump -u root -p dashboard | mysql -u opsviewrw -popsview123 --host=opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306 -C dashboard

Далее нам нужно отредактировать /usr/local/nagios/etc/opsview.conf на нашем сервере Opsview, чтобы указать на новую базу данных RDS:

root@opsview-master:/home/ubuntu# cat /usr/local/nagios/etc/opsview.conf
#
# Этот файл переопределяет переменные из opsview.defaults
# Этот файл не будет перезаписан при обновлениях
#
$dbhost = "opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com";
$odw_dbhost = "opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com";
$runtime_dbhost = "opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com";
$reports_dbhost = "opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com";
$dashboard_dbhost = "opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com";

Почти готово! Далее нам нужно настроить разрешения доступа к базе данных RDS. Опять же, мы не можем экспортировать это в файл, передать файл и импортировать его — поэтому нам нужно быть умными с перенаправлением:

/usr/local/nagios/bin/db_mysql -t | mysql -u opsviewrw -popsview123 -h opsviewdbseperate.ctw1cn2efche.eu-west-1.rds.amazonaws.com -P 3306

Это получит наши учетные данные и импортирует их в базу данных RDS (снимок того, как выглядят эти учетные данные, приведен ниже):

GRANT ALL ON opsview.* TO opsview@localhost IDENTIFIED BY '508E67C6-DA75-11E2-882D-94E35B00F56E' WITH GRANT OPTION; GRANT ALL ON opsview.* TO opsview@'%' IDENTIFIED BY '508E67C6-DA75-11E2-882D-94E35B00F56E' WITH GRANT OPTION; GRANT SELECT ON opsview.* TO odw@'%' IDENTIFIED BY '508E67C6-DA75-11E2-882D-94E35B00F56E';

Наконец, нам нужно заново сгенерировать конфигурацию Opsview и снова запустить веб-службу, используя команды:

/usr/local/nagios/bin/rc.opsview gen_config /etc/init.d/opsview-web start

И это конфигурация завершена. Мы можем остановить локально работающий сервер MySQL (service mysql stop и т. д. в зависимости от вашей ОС), а затем войти в Opsview, чтобы увидеть его работающим во всей своей красе, теперь на хранилище RDS:

Я использовал пример, как выше, чтобы показать, что исторические данные мигрированы (доказательство этого) и что нет сбоев в данных (нет больших потерь и т. д.).

Заключительные мысли

Итак, это быстрый и простой способ миграции вашей базы данных Opsview на Amazon RDS — чтобы обеспечить вам лучшую масштабируемость, надежность и удобство использования для вашего бэкенда базы данных, если вы работаете в облаке. В следующий раз я рассмотрю запуск Opsview в VPC и как мы это настраиваем.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.