LINUX-BG   Адрес : http://www.linux-bg.org
Инсталация на OpenNMS на Linux Fedora
От: vtab
Публикувана на: 20-12-2003
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=357316223
Инсталация на OpenNMS на Fedora 1.0
Автор: Веселин Табаков
Версия: 1.0
Информация: Този документ е подготвен за linux-bg.org. Актуална версия на документа ще намерите на tabakov.com
Дата: 20/12/2003
За коментари: vesselin@tabakov.com


OpenNMS

Два дена (разбирайте и нощите-само една) борба, докато пусна OpenNMS. Ще ви спестя подробностите от неравната борба с това малко чудо наречено OpenNMS. Не знаете какво е OpenNMS? Aми накратко OpenNMS e система за наблюдение и управление на сървъри и мрежи (доста кратко а?). NMS в името на продукта означава Network Management System. Как точно се извършва събирането, обработването и управлението на тази информация не е обект на този документ, а на няколко учебника ;-) Сега нито е времето, нито е мястото да обяснявам, какво е това SNMP, MIB, set, get, trap и други слжони думички пълни със съдържание и много неприятни за обяснение. Повече информация относно качествата на продукта може да намерите на http://www.opennms.org.

Да започваме с инсталацията.
Машината има следната конфигурация:
Двупроцесорена машина с Pentium III процесори на 500MHz, дънна платка SuperMicro, 392/640MB памет, Compaq 3121 Fast Ethernet мрежов адаптер и още една ISA 3C509 мрежова карта. Инсталирана Fedora Linux 1.0 + GNOME десктоп без всякакви други глезотии.
На сайта не пише, че се поддържа тази дистрибуция, но като се има предвид, че Fedora си e проект на Червената шапка, аз не се замислих много и дръпнах всички RPM файлове от директория http://www.opennms.org/files/releases/latest/linux-i386-redhat-9/RPMS/ . НЕ БЪРАЗАЙТЕ ДА ТЕГЛИТЕ. Не всичко което е на сайта ви трябва. Всъшност почти всичко, но няма да го вземете от там ;-)
Изтеглете тези пакети от там
  • apt-0.5.5cnc6-fr1.i386.rpm
  • apt-debuginfo-0.5.5cnc6-fr1.i386.rpm
  • apt-devel-0.5.5cnc6-fr1.i386.rpm
  • compat-libstdc++-7.3-2.96.118.i386.rpm
  • metamail-2.7-25.i386.rpm
  • opennms-1.1.2-1.i386.rpm
  • opennms-docs-1.1.2-1.i386.rpm
  • opennms-webapp-1.1.2-1.i386.rpm
  • perl-Crypt-DES-2.03-1.i386.rpm
  • perl-DBD-Pg-1.21-2.i386.rpm
  • perl-DBI-1.32-5.i386.rpm - този пакет трябва да го имате във версия 1.37-1 с инсталацията на Fedora. Ако го нямате инсталиран - теглете.
  • perl-Digest-HMAC-1.01-1.i386.rpm
  • perl-Digest-SHA1-2.04-1.i386.rpm
  • perl-Getopt-Mixed-1.008-1.i386.rpm
  • perl-Net-SNMP-4.1.0-1.i386.rpm
  • perl-SGMLSpm-1.03ii-11.noarch.rpm
  • readline41-4.1-16.i386.rpm
  • rrdtool-1.0.42-fr1.i386.rpm
  • rrdtool-devel-1.0.42-fr1.i386.rpm
  • sharutils-4.2.1-14.i386.rpm
  • tomcat4-4.1.18-full.1jpp.noarch.rpm
  • tomcat4-webapps-4.1.18-full.1jpp.noarch.rpm
  • Както виждате разликите от моя листинг и това на сайта е че липсват пакетите за инсталация на postgresql и по-старата версия на продукта. На сайта на Fedora има по-нов пакет postgresql даже и от вашата дистрибуция. Може да си ги изтеглите от http://download.fedora.redhat.com/pub/fedora/linux/core/updates/1/i386/
  • postgresql-7.3.2-3.i386.rpm
  • postgresql-contrib-7.3.2-3.i386.rpm
  • postgresql-devel-7.3.2-3.i386.rpm
  • postgresql-docs-7.3.2-3.i386.rpm
  • postgresql-jdbc-7.3.2-3.i386.rpm
  • postgresql-libs-7.3.2-3.i386.rpm
  • postgresql-odbc-7.2.5-1.i386.rpm
  • postgresql-server-7.3.2-3.i386.rpm

  • И последния пакет, който ви е необходим ... го няма. Пакетен RPM на J2SDK за Федора няма или поне аз не съм го виждал . Обаче има сайт на Sun Microsystems от където си дръпвате последната версия. Ако искате може да го потърсите RPM на j2sdk. За тази цел има rpmfind.net . Това ще ви спести няколко --nodeps опции при инсталацията на пакетите. Аз обаче имах 1.4.2 и съм го инсталирал в /opt/j2sdk/j2sdk1.4.2/
    Сега дойде ред на инсталацията. За всички които са си направили труда да гледат в документацията ще кажа, че метода с директна инсталация от сайта няма да сработи защото Fedora е неизвестна за инсталиращия скрипт. Ако имате някоя друга дистрибуция може и да стане.
    Инсталирането на RPM пакетите става с командата

    rpm -ivh .rpm

    за да проверите дали го нямате инсталиран може да използвате командата
    rpm -q като е добре да сложите само името без версия и т.н за да видите наистина какво има инсталирано.
    Точната последователност на инсталация на пакетите не съм си я записвал, но RPM-а си казва ако нещо му липсва, както в моя случай j2sdk. Докарайте системата до положение да не може да се инсталират трите пакета opennms-1.1.2-1.i386.rpm, opennms-docs-1.1.2-1.i386.rpm и pennms-webapp-1.1.2-1.i386.rpm. Първия зависи от j2sdk, а останалите два от него. За да си инсталирате opennms-1.1.2-1.i386.rpm използвайте командата

    rpm -ivh --nodeps opennms-1.1.2-1.i386.rpm

    След инсталиране на пакета той прави опит да си създаде базата в PostgreSQL, който опит обаче в общия случай се проваля, което не бива да ви притеснява. Ще оправите проблема на малко по следващ етап.

    !!!ВАЖНО. Не правете опит да инсталирате продукта на място различно от /opt/OpenNMS, ще си създадете само излишни главоболия и няма да свършите работа. Аз пробвах варианта, когато инсталирах OpenNMS от сорсове, но се оказа, че в сорс кода има твърдо зададени пътища до много файлове и след това ще се разсипете да правите линкове ако искате всичко да заработи.
    Мисля, че за opennms-webapp-1.1.2-1.i386.rpm също трябваше да се използва опцията --nodeps. Ако сте свършили с процедурата по инсталация на пакетите време е да продължим с пускането на всичко това в действие.
    Първо ще дам кратко оприсание за начина на работа на OpenNMS. Продукта използва PostgreSQL за да съхранява информацията, която събира по мрежата. Освен това пуска десетина различни сървъра, които събират тази информация и на края има така наречната мениджмънт конзола за наблюдение, настройки и управление. Конзолата си е Web приложение. Написано на java и работещо с tomcat сървър, казано на програмистки server side ;-). Всички тези модули, които изтеглихте и инсталирахте вършат част от тази работа.
    Конфигурационната процедура е меко казано комплицирана защото е необходимо да сработят заедно няколко различни системи.
    Изпреварвайки събитията ще ви дам задължителните за това приложение променливи, които трябва да имате примерно в /etc/profile

    CLASSPATH=/opt/j2sdk/j2sdk1.4.2/lib:/opt/j2sdk/j2sdk1.4.2/
    export CLASSPATH
    export JAVA_HOME=/opt/j2sdk/j2sdk1.4.2
    export OPENNMS_HOME=/opt/OpenNMS
    export TOMCAT_HOME=/var/tomcat4
    export CATALINA_HOME=/var/tomcat4

    Първото нещо е да настроим PostgreSQL сървъра. Проверете дали е пуснат с командата

    ps -ax postmaster

    Ако видите редове подобни на тези

    6823 pts/2 S 0:00 /usr/bin/postmaster -p 5432
    6825 pts/2 S 0:00 postgres: stats buffer process
    6826 pts/2 S 0:00 postgres: stats collector process

    значи имате пуснат PostgreSQL сървър. Това обаче не ви е достатъчно. Затова го спрете. Командата е

    /etc/init.d/postgresql stop

    Отидете в директория /var/lib/pgsql/data/
    Там редактирайте файла postgresql.conf
    Минималното задължително е да имате тези редове

    tcpip_socket = true max_connections = 256 shared_buffers = 1024

    След това редактирайте файла pg_hba.conf
    Разкоментирайте тези редове и коментирайте всички останали.

    local all all trust
    host all all 127.0.0.1 255.255.255.255 trust

    На крайно негативно настроените към подобни действия параноици-администратори ще кажа, че след това ако искат да си подсигуряват сигурността могат да го правят когато и както намерят за добре. Това в момента е направено за да съм сигурен, че няма да има проблеми от към достъпа до PostgreSQL сървъра до пускане на цялата система. При всички положения обаче е добре след това този файл да се редактира.
    Пуснете сървъра с командата

    /etc/init.d/postgresql start

    Напишете
    su postgres

    Добавете потребител на базата "root", който да може да създава портебители и да е с административни права. Командата е

    createuser в случая root

    Следват два въпроса

    1. Shall the new user be allowed to create databases? (y/n) - Отговорете с "y"
    2. Shall the new user be allowed to create more new users? (y/n) - И тук с "y"

    Ще видите съобщението "CREATE USER"
    Следващата стъпка е да се уверим, че Tomcat сървъра работи нормално.
    Обикновенното му място за инсталация е /var/tomcat4, Ако при вас е на друго място е нужно да коригирате пътя в TOMCAT_HOME и CATALINA_HOME променливите на обкръжението.
    Tomcat сървъра се спира и пуска с командата

    /etc/init.d/tomcat4 {start|stop|restart}

    ако имате пуснат сървър при процесите ще видите подобен ред

    7104 pts/2 R 0:04 /opt/j2sdk/j2sdk1.4.2/bin/java -Djava.endorsed.dirs=.........

    Може да го тествате, като стартирате mozilla и отидете на http://localhost:8080
    Ако видите страницата значи работи.
    Вече сте готови да пуснете инсталационния скрипт, който се провали при инсталацията на RPM-а.
    Но преди това редактирайте в скрипта opt/OpenNMS/bin/install.pl реда

    $PG_USER = 'root'

    Командата за пускане на скрипта е

    /opt/OpenNMS/bin/install.pl -c /opt/OpenNMS/etc/create.sql

    Ако всичко е както трябва не би трябвало да има проблем този път.
    Скрипта създава потребител opennms, създава базата, таблиците и редактира /var/tomcat4/conf/server.xml. Май прави и символни връзки ама за тях не съм сигурен дали идват opennms-webapp или се създават от скрипта. За тях и без това ще стане дума по-надолу в документа.
    Какво трябва да съдържа server.xml файла ще видим след малко.
    Спрете Tomcat сървъра и отидете в /var/tomcat4/conf директорията.
    Редактирайте tomcat4.conf файла да съдържа следните рдове


    JAVA_HOME="/opt/j2sdk/j2sdk1.4.2"
    JAVACMD="$JAVA_HOME/bin/java -Xminf0.1 -Xmaxf0.3"
    CATALINA_HOME="/var/tomcat4"
    JASPER_HOME="/var/tomcat4"
    CATALINA_TMPDIR="/var/tomcat4/temp"
    TOMCAT_USER="root"


    Реда TOMCAT_USER="root" е за да използва правата на root за достъп до някой файлове на OpenNMS (Параноиците да не дюдюкат много силно ;-)
    Другите променливи най-вероятно разбирате за какво са.
    Сега е на ред да проверим и server.xml. Скрипта трябва да е добавил следните редове

    Примерен код
    <Host ...> 
     ....
     <НАЧАЛО ДОБАВЕНИ РЕДОВЕ>
     <Context path="/opennms" docBase="opennms" debug="0" reloadable="true">
     <Logger className="org.opennms.web.log.Log4JLogger" homeDir="/opt/OpenNMS">
     <Realm className="org.opennms.web.authenticate.OpenNMSTomcatRealm" homeDir="/opt/OpenNMS">
     </Context >
     <КРАЙ НА ДОБАВЕНИ РЕДОВЕ>
     </Host >



    При мен беше изчезнал затварящия tag Host и Tomcat сървъра отказваше да тръгне, а възможността да видите грешката в този случай е нулева защото скрипта, който пуска Tomcat-a пренасочва log-a към /dev/null (умно а?). Това разбира се може да се коригира, но ще трябва да си го свършите сами.
    Следващата последна стъпка е да проверим дали в /var/tomcat4/server/lib
    са създадени следните връзки към няколко файла, които са необходими на Tomcat и OpenNMS.
    Ето ги и самите символни връзки.

    castor-0.9.3.9.jar -> /opt/OpenNMS/lib/castor-0.9.3.9.jar
    log4j.jar -> /opt/OpenNMS/lib/log4j.jar
    opennms_common.jar -> /opt/OpenNMS/lib/opennms_common.jar
    opennms_core.jar -> /opt/OpenNMS/lib/opennms_core.jar
    opennms_services.jar -> /opt/OpenNMS/lib/opennms_services.jar
    opennms_web.jar -> /opt/OpenNMS/lib/opennms_web.jar

    Уверихте ли се че всичко е наред. Идва времето на броенето до старта.
    Пускането на сървърите. Направете го в следната последователност.

    1. PostgreSQL /etc/init.d/postgresql start
    2. OpenNMS /etc/init.d/opennms start
    3. Tomcat /etc/init.d/tomcat4 start

    Ако след всичко това видите нещо подобно на екрана след командата ps ax

    6823 pts/2 S 0:00 /usr/bin/postmaster -p 5432
    6825 pts/2 S 0:00 postgres: stats buffer process
    6826 pts/2 S 0:00 postgres: stats collector process
    7526 pts/2 R 0:28 /opt/j2sdk/j2sdk1.4.2/bin/java -server -classpath /op ......
    7599 pts/2 R 0:06 /opt/j2sdk/j2sdk1.4.2/bin/java -Djava.endorsed.dirs=......

    и командата
    /etc/init.d/opennms status

    ви върне този отговор

    OpenNMS.Eventd : running
    OpenNMS.Trapd : running
    OpenNMS.Dhcpd : running
    OpenNMS.Actiond : running
    OpenNMS.Capsd : running
    OpenNMS.Notifd : running
    OpenNMS.Scriptd : running
    OpenNMS.Outaged : running
    OpenNMS.Rtcd : running
    OpenNMS.Pollerd : running
    OpenNMS.Collectd : running
    OpenNMS.Threshd : running
    OpenNMS.Discovery : running

    Ако тук имате нещо различно от "running" да знаете, че пак започвате да четете и проверявате от начало. Аз се нагледах на тоя екран на думичката "starting".
    Е надявам се да виждате това, което се иска и след това като си отворите с Mozilla http://localhost:8080/opennms/
    ИМЕ/ПАРОЛА - admin/admin
    и видите този или подобен екран
    Main Screen

    то вашата задачка е изпълнена. Моята също.
    Ето ви и няколко екрана от току що инсталираната система. Да им се полюбувате и дано с нещо да съм ви помогнал да си ги имате и на вашата машина.






    В инсталацията са възможни и доста други комбинации от инсталации на пакети и конфигуриране, които може да приложите по собственно усмотрение и на собствен риск.
    Документа не ви гарантира нито правилна инсталация нито безпроблемна работа. Той се базира само на опита ми в тази инсталация. За всичко останало си има $$$ поддръжка.

    ;-)

    << xMule на Fedora 1.0 | Инсталация на Fedora Linux 1.0 >>

    Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

    All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
    Linux is copyright by Linus Torvalds.
    © Линукс за българи ЕООД 2007
    © Slavei Karadjov 1999 - 2006

    All rights reserved.

    Изпълнението отне: 0 wallclock secs ( 0.14 usr + 0.02 sys = 0.16 CPU)