关于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
最后一点问题: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这三个属性文件。