OpenNMS配置笔记

小编辑 发布于 2010/06/17 16:05
阅读 5K+
收藏 8

OpenNMS是个很强大的网管软件,用它可以监视服务器的资源使 用状况, 并在必要的时候向管理员发出警告。(当然它的强大功能不止这些,我就用到这个功能而已)。 安装其实也不麻烦,基本上按照官方文档的安装过程都没 问题。

网上流传的方法都是将OpenNMS装在Tomcat上,不过最新版的opennms-1.6.1内置了Web服务器, 所以Tomcat就不是必须的了,这样安装要方便许多。 下面这篇文章是在Redhat Liux Enterprise 4上安装的,其实RH系列的操作系统都差不多, 大家在安装时注意选择和操作系统匹配的软件包就行了。


下载

由于局域网中不能使用yum,所以必须手动下载需要的安装包。 安装OpenNMS需要以下软件:

安装PostgreSQL

首先安装PostgreSQL:

# rpm -i postgresql-7.4.8-1.RHEL4.1.i386.rpm
# rpm -i postgresql-server-7.4.8-1.RHEL4.1.i386.rpm
# chkconfig postgresql on
# /etc/init.d/postgresql start

然后要编辑配置文件 /var/lib/pgsql/data/pg_hba.cof 中权限相关的部分:

把下面这一行:

local  all    all             ident   sameuser

改成这样:

local  all    all             trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust

然后需要编辑 /var/lib/pgsql/data/postgresql.conf,让它监听TCP。我用的是RHEL4的postgresql-7.4.8, 修改方法如下:

#tcpip_socket = false

改成

tcpip_socket = true

如果是较新的服务器,那应该是默认监听TCP的,如果不行,就要在 postgresql.conf 中加入这样一行:

listen_addresses = 'localhost'

然后重启一下服务器:

/etc/init.d/postgresql restart

确认一下postgresql是否启动成功:

# netstat -lntp
...(中略)
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 28603/postmaster # 有这一行即可

最后要创建OpenNMS的数据库:

# sudo -u postgres createdb -U postgres -E UNICODE opennms
CREATE DATABASE

安装JDK

我从Sun的网站上下载了rpm版的JDK 6 Update 11。安装很简单:

# ./jdk-6u11-linux-i586-rpm.bin

安装OpenNMS

安装OpenNMS需要以下几个包:

  • opennms- 1.6.1-1.noarch.rpm:为yum准备的快捷包,不装也行
  • opennms-core-1.6.1-1.noarch.rpm:OpenNMS的核心
  • opennms-docs-1.6.1-1.noarch.rpm:OpenNMS的文档
  • opennms-webapp-jetty-1.6.1-1.noarch.rpm:OpenNMS自带的Web服务器

还有依赖关系:

  • jicmp- 1.0.7-1.i386.rpm:注意这个包,不同系统上的安装包是不一样的
  • iplike-1.0.7-1.i366.rpm:注意这个包,不同系统上的安装包是不一样的

如果你要与Tomcat配合使用,可以选择安装opennms-webapp-standalone-1.6.1-1.noarch.rpm,这里 就不介绍了。

按照顺序分别安装以上几个包:

# rpm -i jicmp-1.0.7-1.i386.rpm
# rpm -i opennms-core-1.6.1-1.noarch.rpm
# rpm -i opennms-webapp-jetty-1.6.1-1.noarch.rpm
# rpm -i opennms-docs-1.6.1-1.noarch.rpm
# rpm -i opennms-1.6.1-1.noarch.rpm

安装iplike:

# rpm -i iplike-1.0.7-1.i386.rpm

安装过程中会创建存储过程,如果失败的话,可以在排除原因之后执行 /usr/sbin/install_iplike.sh 。

配置OpenNMS

首先设置一个环境变量,指向OpenNMS的安装位置,便于以后的输入:

export OPENNMS_HOME=/opt/opennms

告诉OpenNMS使用新安装的JDK。注意这一步一定要指定你上面刚刚安装的JDK。 系统中有可能自带了JRE的java解释器,那个不行,要用JDK的。

# $OPENNMS_HOME/bin/runjava -S /usr/java/latest/bin/java

然后安装OpenNMS的数据库:

# $OPENNMS_HOME/bin/install -dis

最后启动OpenNMS:

# chkconfig --add opennms
# /etc/init.d/opennms start

然后打开浏览器,访问 http://<your_ip_address>:8980/opennms/ ,用户名admin密码admin,登录就行了。

配置被监视的服务器

要监视服务器的运行状态,应该在要监视的服务器上安装SNMP。如果是Linux系统,那么可以使用自带的net-snmp包。

# rpm -i net-snmp-libs-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-5.1.2-11.EL4.6.i386.rpm
# rpm -i net-snmp-utils-5.1.2-11.EL4.6.i386.rpm
# chkconfig snmpd on
# /etc/init.d/snmpd start

然后修改 /etc/snmp/snmpd.conf 。该文件主要由四个指令构成:

com2sec 定义一个安全策略。community的作用 类似于密码。
group 将 安全策略映射到组。securityModel指SNMP版本号,可以选择v1、v2c或v3。
view 定义一个视图,规定视图中包括的内容。
access 定义哪个组可以访问哪个视图,以及访问权限。

view中的一长串数字 .1.3.6.1.2.1.1 是MIB结点名称(OID),由RFC1065/1155定义。 用snmptranlsate工具可以看到数字的意义:

# snmptranslate .1.3.6.1.2.1.1
SNMPv2-MIB::system

我们可以让SNMP返回更多的信息(由于是局域网,所以就不考虑安全性问题了)。 按照以下方式修改snmpd.conf,同时注释掉原有内容:

com2sec opennms   192.168.1.100/32    opennms    # 最后一个字段为community名称
group opennmsGroup v1 opennms
view view_all included .1
access opennmsGroup "" any noauth exact view_all none none

另外syslocation和syscontact指令是用来记录服务器所在物理位置和管理员联系地址的,适当填写即可。

最后重启SNMP:

# /etc/init.d/snmpd restart

用snmpwalk工具检查配置是否正确,正确的话应该会输出很多信息:

# snmpwalk -c opennms -v 1 192.168.1.100

最后将每台要监视的服务器都按照上述方法配置即可。

在OpenNMS中添加节点

登录到OpenNMS中,点击Admincaidan,然后点击左侧Operations中的Configure Discovery。 在Specifics表格中将要监视的服务器的IP地址填进去。如果要监视大范围的服务器, 可以在下面的Include Ranges中指定IP地址的范围。 最后点击“Save and Restart Discovery”,重新开始搜索节点。

opennms-add-discovery.png

稍等几分钟,再点击Node List菜单,即可看到刚刚添加的服务器。

opennms-node-without-snmp.png

但是现在在服务器状态中还看不到SNMP信息,因为我们还没设置SNMP的community名称—— 刚才说过,community名称相当于密码。

点击Admin菜单,然后选择左侧的Configure SNMP Community Names by IP命令。 然后输入IP地址,以及刚才在snmpd.conf中使用的community名称, 版本号也要与snmpd.conf的group指令中设置的一致,最后点击Submit。

接下来回到Node List,进入要监视的服务器的状态页面,点击上方菜单中的Rescan。 等待一分钟左右再刷新页面,就可以看到SNMP状态信息了。(由于有了SNMP的帮助, 你会发现状态页面的信息一下子多了许多。)

opennms-node-with-snmp.png

这样,我们可以通过点击上方的Resource Graphs即可看到服务器运行状态的图表。

opennms-memory-stats.png
加载中
0
f
fymcf
怎么实现事件通知呢?
0
大圈
大圈

请问,我在桌面虚拟机上(Linux)运行opennms然后配置邮件报警,但是总是不行。下面是我的相关配置。


1.


2.

3.然后

4.


这是相关的配置文件,当然我也试过sina邮箱,公司的企业(阿里云)邮箱,也改过/etc/resolv.conf里的DNS。都报相同错误,就是下面的错误。

这是报的错误日志2015-06-10 18:03:05,237 ERROR [Thread-2722] o.o.n.n.JavaMailNotificationStrategy: send: Error sending notification.

org.opennms.javamail.JavaMailerException: Java Mailer messaging exception: javax.mail.MessagingException: Unknown SMTP host: smtp.sina.com ;
  nested exception is:
        java.net.UnknownHostException: smtp.sina.com
        at org.opennms.javamail.JavaMailer.sendMessage(JavaMailer.java:458) ~[opennms-javamail-api-16.0.0.jar:?]
        at org.opennms.javamail.JavaMailer.mailSend(JavaMailer.java:250) ~[opennms-javamail-api-16.0.0.jar:?]
        at org.opennms.netmgt.notifd.JavaMailNotificationStrategy.send(JavaMailNotificationStrategy.java:71) [opennms-services-16.0.0.jar:?]
        at org.opennms.netmgt.notifd.ClassExecutor.execute(ClassExecutor.java:69) [opennms-services-16.0.0.jar:?]
        at org.opennms.netmgt.notifd.NotificationTask.run(NotificationTask.java:269) [opennms-services-16.0.0.jar:?]
0
大圈
大圈
好吧  看不到我的截图,就是opennms的用户界面上的各种配置。1.创建一个用户,默认的admin,然后填写邮箱地址.2.配置通知——》通知路径——》使用者依然还是admin,然后填上我的邮箱地址,和1的邮箱地址一样,完成。最后再到/opt/opennms/etc修改文件javamail-configuration.properties。内容如下(smtp服务已开启):
org.opennms.core.utils.fromaddress=wfsauto@sina.com
org.opennms.core.utils.mailHost=smtp.aliyun.com
org.opennms.core.utils.authenticate=true
org.opennms.core.utils.authenticateUser=wfsauto@sina.com
org.opennms.core.utils.authenticatePassword=
org.opennms.core.utils.transport=smtp
org.opennms.core.utils.debug=true
org.opennms.core.utils.charset=UTF-8
org.opennms.core.utils.starttls.enable=false

弄了很久了,依然不行,哪位可以帮帮我。谢谢了!



返回顶部
顶部