последняя стабильная
    версия: 3.4.1rc1
    главная     скачать     документация     поддержка     форум     разработка

Документация

Releases

База знаний

Примеры конфигурации

 

NeTAMS 3.2-RELEASE. Как обновляться?


Если вы проводите инсталляцию NeTAMS "с нуля", вам лучше почитать другой документ.

Если у вас уже установлен и работает NeTAMS предыдущей версии, то все зависит от того, хочется ли вам сохранить старую статистику или нет. Если старая статистика вам не интересна, то:
  • Остановите работающий NeTAMS
  • Удалите все его стартап-скрипты, бинарные файлы
  • Старый файл конфигурации можно оставить "на всякий случай"
  • Сгенерированная ранее статическая HTML-статистика может оставаться на старом месте. Новый NeTAMS автоматически ее увидит. Если же и эта статистика не нужна, удалите дерево файлов (куда указывал параметр path сервиса html)
  • Удалите старую базу данных: mysqladmin drop netams или как там у вас база называлась?
Естественно, никто не мешает устанавливать и настраивать новую версию NeTAMS одновременно с работающей старой, однако вам придется немного повозиться с путями/именами/портами, чтобы такая конструкция заработала.

В большинстве случаев, однако, вам захочется сохранить старую статистику, и обеспечить "плавный переход". Последовательность действий такова:
  1. Обновляем MySQL (если вы используете именно эту СУБД)
  2. Скачиваем, распаковываем, конфигурируем и собираем новую версию 3.2
  3. Создаем "временный" конфигурационный файл для новой версии, взяв за основу старый
  4. Запускаем и отлаживаем "новую версию" из "временного" каталога и с временными путями/конфигами/правилами. Убеждаемся, что все работает и ничего не глючит.
  5. Останавливаем старый NeTAMS.
  6. Делаем полный бэкап базы данных
  7. Делаем бэкап старого конфигурационного файла и бинарного файла netams
  8. Делаем ALTER таблицам базы
  9. Подправляем "новый" конфигурационный файл, чтобы он ссылался на "большую" базу.
  10. Кладем на место новый стартап-скрипт, свежесобранные бинарные файлы
  11. Запускаем NeTAMS через стартап-скрипт
  12. Сразу же смотрим, как ему работается: пригодятся команды show version, html, show config
  13. Пробуем перезапустить NeTAMS через его команду reload. Пробуем перезапустить сервер.
  14. Если полет проходит нормально (старая статистика осталась, новая - появляется, в базу запись идет своим чередом) - поздравляем, апгрейд прошел успешно!
Необходимые комментарии по этим пунктам:
  1. Обновление MySQL
    Новая версия NeTAMS активно использует LOAD DATA FROM FILE, который некорректно работает на MySQL 3.xx.xx, о чем говорят частые core dump в недрах libmysqlclient.so.10. Мы настоятельно рекомендуем обновить ваш MySQL до версии 4.0.последняя (как говорят, версии 4.1.х и 5.х тоже работают). Обновления касаются И клиентской, И серверной части. С самими файлами базы данных делать ничего не надо - их формат не изменился, и в большинстве случаев достаточно просто удалить старые пакеты и сразу же поставить новые. Однако, если какие-то другие приложения в вашей системе были скомпилированы и слинкованы со старой версией MySQL, вам придется обновить и их (например, mod_php.so)

  2. Сборка новой версии
    Описана вот здесь.

  3. "Временный" конфигурационный файл
    Взять за основу старый. Просмотреть документацию по синтаксису сервисов. Основные изменения состоят в том, как задавать политики. Необходимо убрать слова "acct" и "fw" в начала, а также переписать target в соответствии с новыми реалиями. Указать (временно!) другой порт для telnet-доступа (service server), правило захвата пакетов (другой порт divert, номер правила, само правило поменять на ICMP). Линукс не поддерживает несколько одновременных IPQ-фильтров, так что используйте libpcap. Укажите другое имя для базы SQL, т.к. формат таблиц изменился (service storage .... dbname netams_test)

  4. Запуск новой версии
    netams -ldf путь_до_нового_конфига. Проверьте, что нет конфликтов по открытым сокетам. Зайдите с другого терминала, подключитесь к программе через телнет, попробуйте команды show version, show config и html. Попробуйте команду reload (программа сама не запустится по-новой, но надо убедиться в корректности завершения, т.е. нет ли core dump'а). Попробуйте выполнить show config и найти отличия с тем конфигурационным файлом, откуда запускались. Попробовать save и проверить, что ничего не пропало.

  5. Остановка старой программы
    Желательно делать это все не в разгар дня :)

  6. Бэкап старой базы
    Учите матчасть! Для MySQL придется делать что-то вроде:
    (предположим, что старая база называлась netams; новая для тестов 
    netams_test, бэкап делаем в netams так, чтобы таблицы имели 
    старое имя и суффикс "_bkp"):
    
    server:~#mysql netams
    
    mysql> show tables;
    +------------------+
    | Tables_in_netams |
    +------------------+
    | quota            |
    | raw              |
    | summary          |
    +------------------+
    
    mysql> show create table summary \G
    *********************** 1. row ***********************
           Table: summary_old
    Create Table: CREATE TABLE `summary_old` (
    `prefix` enum('T','M','W','D','H') NOT NULL default 'T',
    `unit_oid` int(10) unsigned NOT NULL default '0',
    `policy_oid` int(10) unsigned NOT NULL default '0',
    `t_from` int(10) unsigned NOT NULL default '0',
    `bytes_in` bigint(20) unsigned default NULL,
    `bytes_out` bigint(20) unsigned default NULL
    ) TYPE=MyISAM
    1 row in set (0.00 sec)
    
    mysql> CREATE TABLE `summary_bkp` (
    `prefix` enum('T','M','W','D','H') NOT NULL default 'T',
    `unit_oid` int(10) unsigned NOT NULL default '0',
    `policy_oid` int(10) unsigned NOT NULL default '0',
    `t_from` int(10) unsigned NOT NULL default '0',
    `bytes_in` bigint(20) unsigned default NULL,
    `bytes_out` bigint(20) unsigned default NULL
    ) TYPE=MyISAM
    Query OK, 0 rows affected (0.11 sec)
    
    mysql> insert into summary_bkp select * from summary;
    Query OK, 417308 rows affected (24.88 sec)
    Records: 417308  Duplicates: 0  Warnings: 0
    
    Таким образом можно сделать резервные копии всех таблиц. Можно также класть бэкап в другие базы. Однако, если у вас есть возможность полностью остановить работу MySQL на несколько минут, гораздо более привлекательным выглядит бэкап базы не через SQL-выражения, а при помощи простого копирования файлов данных. Просто сделайте копию каталога, где хранится ваша база (что-то вроде /var/db/mysql/netams) в другое место, и все!

  7. Бэкап исполняемых файлов и конфигурации
    На всякий случай..

  8. Изменение таблиц
    Если вы используете сервис квот, старую таблицу quota необходимо распечатать (или не забыть посмотреть на show quota заранее), и УДАЛИТЬ!. Новый сервис квот использует несовместимую таблицу, данные о квотах необходимо будет задать по-новой.
    mysql>DROP TABLE quota;
    
    Таблицы raw, login и monitor осталась без изменений.

    Таблица summary теперь имеет несколько ключей, что сильно ускоряет ее работу. Ключи добавлять так:
    alter table summary add primary key (`prefix`,
       `unit_oid`,`policy_oid`,`t_from`);
    alter table summary add KEY `policy_oid` (`policy_oid`);
    alter table summary add KEY `unit_oid` (`unit_oid`);
    alter table summary add KEY `t_from` (`t_from`);
    
    Впоследствии появятся еще две таблицы: events и oid. О них волноваться не нужно.

    Поскольку механизм генерации OID был изменен, то нет гарантий того, что объявленные вами ранее значения OID для политик останутся теми же. Необходимо узнать, соответствуют ли OID в старой базе и в новой. Для этого необходимо сравнить результаты команд:
    use netams;
    select distinct policy_oid from summary;
    select distinct policy_oid from raw;
    use netams_test;
    select distinct policy_oid from summary;
    select distinct policy_oid from raw;
    
    Не забывайте, OID в базе представлен в десятичном виде, а в конфигурационном файле - в шестнадцатеричном. Если окажется, что по новому конфигурационному файлу и базе OIDы для политик другие, необходимо еще раз поправить данные в базе, установив новые значения. Это делается так:
    use netams;
    update raw set policy_oid=new_value 
       where policy_oid=old_value;
    update summary set policy_oid=new_value 
       where policy_oid=old_value;
    
  9. Правим новый конфигурационный файл "обратно"
    Дабы в нем были правильные пути, сокеты, имена базы. Остальные пункты процедуры апгрейда комментариев не требуют.

    Если вышенаписанное вам покажется слишком сложным, вы можете заказать проведение апгрейда у авторов. Пишите на адрес support собака netams.com. Вам придется обеспечить доступ по SSH и права root.

Рейтинг@Mail.ru