Все компоненты NETAMS можно запускать на одной машине: база данных mysql, биллинг, вебсервер интерфейса, сервер отчетов. В случае большой абонентской базы (более 1000 пользователей), или существенной нагрузки по трафику, возможно без особых усилий разнести эти процессы на индивидуальные сервера.
NETAMS 4.0 отлично, без изменений и каких-либо "компиляций" работает и под Windows, и под Linux/FreeBSD. Никаких компиляторов, пакетов и прочего обычно не требуется (однако см. документацию по pcap). За исключением, конечно, исполняющей виртуальной машины Java (JRE, но пойдет и JDK).
Её необходимо скачать и поставить отсюда: http://www.oracle.com/technetwork/java/index.html. В данный момент мы работаем на Oracle JRE и OpenJDK версий 6.х (1.6.0.хх). Вы можете использовать любую другую версию JRE, но работоспособность такой конструкции не тестировалась, и не гарантируется.
Для определенности предположим, что для Windows версии вы поставили Java JDK в каталог "C:\Program Files\Java\jdk1.6.0_18", а для Linux - в "/usr/local/jre1.6.0_27". В подкаталоге "bin/java" находится собственно исполняемый файл виртуальной машины. Вы можете запустить его и проверить, какова версия:
C:\Program Files\Java\jdk1.6.0_18\bin>java -version java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b04) Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
Если вы используете сбор данных (data source) через локальный механизм PCAP, почитайте этот документ, и поставьте требуемые библиотеки.
Далее, вам необходимо скачать и распаковать дистрибутив NETAMS отсюда. Мы собираем несколько почти одинаковых дистрибутивов, с библиотеками под конкретную архитектуру и операционную систему.
Вопрос: Почему в качестве веб-контейнера вы не применяете Апач? Или нет, я люблю Tomcat или Resin.
Ответ: Апач не умеет исполнять программы на Java, это не сервлет контейнер. Вы можете использовать что угодно вместо Jetty, но настраивайте сами.
Скачанный архив необходимо распаковать куда-нибудь, например в C:\netams4 (Windows) или /usr/local/netams4 (Linux). Там вы увидите список файлов, похожий на:
mylinux:/usr/local/netams4/# ls -al total 2142 drwxr-xr-x 6 root root 4096 2010-07-12 20:27 . drwxr-xr-x 4 root root 4096 2010-07-12 19:35 .. drwxr-xr-x 2 root root 4096 2010-07-12 19:10 doc drwxr-xr-x 5 root root 4096 2010-07-12 19:29 jserver drwxr-xr-x 5 root root 4096 2010-07-12 19:29 repserver drwxr-xr-x 2 root root 4096 2010-07-12 19:10 lib -rwxr-r- 1 root root 984 2010-07-12 19:25 netams4.properties -rwxr-xr-x 1 root root 283 2011-07-02 12:52 startup.sh drwxr-xr-x 5 root root 4096 2010-07-12 19:35 webadmin
В каталоге doc - некоторые примеры, в jserver - код биллинга, в lib - общие для биллинга и вебсервера библиотеки, в webadmin - интерфейсная часть, repserver - служба генерации отчетов.
Теперь надо привязать Java к этому каталогу:
Для Linux:
Делаем ссылку от того меcта, где у нас установлен JRE, к дистрибутиву:
ln -s /usr/local/jre1.6.0_27 java
Для Windows:
Правим стартап-скрипты startup.bat, jserver\jserver-startup.bat и webadmin\webadmin-startup.bat. Находим в каждом строку
set JAVA_HOME=C:\Progra~1\Java\jdk1.6.0_17
и заменяем последние цифры, чтобы они соответствовали версии установленной у вас JRE/JDK:
set JAVA_HOME=C:\Progra~1\Java\jdk1.6.0_18
Требуется постараться, и не перепутать \jre... и \jdk... Будем надеяться, что объяснять что такое, и откуда берется "C:\Progra~1\", не надо.
Дополнительно для FreeBSD:
Выполнить действия, аналогичные установке для Linux. В силу особенности реализации нативных библиотек для работы программ Java под FreeBSD, вам придется выполнить ряд дополнительных действий.
Во-первых, поддержка JPcapLocalDataSource под FreeBSD реализована экспериментально. Библиотека jnetpcap (которую мы вынуждены использовать), не тестировалась для данной операционной системы. Вместо этого, лучше используйте RemoteAgentDataSource локально.
Во-вторых, необходимо убедиться, что применяемая нами библиотека libsigar может найти все зависимости - это особенно актуально для FreeBSD 8. Можно посмотреть, что нужно:
[root@fbsd /home]# uname -a FreeBSD fbsd.fnm.msu.ru 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 [root@fbsd /home\]# ldd /usr/home/netams4/jserver/lib/so-dll/freebsd-i386/libsigar-x86-freebsd-8.so /usr/home/netams4/jserver/lib/so-dll/freebsd-i386/libsigar-x86-freebsd-8.so: libkvm.so.3 => not found (0x0)
А что у нас есть:
[root@fbsd /home]# ls -la /lib/libkvm* /usr/lib/libkvm* -r--r--r-- 1 root wheel 32780 Feb 18 04:50 /lib/libkvm.so.5 -r--r--r-- 1 root wheel 42652 Feb 18 04:50 /usr/lib/libkvm.a lrwxr-xr-x 1 root wheel 16 Feb 18 04:50 /usr/lib/libkvm.so -> /lib/libkvm.so.5 -r--r--r-- 1 root wheel 43552 Feb 18 04:50 /usr/lib/libkvm_p.a
Лечим:
[root@fbsd /home]# ln -s /usr/lib/libkvm.so /lib/libkvm.so.3 [root@fbsd /home]# ldd /usr/home/netams4/jserver/lib/so-dll/freebsd-i386/libsigar-x86-freebsd-8.so /usr/home/netams4/jserver/lib/so-dll/freebsd-i386/libsigar-x86-freebsd-8.so: libkvm.so.3 => /lib/libkvm.so.3 (0x281dd000) libc.so.7 => /lib/libc.so.7 (0x28099000)
Этого достаточно. Если так не сделать, вы при запуске jserver наверняка увидите ошибку, как ниже, и мониторинг вашей операционки работать не будет:
Exception in thread "alarms_events" java.lang.UnsatisfiedLinkError: org.hyperic.sigar.Cpu.gather(Lorg/hyperic/sigar/Sigar;)V at org.hyperic.sigar.Cpu.gather(Native Method) at org.hyperic.sigar.Cpu.fetch(Cpu.java:30) at org.hyperic.sigar.Sigar.getCpu(Sigar.java:320) at org.hyperic.sigar.Sigar.getCpuPerc(Sigar.java:341) at com.netams.netams4.AlarmEventManager.systemCheck(AlarmEventManager.java:108) at com.netams.netams4.AlarmEventManager.loop(AlarmEventManager.java:99) at com.netams.netams4.structures.EngineThread.run(EngineThread.java:41) at java.lang.Thread.run(Thread.java:662)
Далее, необходимо скачать, поставить и настроить MySQL сервер. Как это сделать, описано в соответствующих инструкциях. По окончании установки, создайте базу данных netams4, и убедитесь что нужный пользователь (по умолчанию root без пароля) может писать в неё. Важно: вам необходимо вручную создать базу данных! Это делается одной командой:
mysqladmin create netams4
Вопрос: Какую версию MySQL ставить?
Ответ: Мы тестировали 5.1.10. Этому отвечает Connector/J в комплекте. Без проблем должна заработать любая из 5.х ветки.
Вопрос: А я люблю Постгрес! Он же круче!
Ответ: Мы можем добавить поддержку любой СУБД. Обратитесь сюда.
В завершение, вам необходимо убедиться в правильности настройки локальной службы DNS. Компоненты netams4 общаются между собой по TCP/IP, по умолчанию используя адрес "localhost". Из-за особенностей реализации механизма RMI в виртуальной машине Java происходит определение локального имени хоста, и попытка связи с ним по IP-адресу, полученному из данного имени. Таким образом, если команда `hostname` на вашей машине выдает некоторое имя вашего хоста, например "myserver", то прямое преобразование имени в IP-адрес должно завершаться успехом, т.е. к примеру `ping myserver` должен приводить к ответам. Если это не так, оперативное решение проблемы состоит в добавлении записи:
127.0.0.1 myserver
в файл /etc/hosts
В общем случае, система готова к работе, в условиях того, что все компоненты запускаются на одном (этом) компьютере. Необходимо посмотреть, и поправить при необходимости, файл настроек netams4.properties.