关于OpenNMS:OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台。OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网络提供有效的信息。OpenNMS是世界上第一个用开放原始码模式开发的企业级网络管理系统。和其它复杂、功能强大的系统一样,需要费一点心力来安装和设置。

OpenNMS使用PostgreSQL数据库,并且要求能够以postgres用户的身份通过TCP/IP协议连接到PostgreSQL。



系统支持:目前OpenNMS支持Linux(的很多不同发行版本),Solaris和Mac OS X,WINDOWS.



硬件需求:

处理器

单处理器,1 GHz Pentium III 等级以上。OpenNMS能运用(系统中的)多处理器。



内存

最低256 MB的RAM,不过强烈建议512 MB。OpenNMS的Java Virtual Machine能运用大量的内存(最多2GB,如果是64-bit的处理器还可以更多)。我在虚拟机中测试时,用300M内存启动服务时差不多要10多分钟!在实际环境中内存1G以上!



现在硬件配置都比较高,我这里提下有些可能在虚拟机环境中测试时内存分配的太少可能出现一些问题!





在线演示:

http://demo.opennms.org/opennms/



username: demo

password: demo



下面讲解下具体的安装过程,想了解更多关于opennms的可以参考网方wiki

http://www.opennms.org/wiki/Main_Page



PS:系统iptables和SELINUX都是关闭,减少没必要的麻烦!



首先一点说明:系统/etc/hosts当中的主机名前缀必须要与当前系统主机名前缀一致,否则启动opennms启动时会报错:

Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: opennms: opennms

.....





一.安装opennms软件源



[root@opennms ~]# rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-stable-rhel5.noarch.rpm



二.安装PostgreSQL



1.安装数据库

yum -y install postgresql postgresql-server

它会安装在/var/lib/pgsql 目录下!

安装完成后可使用psql --version查看数据数据库版本.



[root@opennms ~]# psql --version

psql (PostgreSQL) 8.1.18

包括命令行编辑的支持



更多用法:

[root@opennms ~]# psql --help



2.启动PostSQL

[root@opennms ~]# service postgresql start

使数据库开机启动:

[root@opennms ~]# chkconfig postgresql on



3. 配置数据库

[root@opennms ~]# vi /var/lib/pgsql/data/pg_hba.conf

把配置文件最后未注释的行改成如下形式:



local all all trust

host all all 127.0.0.1/32 trust

host all all ::1/128 trust



我这里用命令一次性搞定:

[root@opennms ~]# sed -i 's/ident sameuser/trust/g' /var/lib/pgsql/data/pg_hba.conf



修改数据库配置文件

[root@opennms ~]# vi /var/lib/pgsql/data/postgresql.conf

找到"max_connections"把值100改为60

max_connections = 60

找到"listen_addresses"去掉注释

listen_addresses = 'localhost'



三.安装openNMS



[root@opennms ~]# yum -y install opennms

安装目录为/opt/opennms

添加到服务随系统开机启动

[root@opennms ~]# chkconfig --add opennms

[root@opennms ~]# chkconfig opennms on





四.配置opennms



生成java.conf配置文件

[root@opennms ~]# runjava -s /usr/java/latest/bin/java

查看下java.conf配置文件的内容:

[root@opennms etc]# cat /opt/opennms/etc/java.conf

/usr/bin/java

可以看到其实也就是java的执行命令!



初始化opennms和数据库

[root@opennms ~]# install -dis  



安装iplike

[root@opennms ~]# yum -y install iplike

有关iplike的说明请看opennms的wiki

http://www.opennms.org/wiki/IPLIKE



重启opennms

service opennms restart

也可以用

opennms start/restart/stop/status



[root@opennms etc]# opennms -h

/opt/opennms/bin/opennms: illegal option -- h



Usage: /opt/opennms/bin/opennms [-n] [-t] [-p] [-o] [-c timeout] [-v] [-Q] []



 command options: start|stop|restart|status|check|pause|resume|kill



要是内存不大的话要等些时间,它内部要执行很多东西!!!



查看下opennms是否启动:

[root@opennms ~]# lsof -i:8980

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME

java    2689 root  498u  IPv6   9286       TCP 192.168.8.251:8980->192.168.8.1:gris (ESTABLISHED)

java    2689 root  503u  IPv6   7767       TCP *:8980 (LISTEN)

java    2689 root  505u  IPv6   9287       TCP 192.168.8.251:8980->192.168.8.1:appworxsrv (ESTABLISHED)

java    2689 root  506u  IPv6   9288       TCP 192.168.8.251:8980->192.168.8.1:connect (ESTABLISHED)

java    2689 root  511u  IPv6   9289       TCP 192.168.8.251:8980->192.168.8.1:unbind-cluster (ESTABLISHED)

java    2689 root  512u  IPv6   9290       TCP 192.168.8.251:8980->192.168.8.1:ias-auth (ESTABLISHED)

java    2689 root  513u  IPv6   9291       TCP opennms:8980->opennms:56920 (ESTABLISHED)

java    2689 root  515u  IPv6   9292       TCP opennms:56920->opennms:8980 (ESTABLISHED)

java    2689 root  518u  IPv6   9283       TCP 192.168.8.251:8980->192.168.8.1:avail-epmap (ESTABLISHED)

java    2689 root  519u  IPv6   9284       TCP 192.168.8.251:8980->192.168.8.1:zymed-zpp (ESTABLISHED)

java    2689 root  520u  IPv6   9285       TCP 192.168.8.251:8980->192.168.8.1:avenue (ESTABLISHED)



五.WEB访问

在浏览器中访问 http://IP:8980/opennms

用户名:admin

密码:admin



154649678.jpg

154630408.jpg



最后一点问题:opennms重启是非常的慢。。。。。。。

它启动过程中在忙啥呀??

首先会检查当前是否有OpenNMS在运行,如果有,则直接退出,启动结束;然后检查数据库是否在运行,检查的方法也很简单,就是简单的连下数据库看是否成功,如果数据库没有启动,则直接退出。然后从/opt/opennms/etc目录下的service-configuration.xml文件中读取所有service,将所有配置的service生成其实例对象,然后对与每个service对象,根据配置文件中,将所有at属性为"start"的invoke其method方法调用。invoke里面还有个重要的属性即pass,这个属性用于控制比如在start时,如果有多个方法需要调用,可以通过pass值来定义它们之间的调用顺序。另外,在系统启动过程中还会检查opennms.home属性是否设置,它记录了OpenNMS的安装路径,如果没有设置,则会通过当前的classpath路径来确定opennms.home。一旦确定了opennms.home,则会继续加载opennms.home/etc/bootstrap.properties文件(如果该文件存在),rrd-configuration.properties文件及libraries.properties这三个属性文件。