Sei sulla pagina 1di 98

OpenNMS

Installation:Debian
Contents
[hide]
1 Overview
2 APT Repository Based Install
2.1 Choosing an APT Sor!e
2.2 Adding a Repository
2.2.1 Sta"le
2.2.2 #nsta"le
2.2.$ Sta"le %&ightly Snapshots'
2.2.( #nsta"le %&ightly Snapshots'
2.$ Adding the Open&)S P*P +ey to APT
$ Installing the Open&)S Pa!,ages
$.1 -e"ian (.. %/t!h' and #"nt 0.1. %*tsy' or &ewer
$.2 Syste1s Older than -e"ian (.. and #"nt 0.1.
( Con2igring PostgreS34 2or Open&)S
(.1 Syste1 and -ae1on Con2igration
(.2 Preparing the Open&)S -ata"ase
(.$ Installing IP4I+/
5 Installing Open&)S
5.1 Setting 6ava /nviron1ent
5.2 Rnning the Open&)S Installer
7 Starting Open&)S
7.1 -is!over 8or &etwor,
7.2 *et &oti2i!ations 9hen Pro"le1s O!!r
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Oveview
These instr!tions !over installation o2 Open&)S and its re:isites on -e"ian and -e"ian derived
syste1s li,e #"nt.
9hile it is possi"le to o"tain and install the Open&)S pa!,ages withot the help o2 this do!1ent;
2ollowing so1e o2 the gidelines within 1ay si1pli2y the pro!ess and provide so1e assistan!e on what
to do post<installation.
'(T )eposito* +ased Install
-e"ian<"ased distri"tions 1a,e se o2 the Advan!ed Pa!,age )anager; also ,nown as APT; to
1anage the retrieval; !on2igration; and installation o2 so2tware pa!,ages. 9hile it is possi"le to =st
install the .de" pa!,ages and have the syste1 still resolve 1any o2 the dependen!ies o2 the Open&)S
syste1; it is re!o11ended to per1anently add the Open&)S repositories to yor list o2 so2tware
sor!es to "est resolve dependen!ies and allow 2or an easier pgrade options in the 2tre.
Choosing an '(T So,ce
#sers o2 -e"ian<"ased syste1s !an !hoose to install either the stable or ,nstable "ilds o2 Open&)S.
The stable "ild is the latest o22i!ially released sta"le version o2 Open&)S. I2 yo are ptting
Open&)S into a prod!tion environ1ent 2or daily se; this is the re!o11ended version install.
The ,nstable "ild is the latest o22i!ially released develop1ent version o2 Open&)S. This 1ay have
1ore 2eatres than the sta"le version; "t it 1ay also !ontain "gs that have yet to "e dis!overed or
triaged.
'dding a )eposito*
Stable
To setp the Open&)S stable repository on yor syste1; yo>ll need to !reate a 2ile !alled
openn-s.list within the .etc.apt.so,ces.list.d dire!tory o2 yor syste1 with the 2ollowing !ontents?
deb http://debian.opennms.org stable main
deb-src http://debian.opennms.org stable main
/nstable
4i,ewise; i2 yo>ve !hosen to se the nsta"le "ran!h o2 Open&)S; yo>ll need enter the 2ollowing
in2or1ation into openn1s.list?
deb http://debian.opennms.org unstable main
deb-src http://debian.opennms.org unstable main
Stable (Nightl* Snapshots)
I2 yo>d li,e to se the pre<released version o2 the ne@t sta"le release; add this to yor apt list?
deb http://debian.opennms.org testing main
deb-src http://debian.opennms.org testing main
/nstable (Nightl* Snapshots)
I2 yo>d li,e to se the pre<released version o2 the ne@t nsta"le release; add this to yor apt list?
deb http://debian.opennms.org snapshot main
deb-src http://debian.opennms.org snapshot main
'dding the OpenNMS (0( 1e* to '(T
Pa!,ages within the APT syste1 are !ryptographi!ally signed to ensre their integrity. This step
ensres the intregreity o2 the 2ile yo>ve downloaded; as well as a re2eren!e to garantee that the 2ile is
provided "y who it says it was. These 2eatres are se2l at install<ti1e as well as dring 2tre
pgrades.
To install the Open&)S P*P ,ey into yor syste1; type the 2ollowing at a !o11and pro1pt?
wget -O - http://debian.opennms.org/OPENNMS-GPG-KE ! sudo apt-"e# add -
The OpenNMS Signing 1e*
The de" pa!,ages and the RP)A8#) pa!,ages are signed with the sa1e *P* ,ey. The 2ingerprint 2or
this ,ey is 2233 DD'4 5465 +728 +23C 97+: 742+ 5'45 ;C;C ++D6; and it !an "e plled 2ro1
well<,nown p"li! ,ey servers.
&ow that the ,eys and repositories are added; yo !an re2resh yor syste1 pa!,age inventory as s!h?
sudo apt-get update
Installing the OpenNMS (ac<ages
Debian ;.7 (3tch) and /b,nt, :.=7 (0,ts*) o Newe
Open&)S and its dependen!ies !an "e installed on /t!h and *tsy with apt>get install openn-s.
I2 any o2 the dependen!ies re:ire !on2igration; yo will "e as,ed to provide !on2igration data 2or
the1. On an #"nt 1...( syste1; yo 1ay need to "e prepared to setp the Post2i@ )TA as well as
other dependen!ies. Open&)S will rn and send 1ail when the appli!ation is !on2igred to do so with
any o2 the !on2igred 1ail options; "t i2 yo wish 2or the syste1 to send 1ail otside o2 the s!ope o2
Open&)S; yo 1ay need to pt thoght into this !on2igration.
-ring the installation pro!ess; yo will also need to a!!ept the Sn 6ava li!ensing ter1s %-46'. &ot
a!!epting this agree1ent will !ase the installation pro!ess to 2ail; as Open&)S needs a 6ava
/nviron1ent to rn.
I2 PostgreS34 was not pre<installed; and installed as a dependen!y o2 Open&)S dring the apt<get
install operation; yo 1ay see a noti!e that IP4I+/ installation 2ailed. Installing IP4I+/ s!!ess2lly
will "e !overed later in this do!1ent.
S*ste-s Olde than Debian ;.7 and /b,nt, :.=7
Installing Open&)S on syste1s older than /t!h and *tsy re:ires additional steps to pro!re and
install a sita"le 6-+ 2or operation that 1st "e !o1pleted prior to rnning the apt>get install
openn-s !o11and. I2 yo are !o12orta"le doing this; there sholdn>t "e any reason yo !an>t install
and se Open&)S; however yo 1ay 2ind it easier to se a distri"tion that in!ldes a wor,ing 6-+.
Config,ing (ostgeS?@ fo OpenNMS
S*ste- and Dae-on Config,ation
By de2alt; Open&)S needs to "e a"le to !onne!t to a PostgreS34 server as the postges ser over a
TCPAIP !onne!tion dring the installation pro!ess. It is easier to rn the installer in a !on2igration
where the postgres ser is not re:ired to have password !redentials; "t it is !ertainly not re:ired; and
not en!oraged on syste1s with 1ltiple sers.
To allow the postges ser to athenti!ate withot a password; yo 2irst 1st !hange options in the
pgAhba.conf 2ile. On 1any syste1s; this will "e lo!ated in
.etc.postgesBl.VERSIONNUMBER.-ain; where VERSIONNUMBER is yor version o2 the
PostgreS34 data"ase.
The de2alt pgAhba.conf 2ile shold have so1e !on2igration vales near the "otto1 o2 the 2ile that are
si1ilar those "elow?
$ %PE &'%'('SE )SE* +,&*-'&&*ESS ME%-O&
$ .local. is /or )ni0 domain soc"et connections onl#
local all all ident
$ ,P12 local connections:
host all all 345.6.6.3/74 md8
$ ,P19 local connections:
host all all ::3/34: md8
To ena"le a password<less login; yo will need to !hange those lines to re2le!t the 2ollowing?
$ %PE &'%'('SE )SE* +,&*-'&&*ESS ME%-O&
$ .local. is /or )ni0 domain soc"et connections onl#
local all all trust
$ ,P12 local connections:
host all all 345.6.6.3/74 trust
$ ,P19 local connections:
host all all ::3/34: trust
The pgAhba.conf 2ile only !ontrols the athenti!ation 1ethods dring a !onne!tion and not the a!tal
networ, !on2igration. The PostgreS34 listener de2alts to localhost in the postgesBl.conf 2ile. I2 yo
get errors that yo !an>t !onne!t to yor PostgreS34 data"ase; yo 1ay need to set or n!o11ent the
listenBaddresses dire!tive in this 2ile to re2le!t >lo!alhost>. The postgesBl.conf 2ile shold "e lo!ated in
the sa1e dire!tory as yor pgAhba.conf 2ile shold yo need to 1a,e this !hange.
Sec,it* I-plications
The a"ove !hanges to the de2alt PostgreS34 !on2igration will 1a,e it easy to install Open&)S on
yor server; "t it also allows 2or anyone with a lo!al ser a!!ont to have 2ll a!!ess to said -B. As
this gide is a :i!, start; the ass1ption is that the server is li1ited to sers o2 the Open&)S syste1
or a dedi!ated 1a!hine. I2 this is not the !ase; yo shold pro"a"ly !onslt the PostgreS34
do!1entation 2or setting a 1ore restri!tive environ1ent.
Additionally yo will want to "e !ertain that that the 1a@ n1"er o2 o2 si1ltaneos !onne!tions is
!on2igred to "e greater than !$p..1a@PoolSiCe in DOP/&&)SBEO)/Aet!A!$p..properties %5. "y
de2alt' F1..
ma0;connections < 96
Config,ing (ostgeS?@ +e*ond the Defa,lts
PostgreS34 will sel2<ad=st 1any para1eters; "t so1e have to "e hand<set to get per2or1an!e "eyond
1odest de2alts. 9hen in!reasing these vales; yo 1ay 2ind that PostgreS34 does not start "e!ase
the desired PostgreS34 para1eters re:ire !hanges in yor syste1>s ,ernel para1eters. The
PostgreS34 se!tion o2 the Per2or1an!e Tning portion o2 the wi,i will help yo set these and get the
1ost ot o2 yor PostgreS34 server
9hen yo>re !ertain that all yor PostgreS34 !on2igration !hanges have "een 1ade; yo will need to
restart the dae1on to apply the !hanges.
Girst; 2ind the na1e o2 the PostgreS34 servi!e?
user=ubuntu-ser1er:>? ser1ice --status-all !grep postgres
The reslt on a #"nt 1...( server shows the servi!e na1e as postgesBl>5.;.
Then; restart the PostgreS34 listener sing the na1e o2 the servi!e?
user=ubuntu-ser1er:>? sudo ser1ice postgres@l-:.2 restart
(epaing the OpenNMS Database
The ne@t step is to !reate the Open&)S data"ase?
user=ubuntu-ser1er:>? sudo -u postgres createdb -) postgres -E )N,+O&E opennms
At this point; yo !an !he!, the networ, listener and athenti!ation !hanges; as well as whether or not
yor -B !reation wor,ed properly?
user=ubuntu-ser1er:>? ps@l -) postgres --host<localhost opennms
I2 yo are presented with a pro1pt that loo,s li,e openn-s"C; yo !an type DB and :it the ps:l shell
as yor tests were s!!ess2l. I2 this was not s!!ess2l; yo will need to review yor PostgreS34
!on2igration.
Installing I(@I13
IP4I+/ is a PostgreS34 stored pro!edre 2or :i!,ly pro!essing e@pressions whi!h des!ri"e IP
addresses or address spa!e.
To install IP4I+/; rn?
user=ubuntu-ser1er:>? sudo -u postgres install;ipli"e.sh
Installing OpenNMS
Setting Eava 3nvion-ent
Open&)S will need to ,now whi!h 6-+ to se. To have Open&)S dete!t and se the "est 6R/ 2or the
appli!ation; rn?
user=ubuntu-ser1er:>? sudo /usr/share/opennms/bin/runAa1a -s
I2 yo wish to spe!i2y a 6R/ yo !an rn?
user=ubuntu-ser1er:>? sudo /usr/share/opennms/bin/runAa1a -S
/usr/Aa1a/Ad"3.8.6;34/bin/Aa1a
),nning the OpenNMS Installe
&e@t; yo need to rn the Open&)S installer; whi!h will initialiCe the Open&)S data"ase; and do
so1e other "asi! setp. #pon pgrade; yo shold rn this !o11and again to 1a,e sre yor data"ase
s!he1a and other things re:ired at startp are p<to<date.
To rn the installer?
user=ubuntu-ser1er:>? sudo /usr/share/opennms/bin/install -dis
A set o2 1igrations will "e >played> into the data"ase whi!h will prepare it 2or se. This !an ta,e so1e
ti1e depending on yor 1a!hine !on2igration.
Eava Netwo< ,neachable
I2 yo try to install Open&)S on -e"ian 7.. S:eeCe yo will get an PostgreS34 error Netwo<
,neachable. In -e"ian 7.. S:eeCe 6ava appli!ations are not allowed to !onne!t to 120.....1. It is
only possi"le to !onne!t to ??1 "y de2alt. The "g is des!ri"ed in http?AA"gs.de"ian.orgA!gi<
"inA"greport.!giH"gI57..((
Stating OpenNMS
&ow that Open&)S is installed and !on2igred; yo !an start the dae1ons and a!!ess yor appli!ation.
To start the servi!e?
user=ubuntu-ser1er:>? sudo ser1ice opennms start
To a!!ess Open&)S; open yor we" "rowser and !onne!t to http://yourhost:8980/opennms/; where
yorhost is the na1e or IP o2 the syste1 where yo =st installed Open&)S. The de2alt serna1e and
password are the sa1e; so when presented with a login window; type ad-in in the ser "o@; and
ad-in in the password "o@; then !li!, the @ogin "tton.
Discove Fo, Netwo<
Girst; Open&)S needs to ,now whi!h devi!es %or; JnodesJ' yo want it to dis!over. Gor 1ore detailed
in2or1ation on dis!overy !on2igration; in!lding how to add IP addresses 1anally to the dis!overy
!on2igration 2ile; see -is!overy.
To dis!over nodes; Open&)S does a ping sweep on IP address ranges that yo !on2igre it to dis!over.
I2 an IP address that Open&)S is not already 1anaging responds to a dis!overy ping; then Open&)S
will "egin s!anning that IP address 2or servi!es; !reate a new node in its data"ase; and "egin 1onitoring
the node>s inter2a!es and servi!es. A new install o2 Open&)S will not per2or1 any dis!overy ntil yo
add one or 1ore address ranges to the dis!overy !on2igration. 8o do this "y logging into the we" #I
as the admin ser and navigating to the 'd-in 1en and then !li!,ing on >Config,e Discove*G
nder the Opeations se!tion.
In the Incl,de )anges se!tion o2 the %o-e . 'd-in . Discove* . Modif* Config,ation page; !li!,
on the >'dd NewG "tton. In the window that pops p; enter the "eginning and ending IP addresses 2or
the range that yo wish to in!lde 2or dis!overy. The de2alt vales 2or Retries and Ti1eot are sally
appropriate. Cli!, the >'ddG "tton; and the popp window will !lose and the new range will show p
in the Incl,de )anges se!tion. Cli!, the >Save and )estat Discove*G "tton to apply yor !hanges.
-is!overy o2 the newly added range will "egin within a 2ew se!ondsK the ping re:ests and servi!e
s!ans are spread ot over ti1e to avoid 2looding yor networ,; so it will ta,e so1e ti1e 2or all nodes in
yor newly added range to "e s!anned and dis!overed.
0et Notifications Hhen (oble-s Occ,
To get started; we need to !on2igre the 1ain admin ser to have a valid e<1ail address.
1. 4og in as admin to the we" #I
2. *o to Admin in the 1en "ar
$. #nder the Opeations se!tion; set the Notification Status radio "tton to On and !li!, the
Update "tton
(. #nder the OpenNMS S*ste- se!tion; go to Configure Users, Groups and Roles and then
Configure Users
5. !li!, the i!on nder #Modif*# 2or the admin ser
7. set the Email address; and !li!, the inis! "tton
This shold get Open&)S !on2igred to send the de2alt noti2i!ations to the ad1inistrator e<1ail
address.
&oti2i!ations are e@tre1ely 2le@i"le and !an "e !on2igred to do !o1ple@ es!alations; s!hedled
otages; and ser 1anage1ent. -etailed instr!tions are availa"le in the &oti2i!ation Con2igration
Eow<To.
Contents
[hide]
1 Installation
2 Con2igration 3i!, Start
2.1 Con2igre 8or -ata"ase
2.1.1 /dit pgBh"a.!on2 to Allow postgres to Athenti!ate
2.1.2 /dit postgres:l.!on2 to Allow TCPAIP Conne!tions
2.1.$ Restart the -ata"ase
2.1.( Create the openn1s -ata"ase
2.2 Insert the IP4I+/ Stored Pro!edre in the -ata"ase
2.$ Tell Open&)S 9here to Gind 6ava
2.( InitialiCe Open&)S and the -ata"ase
2.5 Start Open&)S
2.7 -is!over 8or &etwor,
2.7.1 Ginding Eosts
2.0 *et &oti2i!ations 9hen Pro"le1s O!!r
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Installation
Girst; !hoose the right installation 2or yor distri"tion or OS?
81<Based -istri"tions %RedEat; CentOS; Gedora Core; et!.'
#RP)I %)andriva 4in@'
-e"ian<Based -istri"tions %-e"ian; #"nt'
)a! OS L %sing Gin,'
9indows
Config,ation ?,ic< Stat
Config,e Fo, Database
Open&)S needs to "e a"le to !onne!t to PostgreS34 as the JpostgresJ ser %"y de2alt' over a TCPAIP
!onne!tion.
RedEat<"ased syste1s
Aet!Ainit.dApostgres:l start
As"inAservi!e postgres:l start
pgBh"a.!on2 and postgres:l.!on2 are in AvarAli"Apgs:lAdata
-e"ian<"ased syste1s
Aet!Ainit.dApostgres:l<L.L start
pgBh"a.!on2 and postgres:l.!on2 are in Aet!Apostgres:lAL.LA1ain
)a! OS L %Gin,'
AswA"inApgs:l.sh start
3dit pg_hba.conf to 'llow postgres to ',thenticate
To allow the JpostgresJ ser to !onne!t; yo will need to edit yor data"ase>s pg;hba.con/ 2ile;
whi!h is sally !reated on installation or the 2irst startp o2 PostgreS34; depending on yor
distri"tion? By de2alt; it will have so1ething li,e this at the "otto1?
local all all ident sameuser
host all all 345.6.6.3/74 ident sameuser
host all all ::3/34: ident sameuser
8o will need to !hange Jident sa1eserJ to JtrstJ?
local all all trust
host all all 345.6.6.3/74 trust
host all all ::3/34: trust
3dit postgresql.conf to 'llow TC(.I( Connections
8o 1ay also need to !hange the postgres@l.con/ to allow TCPAIP !onne!tions; i2 it !annot do so
already. On older PostgreS34 versions; this is ena"led with the 2lag?
tcpip;soc"et < true
On newer PostgreS34 versions; this is ena"led with?
$ #ou can use .B. to listen on all addresses
listen;addresses < ClocalhostC
Also "e sre that the 1a@ M o2 !onne!tions is !on2igred to N than !$p..1a@PoolSiCe in
DOP/&&)SBEO)/Aet!A!$p..properties %5. "y de2alt' F1..
ma0;connections < 96
%&ote? this 1ay !ase yo to do so1e ,ernel tning 2or 1a@ shared 1e1ory in the ,ernel %sh11a@''
)estat the Database
On!e yo>ve 1ade these !hanges; yo need to restart yor data"ase.
Ceate the openn-s Database
I2 not done; se Jsdo < postgres !reated" <# postgres </ #&ICO-/ openn1sJ to !reate the data"ase
in postgres.
Inset the I(@I13 Stoed (oced,e in the Database
I2 this is yor 2irst ti1e installing Open&)S or ipli,e; yo shold 1a,e sre that ipli,e is !on2igred in
yor data"ase. Girst yo need to install the ipli,e pa!,age 2ro1 Open&)S pa!,age repositories.
Gor RP)<"ased distri"tions sing 8#)?
#um install ipli"e
Gor -/B<"ased distri"tions sing APT %se s22i@ pgsq!"; pgsq8#; pgsq8$; or pgsq8% a!!ording to
the version o2 PostgreS34 on yor syste1'?
apt-get --reinstall install ipli"e-pgs@l:2
I2 the Open&)S data"ase is already !on2igred; yo are good to go. I2 not; yo have to isse 1anally?
install;ipli"e.sh
Tell OpenNMS Hhee to 8ind Eava
Open&)S needs to ,now where to 2ind 6ava %6ava 5 and 6ava 7 are "oth spported' to "e a"le to start
p. To tell it how to do so; yo rn ?OPENNMS;-OME/bin/runAa1a li,e so?
?OPENNMS;-OME/bin/runAa1a -s
This will sear!h D6AOABEO)/ and other !o11on lo!ations 2or yor 6-+. I2 yo wish to se a
spe!i2i! 6-+; yo !an rn it with the <S 2lag instead?
?OPENNMS;-OME/bin/runAa1a -S /usr/Aa1a/Ad"3.8.6;34/bin/Aa1a
Add the 6AOABEO)/ in Aet!Ade2altAopenn1s
D'E';-OME</usr
InitialiIe OpenNMS and the Database
&e@t; yo need to rn the Open&)S installer; whi!h will initialiCe the Open&)S data"ase; and do
so1e other "asi! setp. #pon pgrade; yo shold rn this !o11and again to 1a,e sre yor data"ase
s!he1a and other things re:ired at startp are p<to<date.
In 1ost !ases; yo !an =st rn?
?OPENNMS;-OME/bin/install -dis
So1eti1es yo 1ay need to tell Open&)S where to 2ind li"=i!1p.soK in that !ase; yo !an se the <l
option %Open&)S 1.$.5 and higher'?
$ i7:9 e0ample
?OPENNMS;-OME/bin/install -dis -l /usr/lib/Ani:/usr/lib
$ 0:9;92 e0ample
?OPENNMS;-OME/bin/install -dis -l /usr/lib92/Ani:/usr/lib92
I2 yo have an error drring the install pro!ess a"ot lang,age #plpgsBl# does not e!ist; yo !an try ?
createlang -) postgres plpgs@l opennms
Stat OpenNMS
8o shold have a "asi! Open&)S installation ready now; so start it p?
sudo /etc/init.d/opennms start
As o2 Open&)S 1.$.0; "y de2alt; the we" #I will !o1e p sing the e1"edded 6etty servlet !ontainer;
on port PQP.. Open yor "rowser and point it at?
http://#ourhost::F:6/opennms/
the ser na1e and password are "oth Jad1inJ to start.
Discove Fo, Netwo<
8inding %osts
Girst; Open&)S needs to ,now whi!h devi!es %or; JnodesJ' yo want it to dis!over. To dis!over nodes;
Open&)S does a ping sweep on IP address ranges that yo !on2igre it to dis!over. I2 an IP address
that Open&)S is not already 1anaging responds to a dis!overy ping; then Open&)S will "egin
s!anning that IP address 2or servi!es; !reate a new node in its data"ase; and "egin 1onitoring the node>s
inter2a!es and servi!es. A new install o2 Open&)S will not per2or1 any dis!overy ntil yo add one or
1ore address ranges to the dis!overy !on2igration. 8o do this "y logging into the we" #I as the
admin ser and navigating to the 'd-in 1en and then !li!,ing on >Config,e Discove*G nder the
Opeations se!tion.
In the Incl,de )anges se!tion o2 the %o-e . 'd-in . Discove* . Modif* Config,ation page; !li!,
on the >'dd NewG "tton. In the window that pops p; enter the "eginning and ending IP addresses 2or
the range that yo wish to in!lde 2or dis!overy. The de2alt vales 2or Retries and Ti1eot are sally
appropriate. Cli!, the >'ddG "tton; and the popp window will !lose and the new range will show p
in the Incl,de )anges se!tion. Cli!, the >Save and )estat Discove*G "tton to apply yor !hanges.
-is!overy o2 the newly added range will "egin within a 2ew se!ondsK the ping re:ests and servi!e
s!ans are spread ot over ti1e to avoid 2looding yor networ,; so it will ta,e so1e ti1e 2or all nodes in
yor newly added range to "e s!anned and dis!overed.
Gor 1ore detailed in2or1ation on dis!overy !on2igration; in!lding how to add IP addresses 1anally
to the dis!overy !on2igration 2ile; see -is!overy.
0et Notifications Hhen (oble-s Occ,
To get started; we need to !on2igre the 1ain admin ser to have a valid e<1ail address.
1. 4og in as admin to the we" #I
2. *o to Admin in the 1en "ar
$. #nder the Opeations se!tion; set the Notification Status radio "tton to On and !li!, the
Update "tton
(. #nder the OpenNMS S*ste- se!tion; go to Configure Users, Groups and Roles and then
Configure Users
5. !li!, the i!on nder #Modif*# 2or the admin ser
7. set the Email address; and !li!, the inis! "tton
This shold get Open&)S !on2igred to send the de2alt noti2i!ations to the ad1inistrator e<1ail
address.
&oti2i!ations are e@tre1ely 2le@i"le and !an "e !on2igred to do !o1ple@ es!alations; s!hedled
otages; and ser 1anage1ent. -etailed instr!tions are availa"le in the &oti2i!ation Con2igration
Eow<To.
DISCOJ3)F
Contents
[hide]
1 Introd!tion
1.1 Prpose
1.2 Copyright
1.$ Corre!tions and O1issions
2 Overview
$ -is!overy
$.1 -is!overy #ser Inter2a!e
$.2 The -is!overy Con2igration Gile
$.$ Another 9ay to -is!over Inter2a!es
$.( 4ogs
( Capa"ilities
(.1 Pro!ess Para1eters 2or !apsd
(.2 Proto!ols
(.$ Plgin Properties
(.$.1 Citri@
(.$.2 -ECP
(.$.$ -&S
(.$.( -o1ino IIOP
(.$.5 GTP
(.$.7 ETTP
(.$.0 ETTPS
(.$.P IC)P
(.$.Q I)AP
(.$.1. 6BOSS
(.$.11 6-BC
(.$.12 6-BC Stored Pro!edre
(.$.1$ 6SR17.
(.$.1( 4-AP
(.$.15 )i!roso2t /@!hange
(.$.17 )L(6
(.$.10 &otes ETTP
(.$.1P &RP/
(.$.1Q &SClient
(.$.2. &TP
(.$.21 POP$
(.$.22 Radis
(.$.2$ S)B
(.$.2( S)TP
(.$.25 S&)P
(.$.27 SSE
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Intod,ction
(,pose
This Eow<To is one in a series designed to serve as a re2eren!e 2or getting started with Open&)S.
/ventally; these do!1ents will !over everything ne!essary to get Open&)S installed and rnning in
yor environ1ent.
Cop*ight
Content is availa"le nder a Creative Co11ons Attri"tion<&onCo11er!ial<ShareAli,e2.5 4i!ense.
Coections and O-issions
Please s"1it any !orre!tions and o1issions to the athor.
Oveview
Open&)S is an enterprise<grade networ, 1anage1ent plat2or1 developed nder the open<sor!e
1odel. #nli,e traditional networ, 1anage1ent prod!ts whi!h are very 2o!sed on networ, ele1ents
s!h as inter2a!es on swit!hes and roters; Open&)S 2o!ses on the servi!es networ, resor!es
provide? we" pages; data"ase a!!ess; -&S; -ECP; et!. %althogh in2or1ation on networ, ele1ents is
also availa"le'.
Sin!e the 1a=ority o2 networ, servi!es are provided sing the TCPAIP proto!ol; Open&)S is very IP<
!entri!. The "asi! 1onitored Jele1entJ is !alled an Jinter2a!eJ; and an inter2a!e is ni:ely identi2ied
"y an IP address. Servi!es are 1apped to inter2a!es; and i2 a n1"er o2 inter2a!es are dis!overed to "e
on the sa1e devi!e %either via S&)P or S)B' then they 1ay "e groped together as a JnodeJ.
-is!overy in Open&)S !onsists o2 two parts? dis!overing an IP address to 1onitor and then
dis!overing the servi!es spported "y that IP address. The 2irst part is 1!h si1pler than the se!ond.
Discove*
Discove* /se Inteface
The 1ost straight 2orward way o2 initiating -is!overy is throgh the we" inter2a!e. &avigate to Ad1in
N Con2igre -is!overy.
There yo are presented with 2 options.
1. Spe!i2i!s < whi!h allows yo to enter IP addresses o2 ,nown individal inter2a!es.
2. In!lde #R4s < whi!h allows yo to spe!i2y a 2ile !ontaining IP addresses to "e in!lded in
dis!overy.
$. In!lde Ranges < whi!h instr!ts Open&)S to s!an a range o2 IP addresses 2or a!tive
inter2a!es.
&odes will appear in the &ode 4ist as they are dis!overed.
The Discove* Config,ation 8ile
-is!overy in Open&)S is !ontrolled "y the disco1er#-con/iguration.0ml 2ile %lo!ated in
the /opt/OpenNMS/etc dire!tory.
4et>s loo, at that 2ile?
Gdisco1er#-con/iguration threads<.3. pac"ets-per-second<.3.
initial-sleep-time<.766666.
restart-sleep-time<.:9266666.
retries<.7. timeout<.:66.H
Ginclude-range retries<.4. timeout<.7666.H
GbeginH3F4.39:.6.3G/beginH
GendH3F4.39:.6.482G/endH
G/include-rangeH
Ginclude-urlH/ile:/opt/OpenNMS/etc/includeG/include-urlH
G/disco1er#-con/igurationH
&ow; all this 2ile !ontrols is a pro!ess that will send an IC)P JpingJ to a parti!lar set o2 IP addresses.
I2 there is a response within the ti1eot; a Jnew sspe!tJ event is generated. Otherwise; the IP address
is ignored.
The glo"al dis!overy attri"tes are?
threads
This is the n1"er o2 threads that will "e sed 2or dis!overy. By de2alt this is set to 1.
pa!,ets<per<se!ond
This is the n1"er o2 IC)P pa!,ets that will "e generated ea!h se!ond. The de2alt is 1. &ote
that there is a relationship "etween the pa!,ets<per<se!ond and the n1"er o2 threads. I2 yor
networ, has an average laten!y o2 5..1s; then setting pa!,ets<per<se!ond to 2 wold do"le the
speed at whi!h &ewSspe!t 1essages were !reated. Bt i2 there is only one thread availa"le;
setting this n1"er to $ wold have little e22e!t < the single thread wold "e pro!essing as 1any
pa!,ets as it !old as 2ast as it !old.
initial<sleep<ti1e
This is the ti1e; in 1illise!onds; "e2ore the dis!overy pro!ess will !o11en!e a2ter Open&)S is
started %"y de2alt 5 1intes'. This delay is pt in pla!e to allow the prod!t to 2lly start "e2ore
generating new events.
restart<sleep<ti1e
On!e the dis!overy pro!ess has !o1pleted; this is the ti1e; in 1illise!onds; "e2ore it will start
again. By de2alt; the pro!ess will repeat 2( hors a2ter the last dis!overy rn has !o1pleted.
ti1eot
this is the a1ont o2 ti1e; in 1illise!onds; that the dis!overy pro!ess will wait 2or a response
2ro1 a given IP address "e2ore de!iding that there is nothing there. This !an "e overridden later in
the 2ile.
retries
this is the n1"er o2 atte1pts that will "e 1ade to :ery a given IP address "e2ore de!iding that
there is nothing there. This !an "e overridden later in the 2ile.
On!e the de2alts are in pla!e %de2alts 1eaning the glo"al vales that will "e sed i2 they are not
overridden in the tags "elow'; the only thing le2t to tell the dis!overy pro!ess is whi!h IP addresses to
try. This is !ontrolled "y 2or di22erent tags?
spe!i2i!
spe!i2y a IP address to "e dis!overed. )ltiple spe!i2i! tags !an "e sed.
Gspeci/icHip-addressG/speci/icH
9here ip&address is the address yo want dis!overed. Note the la!, o2 spa!es "etween the tags.
in!lde<range
Spe!i2y a range o2 IP addresses to "e dis!overed. )ltiple in!lde<range tags !an "e sed.
Ginclude-rangeH
GbeginHstart-ip-addressG/beginH
GendHend-ip-addressG/endH
G/include-rangeH
9here start&ip&address is the "eginning o2 a range to "e s!anned and end&ip&address is the end o2 that
range.
e@!lde<range
Spe!i2y a range o2 IP address to "e e@!lded 2ro1 dis!overy.
Ge0clude-rangeH
GbeginHstart-ip-addressG/beginH
GendHend-ip-addressG/endH
G/e0clude-rangeH
9here start&ip&address is the "eginning o2 a range to "e e@!lded and end&ip&address is the end o2 that
range. &ote that the e@!lde<range tag will only override addresses in an in!lde<range. It will not
override spe!i2i! IP addresses or addresses in!lded in a 2ile. There is no Jspe!i2i!J version o2 the
e@!lde tag < i2 yo want to e@!lde a spe!i2i! IP address se an e@!lde<range where the "eginning
and ending IP addresses are the sa1e.
in!lde<rl
Spe!i2y a 2ile !ontaining IP addresses to "e in!lded in dis!overy.
Ginclude-urlH/ile:/ilenameG/include-urlH
9here 'iename is the 2ll path to a te@t 2ile listing IP addresses; one to a line. Co11ents !an "e
i1"edded in this 2ile. Any line that "egins with a JMJ !hara!ter will "e ignored; as will the re1ainder o2
any line that in!ldes a spa!e 2ollowed "y JMJ.
All tags are optional and n"onded %yo !an have as 1any as yo wish'.
'nothe Ha* to Discove Intefaces
&ow that the dis!overy !on2igration 2ile has "een e@plained; there are two short<!o1ings that need to
"e pointed ot. Girst; any !hanges to this 2ile; li,e 1ost o2 the !on2igration 2iles within Open&)S;
re:ires that Open&)S "e restarted. Se!ond; what i2 yo want to dis!over a servi!e; s!h as a we"
server; on a devi!e yo !annot pingH
Re1e1"er that all the dis!over pro!ess does is generate a newSspe!t event. In!lded in the
/opt/OpenNMS/bin dire!tory is a Perl s!ript !alled send-e1ent.pl. 8o !an se this s!ript to
generate an internal &ewSspe!t event < "ypassing the dis!overy pro!ess altogether. Co1"ined with a
s!ript; yo !old generate any n1"er o2 &ewSspe!t events %=st 1a,e sre that the IP address really
does have so1e servi!es that !an "e 1onitored "y Open&)S. Otherwise; yo will have an inter2a!e in
the syste1 with no servi!es asso!iated with it'.
The 2or1at o2 the send-e1ent.pl is as 2ollows?
/opt/opennms/bin/send-e1ent.pl --inter/ace ip-address
uei.opennms.org/internal/disco1er#/newSuspect
Repla!e ip-address with the address yo want dis!overed.
Gor !sv with G3-& as hosts lo!ation
cat /@dnlist.cs1 ! aw" -I .J. CKprint .host . ?3LC ! sh !aw" CKprint ../send-
e1ent.pl --inter/ace . ?2 . uei.opennms.org/internal/disco1er#/newSuspect.LC
Gor !sv 2ile with IP 2or host lo!ation
cat ipaddresss.cs1 !gaw" -I .J. CKprint .host . ?3 LC !sh !gaw" CKprint ../send-
e1ent.pl --inter/ace . ?3 . uei.opennms.org/internal/disco1er#/newSuspect.LC
note? se sa1e 2or1at as e@ported assets.
-epending on what Perl 1odles yo have installed; yo 1ay get an error rnning this s!ript %s!h as a
!o1plaint a"ot *etopt??)i@ed'. To ato1ati!ally add the ne!essary 1odles; try?
perl -M+P'N -e Cinstall mod;nameC
Repla!e mod(name with the na1e o2 the 1issing 1odle.
Or; i2 yo hate se CPA& %there is so1e pro"le1s; the CPA& !an !ose to li">s'; yo !an =st se rp1
pa,age
wget /tp:///tp.debian.nl/dis"3/redhat-contrib/libc8/i7:9/Getopt-Mi0ed.pm-3.66:-
2.i7:9.rpm
rpm -)1 Getopt-Mi0ed.pm-3.66:-2.i7:9.rpm
%/&-'
@ogs
8o !an wat!h the dis!overy pro!ess "y e@a1ining the disco1er#.log 2ile in the
/opt/opennms/logs/daemon dire!tory.
Capabilities
O,ay; i2 the dis!overy pro!ess =st generates &ewSspe!t events; what does all the wor,H This wold
"e the !apa"ilities dae1on; !apsd. !apsd is responsi"le 2or dis!overing all the servi!es to "e 1onitored;
s!h as httpd; -&S; et!.; as well as i2 any !olle!tors are present %at the ti1e this is only S&)P'.
The !apsd pro!ess is !ontrolled "y the capsd-con/iguration.0ml 2ile. This 2ile !onsists o2
so1e "asi! para1eters and a !olle!tion o2 Jproto!olsJ to "e tested. I2 the proto!ol is not in the 2ile; then
Open&)S will not dis!over it.
On a restart o2 Open&)S it s!hedles the s!ans "ased on the last !apsd s!an ti1esta1ps in the -B and
the !on2igred res!an interval.
(ocess (aa-etes fo capsd
The 2irst 2ew lines o2 the capsd-con/iguration.0ml 2ile !ontrol how !apsd will "ehave.
Gcapsd-con/iguration rescan-/re@uenc#<.:9266666.
initial-sleep-time<.766666.
management-polic#<.managed.
ma0-suspect-thread-pool-siMe<.9.
ma0-rescan-thread-pool-siMe<.7.
abort-protocol-scans-i/-no-route<./alse.H
res!an<2re:en!y
!apsd will !ontine to !he!, ea!h inter2a!e to see i2 new servi!es have "een added. The
2re:en!y o2 these res!ans is !ontrolled "y this para1eter. The de2alt vale is 2( hors in
1illise!onds.
initial<sleep<ti1e
li,e the dis!overy pro!ess; !apsd will sleep 2or a !ertain a1ont o2 ti1e a2ter Open&)S
starts. The de2alt vale is 5 1intes in 1illise!onds.
1anage1ent<poli!y
this para1eter !ontrols the de2alt "ehavior o2 !apsd. I2 it is set to J1anagedJ; then all IP
addresses in &ewSspe!t events will "e s!anned; nless in!lded in an Jn1anagedJ
range de2ined at the end o2 this 2ile. I2 this para1eter is set to Jn1anagedJ; then all
&ewSspe!t events will "e ignored nless the IP address in the event is e@pressly in!lded
in a J1anagedJ range %also de2ined at the end o2 this 2ile'.
1a@<sspe!t<thread<pool<siCe
This vale deter1ines how 1any threads will "e !reated to per2or1 !apa"ility s!ans on IP
addresses spplied "y &ewSspe!t events. In!reasing this vale will 1a,e the initial
dis!overy 1ove 1ore :i!,ly at the !ost o2 1ore syste1 resor!es.
1a@<res!an<thread<pool<siCe
This vale deter1ines how 1any threads will "e !reated to per2or1 !apa"ility s!ans on
inter2a!es that have already "een dis!overed. Res!ans are either ato1ati!ally s!hedled
%see rescan-/re@uenc#' or generated ad ho! throgh the 9e" #I.
a"ort<proto!ol<s!ans<i2<no<rote
This is an e@tre1ely i1portant para1eter 2or 1odi2ying the "ehavior o2 !apsd. 9hen
atte1pting to !onne!t to a spe!i2i! port to test 2or a servi!e; it is possi"le to re!eive a Jno
rote to hostJ e@!eption. In theory; this is "e!ase the host is not rea!ha"le; "t in pra!ti!e
any n1"er o2 things; s!h as 2irewalls; !an !ase this error. I2 this para1eter is set to
J2alseJ; these Jno rote to hostJ 1essages are ignored. Bt i2 it is set to JtreJ; then !apsd
will stop !he!,ing 2or additional servi!es. This !an greatly i1prove the speed o2 dis!overy
i2 the !apsd 2ile has "een JtnedJ %dis!ssed "elow'.
(otocols
Open&)S tests the e@isten!e o2 a parti!lar networ, servi!e throgh the se o2 Jproto!olsJ. At
the 1ost "asi!; this !old "e a !onne!tion to a TCP port to test 2or a parti!lar "anner; "t there
are also spe!ial !lasses 2or a variety o2 other proto!ols. The !rrent proto!ols spported ot o2
the "o@ are?
Citri@
-ECP
-&S
-o1ino IIOP
GTP
*eneral Prpose %s!ript "ased'
ETTP
ETTPS
IC)P
I)AP
6BOSS
6-BC
6-BC Stored Pro!edre
6SR17.
+5
4-AP
)i!roso2t /@!hange
)L(6
&otes ETTP
&SClient %&agios Agent'
&RP/ %&agios Re1ote Plgin /@e!tor'
&TP
POP$
Radis
S)B
S)TP
S&)P
SSE
TCP
9indows Servi!es %S&)P<"ased'
9hen a newSspe!t event is re!eived "y !apsd and the 1anage1ent poli!y 2or the IP address in
that event is J1anaged;J the !apsd pro!ess will wor, its way throgh this 2ile testing one
proto!ol a2ter another; in the order they are listed in this 2ile. The 2irst proto!ol to "e tested is
IC)P?
Gprotocol-plugin protocol<.,+MP.
class-name<.org.opennms.netmgt.capsd.plugins.,cmpPlugin.
scan<.on.H
Gpropert# "e#<.timeout. 1alue<.4666./H
Gpropert# "e#<.retr#. 1alue<.4./H
G/protocol-pluginH
/a!h proto!ol starts with a protocol-plugin tag. This tag has 2or attri"tes?
proto!ol
This is the na1e o2 the proto!ol.
!lass<na1e
This de2ines the proto!ol !lass that will "e sed to test 2or the servi!e.
s!an
Capsd s!ans !an "e trned JonJ or Jo22J per proto!ol with this attri"te.
ser<de2ined
In versions prior to so1ething li,e 1.7.Q and 1.0.Q there has "een a tag user-
de/ined<.1alue. %see e@a1ple "elow' whi!h !old have had the vales tre or 2alse.
This tag o"viosly was never sed in the !ode and has now "een re1oved.
In addition; ea!h protocol-plugin !an have a n1"er o2 properties de2ined "y a "e# and
a 1alue. The possi"le properties 2or ea!h proto!ol will "e dis!ssed in the ne@t se!tion;
althogh al1ost all in!lde a ti1eot vale and the n1"er o2 ti1es to try to 1a,e a
!onne!tion.
There is a little<,nown 2eatre availa"le in !apsd. This is the a"ility to !on2igre ea!h proto!ol
"ased on IP addresses. This is throgh the protocol-con/iguration tag. The "est way to
des!ri"e this is throgh an e@a1ple. 4et>s ta,e the IC)P !on2igration 2ro1 a"ove and 1odi2y
it?
Gprotocol-plugin protocol<.,+MP.
class-name<.org.opennms.netmgt.capsd.plugins.,cmpPlugin.
scan<.on. user-de/ined<./alse.H
Gprotocol-con/iguration scan<.on. user-de/ined<./alse.H
Grange begin<.3F4.39:.36.6. end<.3F4.39:.36.482./H
Gpropert# "e#<.timeout. 1alue<.2666./H
Gpropert# "e#<.retr#. 1alue<.7./H
G/protocol-con/igurationH
Gprotocol-con/iguration scan<.o//. user-de/ined<./alse.H
Grange begin<.3F4.39:.46.6. end<.3F4.39:.46.482./H
G/protocol-con/igurationH
Gprotocol-con/iguration scan<.enable. user-de/ined<./alse.H
Gspeci/icH3F4.39:.76.3G/speci/icH
G/protocol-con/igurationH
Gpropert# "e#<.timeout. 1alue<.4666./H
Gpropert# "e#<.retr#. 1alue<.4./H
G/protocol-pluginH
There are three protocol-con/iguration tags that have "een added. Sppose yo have
one s"net that is over a slow lin, and it 1ay ta,e a little longer 2or an IC)P re:est to "e
retrned. In the 2irst e@a1ple; the 1Q2.17P.1... s"net is allowed a ( se!ond response instead o2
the de2alt o2 2; and three retries.
Sppose yo have another seg1ent that yo =st don>t want to s!an 2or IC)P. In the se!ond
e@a1ple; s!an is set to Jo22J; and that range will not "e tested 2or IC)P.
Ginally; the third e@a1ple de1onstrates setting s!an to Jena"leJ; whi!h 2or!es the proto!ol to "e
asso!iated with the devi!e withot testing 2or it. This is se2l i2 yo ,now the proto!ol is going
to e@ist on a devi!e; "t 2or so1e reason it has not "een added yet or it is down. &ote that
Jena"leJ only wor,s 2or proto!ol<!on2igration tags and not the 1ain plgin tag.
(l,gin (opeties
The 2ollowing ta"le shows all o2 the propert# tags that are availa"le 2or ea!h proto!ol plgin.
The de2alt vales are the ones hard<!oded into the plgin itsel2; not the de2alts in the
!on2igration 2ile.
Citi!
port
The port to !onne!t to. -e2alt is J1(Q(J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. The de2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. The de2alt is J.J.
D%C(
port
The port to !onne!t to. -e2alt is J70J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J$...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J$J.
DNS
port
The port to !onne!t to. -e2alt is J5$J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J$...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J$J.
loo,p
The de2alt host na1e to atte1pt to resolve. -e2alt is Jlo!alhostJ.
Do-ino IIO(
ports
The port to !onne!t to. -e2alt is J7$1(PJ.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
IOR port
Port to loo, 2or the IOR via ETTP. -e2alt is JP.J.
8T(
port
The port to !onne!t to. -e2alt is J21J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
%TT(
ports
The port to !onne!t to %!an "e 1ore than one; separated "y a !o11a'. -e2alt is
JP.;P.P.;P...J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
1a@<ret<!ode %1.$.2 and later'
The highest n1eri!al ETTP response !ode that will "e ta,en to indi!ate s!!ess. -e2alt
is $QQ i2 a #R4 is spe!i2ied; 7.. i2 not.
!he!,<retrn<!ode %1.$.2 and later'
Boolean indi!ating whether or not to !he!, the ETTP response !ode 2or s!!essA2ailre.
-e2alt is JtreJ. &ote that illegal retrn !odes %QQ RI !ode NI 7..; per RGC1Q(5' still
indi!ate 2ailre.
%TT(S
ports
The port to !onne!t to %!an "e 1ore than one; separated "y a !o11a'. -e2alt is J(($J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J$....J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J1J.
1a@<ret<!ode %1.$.2 and later'
The highest n1eri!al ETTP response !ode that will "e ta,en to indi!ate s!!ess. -e2alt
is $QQ i2 a #R4 is spe!i2ied; 7.. i2 not.
!he!,<retrn<!ode %1.$.2 and later'
Boolean indi!ating whether or not to !he!, the ETTP response !ode 2or s!!essA2ailre.
-e2alt is JtreJ. &ote that illegal retrn !odes %QQ RI !ode NI 7..; per RGC1Q(5' still
indi!ate 2ailre.
ICM(
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is JP..J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J2J.
IM'(
port
The port to !onne!t to. -e2alt is J1($J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
E+OSS
2a!tory
The 1ethod o2 !onne!ting to 6)L. -e2alt is JR)IJ. The other a!!epta"le vale is
JETTPJ.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J$...J.
version
The version o2 6BOSS "eing dete!ted. -e2alt is J(J.
port
The TCP port to se 2or the !onne!tion. -e2alt is J1.QQJ.
ED+C
#nli,e nearly all the other plgins; the 6-BC plgin is ShighlyS nli,ely to wor, with the
de2alt !on2igration vales. 8o will have to !on2igre ser. password; rl and driver to 1at!h
yor data"ase "e2ore this will wor,.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
ser
The serna1e with whi!h to athenti!ate to the data"ase. -e2alt is JsaJ
password
The password !orresponding to the serna1e. -e2alt is "lan,
rl
The rl o2 the data"ase %6-BC rl 2ora1t'. -e2alt is
J=d"!?sy"ase?Tds?OP/&&)SB6-BCBEOST&A)/Ate1pd"J
driver
The 6-BC driver !lass to !reate the !onne!tion 2ro1. -e2alt is
J!o1.sy"ase.=d"!2.=d"!.Sy"-riverJ
host
The host the data"ase lives on. -e2alt is JOP/&&)SB6-BCBEOST&A)/J
ED+C Stoed (oced,e
Con2igration is as 2or the 6-BC plgin; e@!ept there is an additional para1eter to de2ine the
stored pro!edre to rn. Caveats regarding !on2igration o2 the 6-BC plgin apply here also.
The additional para1eter?
stored<pro!edre
The na1e o2 the stored pro!edre to rn a2ter !onne!ting to the data"ase. -e2alt is
JisRnningJ. The stored pro!edre 1st have a single otpt para1eter o2 type
=ava.s:l.Types.BIT. The a!tal retrn vale is dis!arded
ES)=47
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
@D'(
port
The TCP port on whi!h to loo, 2or the 4-AP servi!e. -e2alt is J$PQJ.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
Micosoft 3!change
ti1eot
The port to !onne!t to. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J
pop$ port
The port to loo, 2or the POP$ proto!ol. -e2alt is J11.J.
i1ap port
The port to loo, 2or the I)AP proto!ol. -e2alt is J1($J.
1api port
The port to loo, 2or the )API proto!ol. This portAservi!e is sed "y /@!hange 2or doing
RPC over ETTP. -e2alt is J5Q$J.
MK;E
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
Notes %TT(
ports
The port to !onne!t to %!an "e 1ore than one; separated "y a !o11a'. 4oo,s 2or the string
J&otesJ in the "anner. -e2alt is JP.;P.P.;P...J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
N)(3
!o11and
The !o11and to send to the &RP/ agent. -e2alt is the &RP/ Eello !o11and
%JB&RP/BCE/C+J'
port
The port the &RP/ agent is listening on. -e2alt is J5777J
padding
The padding to se in the pa!,et. -e2alt is 2
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retry
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
sessl %availa"le 2ro1 Open&)S 1.$.1.'
9hether to se &RP/ over SS4. -e2alt is J2alseJ. Set to JtreJ to ena"le.
NSClient
!o11and
The !o11and to send to the &SClient agent. -e2alt is the !lient version !he!, %J1J'.
port
The port on whi!h the agent is listening. -e2alt is J12(PJ
para1eter
A para1eter to send along with the !o11and. -e2alt is nll
!riti!alPer!ent
I2 the !o11and sent retrns a vale whi!h !an "e !o1pared; this vale is the !o1parison
vale 2or a !riti!al level. -e2alt is J.J
warningPer!ent
I2 the !o11and sent retrns a vale whi!h !an "e !o1pared; this vale is the !o1parison
vale 2or a warning level. -e2alt is J.J
password
The password needed to !onne!t to the agent. -e2alt is J&oneJ
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retry
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
NT(
port
The port to !onne!t to. -e2alt is J12$J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J$...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J$J.
(O(L
port
The port to !onne!t to. -e2alt is J11.J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
)adi,s
athport
The port the radis dae1on ses 2or athenti!ation. -e2alt is 1P12
a!!tport
The port the radis dae1on ses 2or a!!onting. -e2alt is 1P1$
athtype
The type o2 athenti!ation the radis dae1on re:ires. -e2alt is JpapJ
ser
A serna1e that !an "e sed to test athenti!ation. -e2alt is JOpen&)SJ
password
A !orresponding password that !an "e sed to test athenti!ation. -e2alt is JOpen&)SJ
se!ret
The shared se!ret with the radis dae1on. -e2alt is Jse!retJ
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
SM+
&o properties 2or S)B plgin.
SMT(
port
The port to !onne!t to. -e2alt is J25J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
SNM(
port
The port to !onne!t to. -e2alt is J171J.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is nll.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is nll.
2or!e version
The proto!ol version %S&)Pv1 or S&)Pv2' to se to !he!, 2or the servi!e. -e2alt is
nll.
v"na1e
The OI- to :ery. -e2alt is J.1.$.7.1.2.1.1.2J %this is S&)Pv2<)IB??sysO"=e!tI-..'.
v"vale
The %optional' vale to !he!, 2or i2 the OI- retrns one. -e2alt is nll.
SS%
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
port
The port the ssh dae1on is listening on. -e2alt is J22J.
1at!h
A reglar e@pression to !he!, 2or in the response 2ro1 the SSE server. -e2alt is nll
"anner
I2 1at!h is not de2ined; another reglar e@pression to !he!, 2or in the response. -e2alt is
nll
TC(
port
The port to !onne!t to. -e2alt is nll.
ti1eot
The ti1e in 1illise!onds to wait 2or a response. -e2alt is J5...J.
retries
The n1"er o2 atte1pts 1ade to dete!t the servi!e. -e2alt is J.J.
"anner
Che!, the J"annerJ string against the string that is retrned i2 the !onne!tion is s!!ess2l.
-e2alt is nll.
Hindows Sevices (HinL2Sevice(l,gin)
servi!e<na1e
The na1e o2 the 9indows servi!e yo are interested in; e.g. JTas, S!hedlerJ. -e2alt is
JServerJ.
This plgin e@tends the Sn1pPlgin and there2ore also a!!epts all o2 its properties.
Mapping (otocol (l,gins to Sevices
&ote that the proto!ol plgins represent the !ode that is sed to deter1ine i2 a parti!lar servi!e
e@ists. It is not the servi!e itsel2. The capsd-con/iguration.0ml 2ile is where the
servi!es are a!tally de2ined.
Gor e@a1ple; loo, at the ETTP servi!e?
Gprotocol-plugin protocol<.-%%P.
class-name<.org.opennms.netmgt.capsd.plugins.-ttpPlugin.
scan<.on. user-de/ined<./alse.H
Gpropert# "e#<.ports. 1alue<.:6./H
Gpropert# "e#<.timeout. 1alue<.7666./H
Gpropert# "e#<.retr#. 1alue<.4./H
G/protocol-pluginH
This servi!e will se the ETTP plgin to !he!, 2or a servi!e on port P. and !reate a servi!e
!alled JETTPJ. 9ith a si1ple !hange o2 port n1"er; yo !an !reate a new servi!e?
Gprotocol-plugin protocol<.-%%P-:6:6.
class-name<.org.opennms.netmgt.capsd.plugins.-ttpPlugin.
scan<.on. user-de/ined<./alse.H
Gpropert# "e#<.ports. 1alue<.:6:6./H
Gpropert# "e#<.timeout. 1alue<.7666./H
Gpropert# "e#<.retr#. 1alue<.4./H
G/protocol-pluginH
Sa1e proto!ol plgin; "t a !o1pletely di22erent servi!e as 2ar as Open&)S is !on!erned. In
so1e !ases; 1ainly with ETTP; yo !an !he!, 1ltiple ports. I2 yo do this; then the servi!e
will "e !onsidered to e@ist i2 a valid response is re!eived on any or a o2 the ports tested.
One o2 the 1ore power2l plgins is the TCP plgin. Eere it is sed to test 2or the e@isten!e o2
se!re shell?
Gprotocol-plugin protocol<.SS-.
class-name<.org.opennms.netmgt.capsd.plugins.%cpPlugin.
scan<.on. user-de/ined<./alse.H
Gpropert# "e#<.banner. 1alue<.SS-./H
Gpropert# "e#<.port. 1alue<.44./H
Gpropert# "e#<.timeout. 1alue<.7666./H
Gpropert# "e#<.retr#. 1alue<.7./H
G/protocol-pluginH
This will !onne!t to port 22 and loo, 2or the string JSSEJ to "e retrned. By sing this "anner
!he!, yo !old !reate di22erent servi!es 2or di22erent version o2 so2tware; s!h as Ora!le0
verss Ora!leP; as long as the in2or1ation was in!lded in the "anner %to !he!, the "anner; yo
!an se telnet ip-address port'. Crrently; the 1at!h is stri!tly a s"string sear!h. In
2tre versions reglar e@pression 1ay "e allowed.
Seve Message +loc< (SM+)
S)B is sed "y 9indows servers to share 2iles; si1ilar to &GS. Open&)S does not poll either
S)B or &GS; "t it !an se so1e o2 the in2or1ation provided "y S)B to na1e nodes and
grop inter2a!es into nodes. I2 S)B is dis!overed on a devi!e; it will "e noted on the node page.
8o !an allow Open&)S to Jlog inJ to an S)B share sing the 2ollowing tag?
Gsmb-con/igH
Gsmb-auth user<.guest. password<.guest. t#pe<.domain.HNO*KG*O)PG/smb-authH
G/smb-con/igH
Eere yo !an enter in a valid serna1e; password and do1ain 2or Open&)S to se when trying
to !onne!t to an inter2a!e.
Manage-ent (olicies
As 1entioned in the "eginning o2 this se!tion; the de2alt 1anage1ent poli!y is J1anagedJ;
whi!h 1eans that !apsd will atte1pt a servi!es s!an on all inter2a!es in newSspe!t events. This
!an "e overridden with the ip-management tag. Gro1 the de2alt capsd>config,ation.!-l
!on2igration 2ile?
Gip-management polic#<.managed.H
Grange begin<.3F4.39:.6.6. end<.3F4.39:.6.488./H
Ginclude-urlH/ile:/opt/OpenNMS/etc/includeG/include-urlH
G/ip-managementH
Gip-management polic#<.unmanaged.H
Gspeci/icH6.6.6.6G/speci/icH
Grange begin<.345.6.6.6. end<.345.488.488.488./H
G/ip-managementH
This tag has a polic# attri"te whi!h !an "e either managed or unmanaged. Then yo !an
de2ine ranges; spe!i2i! IP addresses and 2iles as needed. &ote that the J1anagedJ e@a1ple is
sed spe!i2i!ally as an e@a1ple? sin!e the de2alt poli!y is J1anagedJ it is not needed.
SNM(
The S&)P proto!ol is a spe!ial !ase. 9hile 1ost o2 the other servi!es will eventally "e polled;
the S&)P servi!e is sed to *oe*t data. 4et>s loo, at its de2inition in the !on2igration 2ile?
Gprotocol-plugin protocol<.SNMP.
class-name<.org.opennms.netmgt.capsd.plugins.SnmpPlugin.
scan<.on. user-de/ined<./alse.H
Gpropert# "e#<./orce 1ersion. 1alue<.SNMP13./H
Gpropert# "e#<.timeout. 1alue<.4666./H
Gpropert# "e#<.retr#. 1alue<.7./H
G/protocol-pluginH
&ote the /orce 1ersion property. Sin!e S&)P version 2 agents will respond to S&)P
version 1 re:ests; this test will 2ind "oth agents. This popet* has nothing to do with how
the data will be collected. The S&)P !olle!tor ato1ati!ally !he!,s 2or S&)Pv2 and will se
*/T<B#4+ !o11ands to retrieve the data %nless overridden in the snmp-con/ig.0ml
2ile'. Bt i2 yo wanted to 1anage a servi!e !alled JS&)Pv2J yo !old !reate one with?
Gprotocol-plugin protocol<.SNMP14.
class-name<.org.opennms.netmgt.capsd.plugins.SnmpPlugin.
scan<.on. user-de/ined<./alse.H
Gpropert# "e#<./orce 1ersion. 1alue<.SNMP14./H
Gpropert# "e#<.timeout. 1alue<.4666./H
Gpropert# "e#<.retr#. 1alue<.7./H
G/protocol-pluginH
&ote that the JS&)Pv2J that e@isted in early ..Q is no longer !he!,ed "y de2alt.
The snmp-config.xml 8ile
The para1eters sed to !onne!t with S&)P agents are de2ined in the snmp-con/ig.0ml
2ile. Eere is an e@a1ple?
Gsnmp-con/ig retr#<.7. timeout<.:66.
read-communit#<.public. write-communit#<.pri1ate.H
Gde/inition 1ersion<.14c.H
Gspeci/icH3F4.39:.6.8G/speci/icH
G/de/initionH
Gde/inition retr#<.2. timeout<.4666.H
Grange begin<.3F4.39:.3.3. end<.3F4.39:.3.482./H
Grange begin<.3F4.39:.7.3. end<.3F4.39:.7.482./H
G/de/initionH
Gde/inition read-communit#<.bubba. write-communit#<.Me"e.H
Grange begin<.3F4.39:.4.3. end<.3F4.39:.4.482./H
G/de/initionH
Gde/inition port<.3393.H
Gspeci/icH3F4.39:.8.86G/speci/icH
G/de/initionH
G/snmp-con/igH
The attri"tes 2or the snmp-con/ig tag are as 2ollows?
retry
The n1"er o2 atte1pts that will "e 1ade to !onne!t to the S&)P agent.
ti1eot
The a1ont o2 ti1e; in 1illise!onds; that Open&)S will wait 2or a response 2ro1 the
agent.
read<!o11nity
The de2alt JreadJ !o11nity string 2or S&)P :eries.
write<!o11nity
The de2alt JwriteJ !o11nity string 2or S&)P :eries. &ote that this is 2or 2tre
develop1ent < Open&)S does not per2or1 S&)P JsetsJ at the 1o1ent.
All o2 the glo"al para1eters !an "e overridden with de/inition tags. These new S&)P
de2initions !an apply to ranges or spe!i2i! IP addresses. In addition; there are two other
attri"tes availa"le?
port
This overrides the de2alt port o2 171.
version
Eere yo !an 2or!e either S&)P version 1 Jv1J or version 2! Jv2!J.
capsd and SNM(
9hen testing S&)P; !apsd 1a,es an atte1pt to re!eive the sysO"=e!tI- 2or the devi!e sing
the !o11nity string and port de2ined in snmp-con/ig.0ml. I2 this s!!eeds; the S&)P
proto!ol is 1ar,ed as JtreJ 2or this IP address. &ote that it ta,es the 2irst valid 1at!h in sn1p<
!on2ig.@1l 2or that IP address; so1ething to loo, 2or i2 the address is in!lded in 1ltiple
ranges.
On!e all o2 the proto!ols have "een tested; i2 S&)P is tre 2or this IP address; 1ore tests are
per2or1ed "y !apsd.
Girst; three threads are generated three S&)P re:ests are 1ade to !olle!t the data 2ro1 the
syste1 tree; the ipAddrTa"le and i2Ta"le.
I2; 2or so1e reason; the ipAddrTa"le or i2Ta"le are navaila"le; the pro!ess stops %"t the S&)P
syste1 data 1ay show p on the node page < this happens a lot with #C<-avis S&)P agents
where only the syste1 tree is availa"le to a :ery sing the Jp"li!J !o11nity string'.
Se!ond; all o2 the s"<target IP addresses in the ipAddrTa"le are rn throgh the !apsd
!apa"ilities s!an. &ote that this is regardless o2 how 1anage1ent is !on2igred in the
!on2igration 2ile. This only happens on the initial s!an and on 2or!ed res!ans. On nor1al
res!ans %"y de2alt; every 2( hors'; IP addresses that are Jn1anagedJ in !apsd are not polled.
Third; every IP address in the ipAddrTa"le that spports S&)P is tested to see i2 it 1aps to a
valid i2Inde@ in the i2Ta"le. I2 this is tre; the IP address is 1ar,ed as a se!ondary S&)P
inter2a!e and is a !ontender 2or "e!o1ing the pri1ary S&)P inter2a!e.
Ginally; all se!ondary S&)P inter2a!es are tested to see i2 they 1at!h a valid pa!,age in the
collectd-con/iguration 2ile. I2 1ore than one valid IP address 1eets all three !riteria
%spports S&)P; has a valid i2Inde@ and is in!lded in a !olle!tion pa!,age'; then the lowest IP
address is 1ar,ed as pri1ary. All S&)P data !olle!tion is per2or1ed via the pri1ary S&)P
inter2a!e.
%&ote? in the 2tre we will have the a"ility to !hange to a se!ondary S&)P inter2a!e shold the
pri1ary "e!o1e navaila"le'.
9hen the !apsd testing pro!ess is !o1plete; events are generated; in!lding
&ode*ainedServi!e events.
S&)P data !olle!tion is !overed in another Eow<To %-ata Colle!tion Con2igration Eow<To'.
Concl,sion
It is hoped that this Eow<To has proved se2l. Please dire!t !orre!tions and !o11ents to the
athor.
(olling Config,ation %ow>To
Contents
[hide]
1
Introd
!tion
1
.
1

P

r
p
o
s
e

2
Copyri
ght
2
.
1

C
o
r
r
e
!
t
i
o
n
s

a
n
d

O
1
i
s
s
i
o
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Intod,ction
(,pose
This Eow<To is one in a series designed to serve as a re2eren!e 2or getting started with Open&)S.
/ventally; these do!1ents will !over everything ne!essary to get Open&)S installed and rnning in
yor environ1ent.
Cop*ight
Content is availa"le nder a Creative Co11ons Attri"tion<&onCo11er!ial<ShareAli,e2.5 4i!ense.
Coections and O-issions
Please s"1it any !orre!tions and o1issions to the athor.
Oveview
Open&)S is an enterprise<grade networ, 1anage1ent plat2or1 developed nder the open<sor!e
1odel. #nli,e traditional networ, 1anage1ent prod!ts whi!h are very 2o!sed on networ, ele1ents
s!h as inter2a!es on swit!hes and roters; Open&)S 2o!ses on the servi!es networ, resor!es
provide? we" pages; data"ase a!!ess; -&S; -ECP; et!. %althogh in2or1ation on networ, ele1ents is
also availa"le'.
There are two 1a=or ways that Open&)S gathers data a"ot the networ,. The 2irst is throgh poing.
Pro!esses !alled monitors !onne!t to a networ, resor!e and per2or1 a si1ple test to see i2 the resor!e
is responding !orre!tly. I2 not; events are generated. The se!ond is throgh data !olle!tion sing
*oe*tors. Crrently; the only !olle!tor is 2or S&)P data; and it will "e !overed in another Eow<To.
The "asi! idea "ehind the poller starts with groping networ, devi!es into pa*+ages. /a!h pa!,age will
!onsist o2 varios ser,i*es and how they are to "e polled %i.e. 2re:en!y'. In addition; shold an otage
"e dete!ted; ea!h pa!,age !an have its own do-ntime mode whi!h !ontrols how the poller will
dyna1i!ally ad=st its polling on servi!es that are down. Ginally; ea!h pa!,age has an outage *aendar
that s!hedles ti1es when the poller is not to poll %i.e. s!hedled downti1e'.
The poller will only operate on inter2a!es and servi!es that have "een previosly dis!overed "y !apsd
%see the -is!overy Eow<To 2or in2or1ation on !on2igring that pro!ess'.
(olling
The (olle Config,ation 8ile %eade
Polling in Open&)S is !ontrolled "y the poller-con/iguration.0ml 2ile %lo!ated in the
/opt/OpenNMS/etc dire!tory'.
4et>s loo, at that 2ile?
Gpoller-con/iguration threads<.76. ser1ice)nresponsi1eEnabled<./alse.H
Gnode-outage status<.on.
poll'll,/No+riticalSer1ice&e/ined<.true.H
Gcritical-ser1ice name<.,+MP./H
G/node-outageH
There are three "asi! "ehaviors that are !on2igred in the header o2 this 2ile?
poller<!on2igration threads
This deter1ines the 1a@i11 n1"er o2 threads that will "e sed 2or polling; and !an "e
ad=sted p or down depending on the siCe o2 yor networ, and the power o2 yor server. %See
Per2or1an!e tningMPoller threads.'
servi!e#nresponsive/na"led
A poll !onsists o2 a !onne!tion to a parti!lar port on a re1ote inter2a!e; and then a test to see i2
the servi!e on that port retrns an e@pe!ted response. I2 the response is not re!eived within the
timeout; the servi!e is !onsidered down. In so1e networ,s; however; short; inter1ittent 2ailres
are !o11on. This will reslt in what is ,nown as a J$. se!ond otageJ. -e to the de2alt
downti1e 1odel; a 2ailed servi!e will "e polled again in $. se!onds. &ote that this is a real
pro"le1? a ser atte1pting to a!!ess that resor!e wold also have e@perien!ed a ti1eot. Bt in
so1e networ,s these $. se!ond otages !an "e annoying yet hard to !orre!t. So the option was
added to denote a 2ailre as when the port !onne!tion 2ails and not the response. In this !ase; an
unresponsi,e servi!e does not generate an otage; "t only a Jservi!e nresponsiveJ event. To
ena"le this "ehavior; set this vale to JtreJ.
node<otage
The "asi! event that is generated when a poll 2ails is !alled J&ode4ostServi!eJ. I2 1ore than one
servi!e is lost; 1ltiple &ode4ostServi!e events will "e generated. I2 all the servi!es on an
inter2a!e are down; instead o2 a &ode4ostServi!e event; an JInter2a!e-ownJ event will "e
generated. I2 all the inter2a!es on a node are down; the node itsel2 !an "e !onsidered down; and
this se!tion o2 the !on2igration 2ile !ontrols the poller "ehavior shold that o!!r. I2 a
J&ode-ownJ event o!!rs and node-outage status<.on. then all o2 the Inter2a!e-own
and &ode4ostServi!e events will "e sppressed and only a &ode-own event will "e generated.
Instead o2 atte1pting to poll all the servi!es on the down node; the poller will atte1pt to poll only
the critical-ser1ice; "y de2alt IC)P. On!e the !riti!al servi!e retrns; the poller will
then res1e polling the other servi!es. I2 the !riti!al servi!e is not availa"le on a node; the
poll'll,/No+riticalSer1ice&e/ined para1eter !ontrols the "ehavior. I2 set to JtreJ
then all servi!es will "e polled. I2 set to J2alseJ then the 2irst servi!e in the pa!,age that e@ists on
the node will "e polled ntil servi!e is restored; and then polling will res1e 2or all servi!es.
&ote that any !hanges to this 2ile will not ta,e a22e!t ntil Open&)S is restarted.
(olle (ac<ages
A poller pa!,age !onsists o2 a na1e; a grop o2 inter2a!es to poll; and the servi!es to "e polled on those
inter2a!es. )ltiple pa!,ages !an "e !on2igred; and an inter2a!e !an e@ist in 1ore than one pa!,age
%althogh the vale o2 that is :estiona"le'. This gives great 2le@i"ility to how the servi!e levels will "e
deter1ined 2or a given devi!e.
Gor e@a1ple; yo !old "ild pa!,ages "ased pon di22erent polling rates; say; JgoldJ; JsilverJ and
J"ronCeJ. In the gold pa!,age; servi!es wold "e polled every 1inte; the silver pa!,age every 2ive
1intes and the "ronCe pa!,age every 2i2teen. Or; yo !old "ild di22erent poller pa!,ages "ased pon
levels o2 1onitoring. A J"asi!J pa!,age 1ay =st poll IC)P and ETTP; whereas a Jdel@eJ pa!,age
wold in!lde data"ases; et!..
In addition to a list o2 servi!es; ea!h pa!,age !an have a Jdownti1eJ 1odel and an Jotage !alendarJ;
"oth dis!ssed "elow.
The de2inition o2 a pa!,age starts with a pac"age tag?
Gpac"age name<.e0ample3.H
This is 2ollowed "y a list o2 tags that de2ine what inter2a!es will "e in!lded in the pa!,age. There are
2ive o2 these tags?
2ilter
,P'&&* ,PO,KE B.B.B.B
/a!h pa!,age 1st have a 2ilter tag that per2or1s the initial test to see i2 an inter2a!e shold "e
in!lded in a pa!,age. Gilters operate on inter2a!es %not nodes' and are dis!ssed on the 2ilters page.
Only one /ilter state1ent !an e@ist per pa!,age.
spe!i2i!
Gspeci/icH3F4.39:.3.8FG/speci/icH
This spe!i2ies a parti!lar IP address to in!lde in a pa!,age.
in!lde<range
Ginclude-range begin<.3F4.39:.6.3. end<.3F4.39:.6.482./H
This spe!i2ies a parti!lar range o2 IP addresses to in!lde in a pa!,age.
e@!lde<range
Ge0clude-range begin<.3F4.39:.6.366. end<.3F4.39:.6.362./H
This spe!i2ies a parti!lar range o2 IP addresses to e@!lde in a pa!,age. This will override an
include-range tag.
in!lde<rl
Ginclude-urlH/ile:/opt/OpenNMS/etc/includeG/include-urlH
This tag will point to a 2ile that !onsists o2 a list o2 IP addresses; one to a line; that will "e in!lded in
the pa!,age. Co11ents !an "e i1"edded in this 2ile. Any line that "egins with a JMJ !hara!ter will "e
ignored; as will the re1ainder o2 any line that in!ldes a spa!e 2ollowed "y JMJ.
All o2 the a"ove tags; e@!ept 2or 2ilter; are optional and n"onded.
(olle Sevices
On!e the IP addresses to in!lde in a pa!,age are de2ined; the servi!es to "e polled are listed. Gor
e@a1ple?
Gser1ice name<.&NS. inter1al<.766666. user-de/ined<./alse. status<.on.H
Gparameter "e#<.retr#. 1alue<.7./H
Gparameter "e#<.timeout. 1alue<.8666./H
Gparameter "e#<.port. 1alue<.87./H
Gparameter "e#<.loo"up. 1alue<.localhost./H
G/ser1iceH
The !o11on para1eters 2or the poller servi!e are as 2ollows?
retry
The n1"er o2 atte1pts that will "e 1ade to !onne!t to the servi!e. -e2alt is
ti1eot
The a1ont o2 ti1e; in 1illise!onds; that Open&)S will wait 2or a response 2ro1 the servi!e.
-e2alt is
port
loo,p
This will poll the -&S servi!e on!e every 2ive 1intes %$..;... 1s'. The rest o2 the "lo!, is si1ilar to
the !orresponding "lo!, in the !apsd !on2igration. Sin!e sers !an de2ine new servi!es to "e polled;
the user-de/ined attri"te indi!ates this 2or a parti!lar servi!e. Polling !an also "e niversally
stopped 2or a parti!lar servi!e; indi!ated "y the status tag. &ote that the servi!e as de2ined in the
poller !an "e di22erent 2ro1 the one de2ined in !apsd. 8o 1ay want a longer ti1eot dring dis!overy;
2or e@a1ple. Also; in this e@a1ple; a -&S re:est will "e 1ade to loo, p Jlo!alhostJ. This shold
retrn an error %as lo!alhost is sally not listed in a -&S' "t i2 that error is retrned; -&S is
2n!tioning properly and the test passes. )i!roso2t>s i1ple1entation o2 -&S; however; so1eti1es has
pro"le1s with this; so yo 1ay want to pt a real host 2or the loo,p vale %and in !apsd as well'.
There 1st "e at least one servi!e de2ined per pa!,age.
(olle O,tage Calenda
%In versions newer than 1.5.@ this 2eatre is !alled Js!hedled otagesJ'
In order to ,eep servers operating properly; it is o2ten ne!essary to "ring the1 down 2or s!hedled
1aintenan!e. Instead o2 having these 1aintenan!e otages re2le!ted as a tre servi!e otage; they !an
"e in!lded in an JPoller Otage CalendarJ and then re2eren!ed "y the poller pa!,age sing the
outage-calendar tag. This tag !ontains the na1e o2 a valid otage in the poll-outages.0ml
2ile.
The outage-calendar tag is optional and n"onded %i.e. yo !an re2eren!e 1ore than one
otage'.
Sin!e version 1.5.Q1 yo !an !on2igre s!hedled otages 2ro1 the *#I; got to Ad1in <N S!hedled
Otages.
Be2ore version 1.5.Q1; there were three types o2 otages? wee,ly; 1onthly and spe!i2i!. Sin!e 1.5.Q1
there is also the possi"ility to !on2igre daily otages.
I2 yo have the pro"le1 that nodes are reported to "e down thoght they are within a daily otage
whi!h goes past 1idnight try to de2ine two ti1espans within the otage; one ntil 1idnight and the
other one starting a2ter 1idnight; e.g. instead o2 otage 22?..?..<.1?..?.. de2ine 22?..?..<2$?5Q?5Q
and ..?..?..<.1?..?...
/@a1ples 2ro1 the poll-outages 2ile?
Goutage name<.global. t#pe<.wee"l#.H
Gtime da#<.sunda#. begins<.34:76:66. ends<.34:28:66./H
Gtime da#<.sunda#. begins<.37:76:66. ends<.32:28:66./H
Gtime da#<.monda#. begins<.37:76:66. ends<.32:28:66./H
Gtime da#<.tuesda#. begins<.37:66:66. ends<.32:28:66./H
Ginter/ace address<.3F4.39:.6.3./H
Ginter/ace address<.3F4.39:.6.79./H
Ginter/ace address<.3F4.39:.6.7:./H
G/outageH
This de2ines an otage !alendar !alled Jglo"alJ that is rn every wee,. It spe!i2ies 2or otage ti1es?
Snday starting at 12?$. p1 and lasting 15 1intes; Snday starting at 1?$. p1 and lasting an hor and
2i2teen 1intes; the sa1e otage on )onday; and one on Tesday 2ro1 1?.. p1 to 2?(5 p1. This is to
de1onstrate that yo !an have 1ltiple otages on a given day and the sa1e otage on di22erent days.
Three inter2a!es will "e a22e!ted.
Goutage name<.hub maintenance. t#pe<.monthl#.H
Gtime da#<.3. begins<.47:76:66. ends<.47:28:66./H
Gtime da#<.38. begins<.43:76:66. ends<.43:28:66./H
Gtime da#<.38. begins<.47:76:66. ends<.47:28:66./H
Ginter/ace address<.3F4.39:.366.482./H
Ginter/ace address<.3F4.39:.363.482./H
Ginter/ace address<.3F4.39:.364.482./H
Ginter/ace address<.3F4.39:.367.482./H
Ginter/ace address<.3F4.39:.362.482./H
Ginter/ace address<.3F4.39:.368.482./H
Ginter/ace address<.3F4.39:.369.482./H
Ginter/ace address<.3F4.39:.365.482./H
G/outageH
This otage !alendar is !alled Jh" 1aintenan!eJ that is rn every 1onth. On the 2irst o2 the 1onth the
otage "egins at 11?$. p1 and lasts 15 1intes. The sa1e otage o!!rs on the 15th o2 the 1onth in
addition to another otage 2ro1 Q?$. p1 to Q?(5 p1. Ths yo !an have the sa1e otage on di22erent
dates as well as 1ore than one otage on a parti!lar date. /ight inter2a!es are a22e!ted "y this otage.
Goutage name<.pro0# ser1er tuning. t#pe<.speci/ic.H
Gtime begins<.36-No1-4663 35:76:66. ends<.33-No1-4663 6::66:66./H
Ginter/ace address<.3F4.39:.6.3./H
G/outageH
It is also possi"le to in!lde an otage on a spe!i2i! date and ti1e. This otage na1ed Jpro@y server
tningJ "egan on &ove1"er 1.th; 2..1 at 5?$. p1 and lasted ntil P?.. a1 the ne@t day. This a22e!ted
one inter2a!e. 8o !an have 1ore than one Jti1eJ entry per spe!i2i! otage.
I2 a parti!lar otage !alendar is in!lded in a poller pa!,age; then polling will not o!!r dring this
ti1e. &ote that this does not 1ean that the servi!e will "e !onsidered JpJ dring this ti1e. I2 the
1aintenan!e is started a 1inte too soon and an otage is dete!ted; then no poll will "e 1ade to restore
the servi!e ntil a2ter the otage window has !losed.
Downti-e Models
One o2 the 1ost power2l 2eatres o2 the Open&)S poller is its downti1e 1odels. The goal o2 the
poller is to veri2y servi!e levels; and everyone involved wold li,e to see those "e as high as possi"le.
By de2alt; the poller will poll every 2ive 1intes. I2 that polling rate was stati!; then the shortest an
otage !old "e wold "e 2ive 1intes? one poll to note the otage and the ne@t to note it was restored.
In these days o2 servi!e levels in the JQQ.QQTJ range; a 2ive 1inte otage !an "e devastating. 8o
1ight as well garantee J1..TJ availa"ility sin!e any otage will "rea, yor servi!e level agree1ent.
To help !o1"at this; Open&)S ses adaptive polling. On!e an otage is dete!ted; polling is
te1porarily in!reased to try and dete!t; as soon as possi"le; when the servi!e is restored.
Gdowntime inter1al<.76666. begin<.6. end<.766666./H GP-- 76sJ 6J 8m
--H
Gdowntime inter1al<.766666. begin<.766666. end<.27466666./H GP-- 8mJ 8mJ 34h
--H
Gdowntime inter1al<.966666. begin<.27466666. end<.274666666./H GP-- 36mJ 34hJ 8d
--H
Gdowntime begin<.274666666. delete<.true./H GP-- an#thing
a/ter 8 da#s delete --H
9hat this downti1e 1odel will do is the 2ollowing? 2ro1 the 1o1ent the otage "egins %ti1e .' ntil
2ive 1intes later %ti1e $..;... 1s'; the poller will poll every $. se!onds %$.;... 1s'. A2ter 2ive
1intes; it is ass1ed that any servi!e level that wold "e greatly a22e!ted "y a 2ive 1inte otage has
"een "ro,en; so 2ro1 2ive 1intes %$..;... 1s' into the otage ntil the 2irst 12 hors o2 the otage
%($;2..;... 1s' polling res1es its 2ive 1inte %$..;... 1s' interval.
I2 the otage is older than 12 hors; it 1st not "e i1portant andAor it is di22i!lt to 2i@; so 2ro1 when
the otage is 12 hors old ntil it is 5 days %($2;...;... 1s' old; the interval is red!ed to poll on!e
every ten 1intes %7..;... 1s'.
I2 a servi!e has "een down 2or longer than 2ive days; it is deleted %well; 1ar,ed as J2or!ed n1anagedJ'
and no longer polled. &ote that this is optional; yo !an !ontine to poll a down servi!e 2or as long as
yo wold li,e. Gor the last downti1e interval in the 1odel; =st leave the JendJ ti1e o22 in order to
e@tend polling inde2initely.
(olle Monitos
Gor ea!h servi!e in a poller pa!,age; there 1st "e a !orresponding 1onitor. In the !apsd !on2igration;
this was in!lded on the servi!e line itsel2; "t sin!e there is the potential 2or a parti!lar servi!e to
e@ist 1any ti1es in the poller !on2igration 2ile; this "it o2 "oo,,eeping was pt; on!e; at the end o2 the
2ile.
Gmonitor ser1ice<.&omino,,OP. class-
name<.org.opennms.netmgt.poller.&omino,,OPMonitor./H
Gmonitor ser1ice<.,+MP. class-
name<.org.opennms.netmgt.poller.,cmpMonitor./H
Gmonitor ser1ice<.+itri0. class-
name<.org.opennms.netmgt.poller.+itri0Monitor./H
Gmonitor ser1ice<.O&'P. class-
name<.org.opennms.netmgt.poller.OdapMonitor./H
Gmonitor ser1ice<.-%%P. class-
name<.org.opennms.netmgt.poller.-ttpMonitor./H
Gmonitor ser1ice<.-%%P-:6:6. class-
name<.org.opennms.netmgt.poller.-ttpMonitor./H
Gmonitor ser1ice<.-%%P-:666. class-
name<.org.opennms.netmgt.poller.-ttpMonitor./H
Gmonitor ser1ice<.-%%PS. class-
name<.org.opennms.netmgt.poller.-ttpsMonitor./H
Gmonitor ser1ice<.SM%P. class-
name<.org.opennms.netmgt.poller.SmtpMonitor./H
Gmonitor ser1ice<.&-+P. class-
name<.org.opennms.netmgt.poller.&hcpMonitor./H
Gmonitor ser1ice<.&NS. class-
name<.org.opennms.netmgt.poller.&nsMonitor. /H
Gmonitor ser1ice<.I%P. class-
name<.org.opennms.netmgt.poller.ItpMonitor./H
Gmonitor ser1ice<.SNMP. class-
name<.org.opennms.netmgt.poller.SnmpMonitor./H
Gmonitor ser1ice<.Oracle. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.Postgres. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.M#SQO. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.S#base. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.,n/ormi0. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.SQOSer1er. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.SS-. class-
name<.org.opennms.netmgt.poller.%cpMonitor./H
Gmonitor ser1ice<.,M'P. class-
name<.org.opennms.netmgt.poller.,mapMonitor./H
Gmonitor ser1ice<.POP7. class-
name<.org.opennms.netmgt.poller.Pop7Monitor./H
8o shold not need to 1odi2y this se!tion nless yo 1anally add yor own pollers.
Doc,-entation fo Specific (olles
So1e do!1entation has "een written 2or?
ETTP .
Radis .
Concl,sion
It is hoped that this Eow<To has proved se2l. Please dire!t !orre!tions and !o11ents to the athor.
3!a-ples
)onitoring a -ell Power/dge /@panda"le RAI- Controller $A-i
Data Collection Config,ation %ow>To
Contents
[hide]
1
Introd
!tion
1
.
1

P

r
p
o
s
e

1
.
2

C
o
p
y
r
i
g
h
t
2
Overvie
w
2
.
1

S
&
)
P

2
.
2

&
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Intod,ction
(,pose
This Eow<To is one in a series designed to serve as a re2eren!e 2or getting started with Open&)S.
/ventally; these do!1ents will !over everything ne!essary to get Open&)S installed and rnning in
yor environ1ent.
Cop*ight
Content is availa"le nder a Creative Co11ons Attri"tion<&onCo11er!ial<ShareAli,e2.5 4i!ense.
Oveview
Open&)S is an enterprise<grade networ, 1anage1ent plat2or1 developed nder the open<sor!e
1odel. #nli,e traditional networ, 1anage1ent prod!ts whi!h are very 2o!sed on networ, ele1ents
s!h as inter2a!es on swit!hes and roters; Open&)S 2o!ses on the servi!es networ, resor!es
provide? we" pages; data"ase a!!ess; -&S; -ECP; et!. %althogh in2or1ation on networ, ele1ents is
also availa"le'.
There are two 1a=or ways that Open&)S gathers data a"ot the networ,. The 2irst is throgh poing.
Pro!esses !alled monitors !onne!t to a networ, resor!e and per2or1 a si1ple test to see i2 the resor!e
is responding !orre!tly. I2 not; events are generated. The se!ond is throgh data !olle!tion sing
*oe*tors. Crrently data !an "e !olle!ted "y ?
S&)P;
&SClient %the &agios Agent';
6)L;
ETTP
*etting data !olle!tion !on2igred properly see1s to "e one o2 the 1ore di22i!lt tas,s in Open&)S;
"t it>s =st a 1atter o2 Jgetting all yor d!,s in a rowJ. There are several things that have to happen in
order 2or this to wor,. Gor all data !olle!tion 1ethods?
!apsd
-ring the dis!overy pro!ess; !apsd dis!overs whether the varios *oe*ta.e servi!es e@ist on
the dis!overed node. )ore spe!i2i!ally 2or S&)P !olle!tion; !apd 1st "e a"le to a!!ess S&)P
in2or1ation on that inter2a!e and to 2or1 so1e "asi! relationships; s!h as IP Address to i2Inde@.
!olle!td<!on2igration.@1l
6st as in the poller-con/iguration.0ml 2ile %!overed elsewhere'; inter2a!es are 1apped
to pa!,ages 2or !olle!tion in this 2ile. I2 data !olle!tion is re:ired on an inter2a!e; it needs to
e@ist in a pa!,age in this 2ile. The de2alt !on2igration is sita"le 2or 1ost initial prposes.
SNM(
Gor S&)P data !olle!tion; the 2ollowing 2iles 1st "e !on2igred !orre!tly?
sn1p<!on2ig.@1l
Gor ea!h inter2a!e; a valid !o11nity string 1st e@ist in this 2ile.
data!olle!tion<!on2ig.@1l
/a!h pa!,age in the collectd !on2igration 2ile points to an snmp-collection de2inition
in this 2ile. /a!h snmp-collection de2ines what in2or1ation to !olle!t via S&)P; and it is
pretty power2l as 2ar as !on2igration goes. The de2alt !on2igration is 2airly !o1plete 2or "asi!
prposes; and will pro"a"ly not re:ire 1!h !hanging initially.
NSClient
Gor &SClient data !olle!tion; yo need to install the &SClient agent on the 9indows servers
%http?AAns!lient.ready2rn.nlA'; !on2igre it with a portApassword; and then !on2igre Open&)S?
ns!lient<!on2ig.@1l
This is where yo !on2igre passwords; ti1eots and ports to !onne!t on. /a!h inter2a!e yo
want to !olle!t on 1st have a valid password spe!i2ied in this 2ile %althogh yo !an spe!i2y a
de2alt set o2 para1eters to si1pli2y !on2igration'.
ns!lient<data!olle!tion<!on2ig.@1l
This 2ile !on2igres na1ed sets o2 !olle!tions whi!h !orrespond to na1es spe!i2ied in the
!on2igration o2 !olle!td. These !olle!tion sets de2ine whi!h 9indows Per21on !onters to
!olle!t; and how to identi2y whi!h servers they shold "e !olle!ted 2ro1.
EMK
Gor 6)L data !olle!tion; the 2ollowing 2ile 1st "e !on2igred?
=1@<data!olle!tion<!on2ig.@1l
As 2or the other data*oe*tion&*on'ig 2iles; this 2ile spe!i2ies whi!h data points shold "e
!olle!ted. In this !ase; it>s )Beans; and whi!h "eansAattri"tes shold "e !olle!ted. Again; these
are groped "y na1ed set whi!h !orresponds to the na1es sed in pa!,ages in !olle!td.
%TT(
Gor ETTP data !olle!tion; !on2igre?
http<data!olle!tion<!on2ig.@1l
In this !on2ig 2ile yo spe!i2y #R4S and the reglar e@pressions to se to e@tra!t the data points
2ro1 the retrned pages. Again; !olle!tions are groped "y na1es; !orresponding to the na1es
sed in pa!,ages in !olle!ted
The "est part a"ot data !olle!tion is that i2 everything goes s1oothly; it is !o1pletely ato1ated.
Parti!larly; the ot o2 the "o@ !on2igration re:ires relatively little !sto1isation %sally =st
providing S&)P !o11nity strings or &SClient passwords' to "e se2lly 2n!tional.
Data Collection
sn-p>config.!-l
The para1eters sed to !onne!t with S&)P agents are de2ined in the snmp-con/ig.0ml 2ile. Eere
is an e@a1ple?
Gsnmp-con/ig retr#<.7. timeout<.:66. read-communit#<.public. write-
communit#<.pri1ate.H
Gde/inition 1ersion<.14c.H
Gspeci/icH3F4.39:.6.8G/speci/icH
G/de/initionH
Gde/inition retr#<.2. timeout<.4666.H
Grange begin<.3F4.39:.3.3. end<.3F4.39:.3.482./H
Grange begin<.3F4.39:.7.3. end<.3F4.39:.7.482./H
G/de/initionH
Gde/inition read-communit#<.bubba. write-communit#<.Me"e.H
Grange begin<.3F4.39:.4.3. end<.3F4.39:.4.482./H
G/de/initionH
Gde/inition port<.3393.H
Gspeci/icH3F4.39:.8.86G/speci/icH
G/de/initionH
G/snmp-con/igH
The !o11on attri"tes 2or the snmp-con/ig tag are as 2ollows?
retry
The n1"er o2 atte1pts that will "e 1ade to !onne!t to the S&)P agent. -e2alt is 1
ti1eot
The a1ont o2 ti1e; in 1illise!onds; that Open&)S will wait 2or a response 2ro1 the agent.
-e2alt is $...
read<!o11nity
The de2alt JreadJ !o11nity string 2or S&)P :eries. I2 not spe!i2ied; de2alts to Jp"li!J
write<!o11nity
The de2alt JwriteJ !o11nity string 2or S&)P :eries. &ote that this is 2or 2tre develop1ent
< Open&)S does not per2or1 S&)P JsetsJ at the 1o1ent.
port
This overrides the de2alt port o2 171.
version
Eere yo !an 2or!e either S&)P version 1 "y spe!i2ying Jv1J; version 2! with Jv2!J; or version
$ with Jv$J. -e2alt is Jv1J
Gor S&)Pv$ athenti!ation and !olle!tion %only availa"le when sing S&)P(6'?
se!rity<na1e
A se!rity na1e 2or S&)P v$ athenti!ation
ath<passphrase
The passphrase to se 2or S&)P v$ athenti!ation
ath<proto!ol
The athenti!ation proto!ol 2or S&)P v$. /ither J)-5J or JSEAJ. -e2alt is )-5
priva!y<passphrase
A priva!y pass phrase sed to en!rypt the !ontents o2 S&)P v$ pa!,ets
priva!y<proto!ol
The priva!y proto!ol sed to en!rypt the !ontents o2 S&)P v$ pa!,ets. /ither J-/SJ;
JA/SJ;JA/S1Q2J or JA/S257J. -e2alt is -/S.
engine<id
The engine id o2 the target agent
!onte@t<na1e
The na1e o2 the !onte@t to o"tain data 2ro1 on the target agent.
!onte@t<engine<id
The !onte@t engine id o2 the target entity on the agent.
enterprise<id
An enterprise id 2or S&)P v$ !olle!tion
)ore rarely sed attri"tes in the sn1p<!on2ig tag are?
pro@y<host
A pro@y host to se to !o11ni!ate with the spe!i2ied agent%s'
1a@<vars<per<pd
&1"er o2 varia"les per S&)P re:est. -e2alt is 1.
1a@<re:est<siCe
I2 sing S&)P(6 as the S&)P li"rary; the 1a@i11 siCe o2 otgoing S&)P re:ests. -e2alts
to 755$5; 1st "e at least (P(
All o2 the glo"al para1eters !an "e overridden with de/inition tags. These new S&)P de2initions
!an apply to ranges or spe!i2i! IP addresses.
&ote that i2 an inter2a!e will :ali2y in 1ltiple ranges in this 2ile; the 2irst one 2ond will "e sed.
nsclient>config.!-l
This is the &SClient e:ivalent o2 sn1p<!on2ig.@1l; where para1eters 2or !onne!ting to the &SClient
agent are de2ined. An e@a1ple o2 s!h a 2ile is?
GR0ml 1ersion<.3.6.RH
Gnsclient-con/ig port<.342:. retr#<.7. timeout<.:66. password<.apassword.H
G/nsclient-con/igH
The para1eters that !an "e !on2igred
retry
The n1"er o2 atte1pts that will "e 1ade to !onne!t to the &SClient agent. -e2alt is 1
ti1eot
The a1ont o2 ti1e; in 1illise!onds; that Open&)S will wait 2or a response 2ro1 the agent.
-e2alt is $...
port
This overrides the de2alt port o2 12(P.
password
The password %i2 any' re:ired to athenti!ate to the &SClient agent. -e2alt is the string J&oneJ
As with sn1p<!on2ig.@1l; all o2 the glo"al para1eters !an "e overridden with de/inition tags.
These new de2initions !an apply to ranges or spe!i2i! IP addresses. &ote that i2 an inter2a!e is 1at!hed
in 1ltiple ranges in this 2ile; the 2irst one 2ond will "e sed.
Capabilities
As e@plained in the -is!overy Eow<To; the !apa"ilities !he!, pro!ess starts with a &ewSspe!t event
%generated either 1anally or throgh the dis!overy pro!ess'. This &ewSspe!t event is re!eived "y
the !apa"ilities dae1on %!apsd'.
The !apsd pro!ess is responsi"le 2or testing IP addresses 2or parti!lar !apa"ilities. /a!h proto!ol that
!an "e 1onitored is de2ined in the !apsd<!on2igration.@1l 2ile. #pon re!eipt o2 a &ewSspe!t event;
!apsd "egins to test ea!h !on2igred proto!ol to see i2 it e@ists on that devi!e.
9hen testing S&)P; !apsd 1a,es an atte1pt to re!eive the Syste1 O"=e!t I- %syste1OI-' 2or the
devi!e sing the !o11nity string and port de2ined in snmp-con/ig.0ml. I2 this s!!eeds; the
S&)P proto!ol is 1ar,ed as JtreJ 2or this IP address.
The !apsd pro!ess will 2irst !o1plete all tests 2or all proto!ols de2ined in the 2ile 2or the inter2a!e in
:estion; and a2ter that is !o1plete; i2 S&)P is JtreJ 2or this IP address; 1ore tests are per2or1ed "y
!apsd.
Girst; three threads are generated to !olle!t the data 2ro1 the syste1 tree; the ipAddrTa"le and i2Ta"le.
I2; 2or so1e reason; the ipAddrTa"le or i2Ta"le are navaila"le; the pro!ess stops %"t the S&)P
syste1 data 1ay show p on the node page < this happens a lot with #C<-avis S&)P agents where
only the syste1 tree is availa"le; "y de2alt; to a :ery sing the Jp"li!J !o11nity string'.
Se!ond; all o2 the s"<target IP addresses in the ipAddrTa"le are rn throgh the !apsd !apa"ilities
s!an. &ote that this is regardless o2 how 1anage1ent is !on2igred in the !on2igration 2ile. This only
happens on the initial s!an and on 2or!ed res!ans. On nor1al res!ans %"y de2alt; every 2( hors'; IP
addresses that are Jn1anagedJ in !apsd are not polled.
Third; every IP address in the ipAddrTa"le that spports S&)P is tested to see i2 it 1aps to a valid
i2Inde@ in the i2Ta"le. I2 this is tre; the IP address is 1ar,ed as a se!ondary S&)P inter2a!e and is a
!ontender 2or "e!o1ing the pri1ary S&)P inter2a!e.
Ginally; all se!ondary S&)P inter2a!es are tested to see i2 they 1at!h a valid pa!,age in the
collectd-con/iguration 2ile. I2 1ore than one valid IP address 1eets all three !riteria
%spports S&)P; has a valid i2Inde@ and is in!lded in a !olle!tion pa!,age'; then the lowest IP address
is 1ar,ed as pri1ary. All S&)P data !olle!tion is per2or1ed via the pri1ary S&)P inter2a!e.
%&ote? in the 2tre we will have the a"ility to !hange to a se!ondary S&)P inter2a!e shold the
pri1ary "e!o1e navaila"le'.
9hen the !apsd testing pro!ess is !o1plete; events are generated; in!lding &ode*ainedServi!e
events.
collectd>config,ation.!-l
-ata !olle!tion is handled via the !olle!td pro!ess. !olle!td listens 2or &ode*ainedServi!e events 2or
the S&)P Jservi!eJ. 9hen this happens; it !he!,s to see i2 the pri1ary S&)P inter2a!e 2or that node
e@ists in a !olle!tion pa!,age %whi!h it shold "y de2inition'. I2 so; the S&)P !olle!tor is instantiated
2or that IP address.
#nless 2or!ed toward one version or another via the sn1p<!on2ig.@1l 2ile; when the !olle!tion is
initialiCed it will !he!, to see i2 S&)Pv2 is spported "y atte1pting a */T<B#4+ on
syste1.sysO"=e!tI-. I2 that 2ails it will revert to version 1.
This is a !hange 2ro1 earlier versions o2 Open&)S. !apsd is no longer responsi"le 2or deter1ining the
S&)P version. 9hether or not S&)Pv2 is spported on a node will no longer show p on the node
page.
4et>s loo, at the collectd-con/iguration.0ml 2ile?
Gcollectd-con/iguration
threads<.8.H
Gpac"age name<.e0ample3.H
G/ilterH,P'&&* ,PO,KE B.B.B.BG//ilterH
Gspeci/icH6.6.6.6G/speci/icH
Ginclude-range begin<.3F4.39:.6.3. end<.3F4.39:.6.482./H
Ginclude-urlH/ile:/opt/OpenNMS/etc/includeG/include-urlH
Gser1ice name<.SNMP. inter1al<.766666. user-de/ined<./alse.
status<.on.H
Gparameter "e#<.collection. 1alue<.de/ault./H
Gparameter "e#<.port. 1alue<.393./H
Gparameter "e#<.retr#. 1alue<.7./H
Gparameter "e#<.timeout. 1alue<.7666./H
G/ser1iceH
Goutage-calendarHMMM /rom poll-outages.0ml MMMG/outage-calendarH
G/pac"ageH
Gcollector ser1ice<.SNMP. class-
name<.org.opennms.netmgt.collectd.Snmp+ollector./H
G/collectd-con/igurationH
I2 yo are 2a1iliar with the poller !on2igration 2ile; yo !an pro"a"ly 2igre ot what this 2ile does.
The threads attri"te li1its the n1"er o2 threads that will "e sed "y the data !olle!tion pro!ess.
8o !an in!rease or de!rease this vale "ased pon yor networ, and the siCe o2 yor server.
6st li,e pollers have poller pa!,ages; !olle!tors have !olle!tion pa!,ages. /a!h pa!,age deter1ines
how o2ten the devi!e will "e polled 2or S&)P data; and throgh the collection ,ey; what will "e
polled and how it will "e stored. The e0ample3 pa!,age is the de2alt in!lded ot o2 the "o@.
Hhat Intefaces ae Incl,ded in a (ac<ageM
The pa!,age na1e is 2ollowed "y a list o2 tags that de2ine what inter2a!es will "e in!lded in the
pa!,age. All o2 the tags; e@!ept 2or 2ilter; are optional and n"onded. There are 2ive types o2 these
tags?
2ilter
Spe!i2y a 2ilter that 1at!hes the inter2a!es to "e in!lded in the pa!,age.
G/ilterH,P'&&* ,PO,KE B.B.B.BG//ilterH
/a!h pa!,age 1st have a 2ilter tag that per2or1s the initial test to see i2 an inter2a!e shold "e
in!lded in a pa!,age. Gilters operate on inter2a!es %not nodes' and is dis!ssed in depth in this Eow<
To. Only one /ilter state1ent !an e@ist per pa!,age.
spe!i2i!
Spe!i2y a spe!i2i! IP address to in!lde in the pa!,age.
Gspeci/icH3F4.39:.3.8FG/speci/icH
in!lde<range
This spe!i2ies a parti!lar range o2 IP addresses to in!lde in a pa!,age.
Ginclude-range begin<.3F4.39:.6.3. end<.3F4.39:.6.482./H
e@!lde<range
This spe!i2ies a parti!lar range o2 IP addresses to e@!lde in a pa!,age. This will override an
include-range tag.
Ge0clude-range begin<.3F4.39:.6.366. end<.3F4.39:.6.362./H
in!lde<rl
Spe!i2y a 2ile that !ontains a list o2 IP addresses to in!lde.
Ginclude-urlH/ile:/opt/OpenNMS/etc/includeG/include-urlH
This tag will point to a 2ile that !onsists o2 a list o2 IP addresses; one to a line; that will "e in!lded in
the pa!,age. Co11ents !an "e e1"edded in this 2ile. Any line that "egins with a JMJ !hara!ter will "e
ignored; as will the re1ainder o2 any line that in!ldes a spa!e 2ollowed "y JMJ.
Sevices
Again; drawing on the analogy with pollers; ea!h poller pa!,age has a set o2 proto*os that it 1onitors;
!olle!tors have a set o2 ser,i*es on whi!h they !olle!t data. At the ti1e there is only one? S&)P.
The ser1ice tag na1es the servi!e and also spe!i2ies varios para1eters?
na1e
This is the na1e o2 the servi!e.
interval
This spe!i2ies the polling interval %5 1intes "y de2alt'.
ser<de2ined
In the 2tre; sers 1ay "e a"le to de2ine new !olle!tion sor!es %li,e 2ro1 a log 2ile' throgh a
*#I; "t at the 1o1ent this is set to J2alseJ.
stats
Also in the 2tre; there will "e an ad1in *#I 2or !olle!tors =st as there is 2or pollers; and sers
will "e a"le to trn S&)P data !olle!tion on or o22 2ro1 a we" page. At the 1o1ent; this !an
only "e done "y editing this 2ile and setting stats to either Jo22J or JonJ %de2alt'.
Sevice (aa-etes
There are three para1eters availa"le !o11on to all servi!es?
ti1eot
The ti1eot; in 1illise!onds; to wait 2or a response to an S&)P re:est.
retries
I2 a ti1eot does o!!r; this !ontrols the n1"er o2 atte1pts to 1a,e "e2ore giving p.
port
This allows yo to override the de2alt port 2or S&)P data !olle!tion.
SNM(
In addition; the S&)P servi!e !an have the 2ollowing para1eters spe!i2ied?
!olle!tion
This points to an S&)P !olle!tion in the datacollection-con/ig.0ml 2ile that
deter1ines what O"=e!t I-s %OI-s' will "e !olle!ted.
oid
The !olle!tor will test to see i2 the inter2a!e spports S&)Pv2 "y doing a */T<B#4+ re:est on
this OI-. By de2alt it is set to the syste1OI-. I2 the */T<B#4+ is s!!ess2l; then the rest o2
the polling 2or this devi!e will ta,e advantage o2 S&)Pv2. Otherwise; S&)Pv1 will "e sed.
The intent was to allow 2or this para1eter to override the syste1OI- vale; "t it was never
i1ple1ented; so yo !an ignore this para1eter 2or now.
E+OSS
Open&)S !o1es with li"raries 2or 6Boss (...2. I2 yo need the 6BossColle!tor in order to !olle!t data
2ro1 6Boss (.2.2; these will !ase a silent 2ailre. In that !ase; delete D
UOP/&&)SEO)/VAli"A="ossS(...2.=ar and DUOP/&&)SEO)/VAli"A=np<!lient<(...2.=ar; and pla!e
yor own ="ossall<!lient.=ar in DUOP/&&)SEO)/VAli"A="ossA="ossall<!lient.=ar.
The 6BOSS( and 6Boss$2 servi!es !an have the 2ollowing additional para1eter spe!i2ied?
2a!tory
Spe!i2ies the 1ethod o2 !onne!ting to the 6BOSS server. It !an "e either ETTP or R)I.
NSClient
The &SClient servi!e has the 2ollowing additional para1eter?
ns!lient<!olle!tion
This points to a !olle!tion in the nsclient-datacollection-con/ig.0ml 2ile that
deter1ines what per21on !onters will "e !olle!ted.
O,tage Calenda
In order to ,eep servers operating properly; it is o2ten ne!essary to "ring the1 down 2or s!hedled
1aintenan!e. Instead o2 having these 1aintenan!e otages re2le!ted as a tre servi!e otage; they !an
"e in!lded in an JPoller Otage CalendarJ and then re2eren!ed "y the poller pa!,age sing the
outage-calendar tag. This tag !ontains the na1e o2 a valid otage in the poll-outages.0ml
2ile.
The outage-calendar tag is optional and n"onded %i.e. yo !an re2eren!e 1ore than one
otage'.
Sin!e version 1.5.Q1 yo !an !on2igre s!hedled otages 2ro1 the *#I; got to Ad1in <N S!hedled
Otages.
Be2ore version 1.5.Q1; there were three types o2 otages? wee,ly; 1onthly and spe!i2i!. Sin!e 1.5.Q1
there is also the possi"ility to !on2igre daily otages.
I2 yo have the pro"le1 nodes are reported to "e down thoght they are within a daily otage whi!h
goes past 1idnight try to de2ine two ti1espans within the otage; one ntil 1idnight and the other one
starting a2ter 1idnight; e.g. instead o2 otage 22?..?..<.1?..?.. de2ine 22?..?..<2$?5Q?5Q and
..?..?..<.1?..?...
/@a1ples 2ro1 the poll-outages 2ile?
Goutage name<.global. t#pe<.wee"l#.H
Gtime da#<.sunda#. begins<.34:76:66. ends<.34:28:66./H
Gtime da#<.sunda#. begins<.37:76:66. ends<.32:28:66./H
Gtime da#<.monda#. begins<.37:76:66. ends<.32:28:66./H
Gtime da#<.tuesda#. begins<.37:66:66. ends<.32:28:66./H
Ginter/ace address<.3F4.39:.6.3./H
Ginter/ace address<.3F4.39:.6.79./H
Ginter/ace address<.3F4.39:.6.7:./H
G/outageH
This de2ines an otage !alendar !alled Jglo"alJ that is rn every wee,. It spe!i2ies 2or otage ti1es?
Snday starting at 12?$. p1 and lasting 15 1intes; Snday starting at 1?$. p1 and lasting an hor and
2i2teen 1intes; the sa1e otage on )onday; and one on Tesday 2ro1 1?.. p1 to 2?(5 p1. This is to
de1onstrate that yo !an have 1ltiple otages on a given day and the sa1e otage on di22erent days.
Three inter2a!es will "e a22e!ted.
Goutage name<.hub maintenance. t#pe<.monthl#.H
Gtime da#<.3. begins<.47:76:66. ends<.47:28:66./H
Gtime da#<.38. begins<.43:76:66. ends<.43:28:66./H
Gtime da#<.38. begins<.47:76:66. ends<.47:28:66./H
Ginter/ace address<.3F4.39:.366.482./H
Ginter/ace address<.3F4.39:.363.482./H
Ginter/ace address<.3F4.39:.364.482./H
Ginter/ace address<.3F4.39:.367.482./H
Ginter/ace address<.3F4.39:.362.482./H
Ginter/ace address<.3F4.39:.368.482./H
Ginter/ace address<.3F4.39:.369.482./H
Ginter/ace address<.3F4.39:.365.482./H
G/outageH
This otage !alendar is !alled Jh" 1aintenan!eJ that is rn every 1onth. On the 2irst o2 the 1onth the
otage "egins at 11?$. p1 and lasts 15 1intes. The sa1e otage o!!rs on the 15th o2 the 1onth in
addition to another otage 2ro1 Q?$. p1 to Q?(5 p1. Ths yo !an have the sa1e otage on di22erent
dates as well as 1ore than one otage on a parti!lar date. /ight inter2a!es are a22e!ted "y this otage.
Goutage name<.pro0# ser1er tuning. t#pe<.speci/ic.H
Gtime begins<.36-No1-4663 35:76:66. ends<.33-No1-4663 6::66:66./H
Ginter/ace address<.3F4.39:.6.3./H
G/outageH
It is also possi"le to in!lde an otage on a spe!i2i! date and ti1e. This otage na1ed Jpro@y server
tningJ "egan on &ove1"er 1.th; 2..1 at 5?$. p1 and lasted ntil P?.. a1 the ne@t day. This a22e!ted
one inter2a!e. 8o !an have 1ore than one Jti1eJ entry per spe!i2i! otage.
I2 a parti!lar otage !alendar is in!lded in a !olle!tion pa!,age; then !olle!tion will not o!!r dring
this ti1e.
8inal Tags in collectd-configuration.xml
6st li,e in the poller !on2igration 2ile; ea!h servi!e that is !olle!ted on 1st re2eren!e the !lass that is
to "e sed 2or this !olle!tion. There2ore there shold "e one or 1ore o2 the 2ollowing de2initions %or
yor own i2 yo>ve i1ple1ented yor own !olle!tor !lass'
Gcollector ser1ice<.SNMP. class-
name<.org.opennms.netmgt.collectd.Snmp+ollector./H
Gcollector ser1ice<.NS+lient. class-
name<.org.opennms.netmgt.collectd.NS+lient+ollector./H
Gcollector ser1ice<.D(oss2. class-
name<.org.opennms.netmgt.collectd.D(oss+ollector./H
Gcollector ser1ice<.D(oss74. class-
name<.org.opennms.netmgt.collectd.D(oss+ollector./H
Gcollector ser1ice<.DEM. class-
name<.org.opennms.netmgt.collectd.Dsr396+ollector./H
Gcollector ser1ice<.-ttp&oc+ount. class-
name<.org.opennms.netmgt.collectd.-ttp+ollector. /H
Data Collection Config,ation
datacollection>config.!-l
This is one o2 the 1ore !o1ple@ 2iles in the prod!t. It deter1ines what vales will "e !olle!ted pon
2or a given inter2a!e and pa!,age.
At this point in ti1e; it is pro"a"ly "est to review the str!tre o2 things and e@pand pon the1
so1ewhat. O,ay; =st li,e there are poller pa!,ages 2or 1onitoring servi!e levels; there are !olle!tion
pa!,ages that !ontrol data !olle!tion. Poller pa!,ages !an 1onitor n1eros proto!ols; and !olle!tion
pa!,ages !an !olle!t on n1eros data sor!es; "t 2or now the only one is S&)P.
The S&)P data !olle!tion servi!e points to an S&)P data !olle!tion Js!he1eJ. I a1 ot o2 synony1s
2or Jpa!,ageJ; and I don>t want to get !on2sed "etween the pa!,ages in the !olle!td !on2igration 2ile
and the S&)P !olle!tions in the data !olle!tion !on2igration 2ile; so 2or the prpose o2 this Eow<To;
we>ll !all the1 s*hemes. These s!he1es "ring together OI-s 2or !olle!tion into groups and the grops
are 1apped to systems. The syste1s are 1apped to inter2a!es "y the syste1OI-. In addition; ea!h
Js!he1eJ !ontrols how the data will "e !olle!ted and stored.
It "e!o1es !learer as we 1ove on.
Girst; let>s !he!, ot the datacollection-con/ig.0ml 2ile. Otside o2 the snmp-
collection de2inition %the Js!he1eJ'; there is only one para1eter?
Gdatacollection-con/ig
rrd*epositor# < ./1ar/opennms/rrd/snmp/.H
This deter1ines in whi!h dire!tory the !olle!ted in2or1ation will "e stored. I2 yo !hange this vale;
yo 1st also !hange the rrdRepository vales in the 2ollowing 2iles?
poller-con/iguration.0ml
thresholds.0ml
http-datacollection-con/ig.0ml
Am0-datacollection-con/ig.0ml
nsclient-datacollection-con/ig.0ml
snmp-collection 0eneal Set /p
A2ter the repository had "een de2ined; the ne@t tag starts the snmp-collection de2inition?
Gsnmp-collection name<.de/ault.
ma0EarsPerPdu < .86.
snmpStorageIlag < .all.H
The name attri"te is pretty sel2<e@planatory. This is the na1e that 1st "e 1at!hed to the
"e#<.collection. vale in the !olle!td !on2igration 2ile. The ma0EarsPerPdu pla!es a li1it
on the n1"er o2 S&)P varia"les that will "e retrieved with a */T<B#4+ re:est in one pa!,et. 8o
shold not need to ad=st this; "t i2 yo have so1e S&)P agents that are so1ewhat slow; yo !old
red!e this to ease the load on the1.
The snmpStorageIlag is a pretty i1portant attri"te. It !an "e set to JallJ %de2alt' or Jpri1aryJ.
9hat this does is deter1ine i2 S&)P data !olle!tion will o!!r on all inter2a!es 2or a parti!lar node or
=st the inter2a!e 1ar,ed as Jpri1aryJ. This !an greatly a22e!t the siCe o2 yor Rond Ro"in -ata"ase
%RR-' i2 yo have a n1"er o2 1lti<inter2a!e devi!es li,e swit!hes; "t it won>t have 1!h a22e!t on a
networ, !onsisting 1ainly o2 servers %whi!h tend to only have a single inter2a!e'.
This is one instan!e where yo 1ay want to have two !olle!tion pa!,ages and two !olle!tion s!he1es.
8o !old "ild a !olle!tion pa!,age 2or =st roters where snmpStorageIlag is set to JallJ in the
!olle!tor s!he1e and then have everything else in another pa!,age where it is set to Jpri1aryJ in the
s!he1e.
))D Config,ation
Grrd step < .766.H
GrraH**':'EE*'GE:6.8:3::F4:G/rraH
GrraH**':'EE*'GE:6.8:34::5:2G/rraH
GrraH**':M,N:6.8:34::5:2G/rraH
GrraH**':M'S:6.8:34::5:2G/rraH
G/rrdH
The ne@t se!tion o2 the s!he1e !on2igration spe!i2ies RR- %rond ro"in data"ase' para1eters 2or
storing and rolling p the !olle!ted data sa1pes. RR-Tool is a prod!t that grew ot o2 )RT*. It
!reates a very !o1pa!t data"ase str!tre 2or the storage o2 periodi! data; s!h as is gathered "y
Open&)S. RR- data is stored in 2iles that are !reated when initialiCed to hold data 2or a !ertain
a1ont o2 ti1e. This 1eans that with the 2irst data !olle!tion these 2iles are as large as they will ever
get; "t it also 1eans that yo will see an initially large de!rease in dis, spa!e as !olle!tion is 2irst
started.. On!e the RR- 2ile is 2ll; the oldest data is dis!arded.
Open&)S releases p to and in!lding 1.2.Q sed RR-Tool proper "y de2alt via a 6&I %6ava &ative
Inter2a!e'; 1eaning that the reslting 2iles !old "e read "y other appli!ations !apa"le o2 !ons1ing
RR-Tool>s 2ile 2or1at. The 2iles written "y Open&)S via the 6&I RR- strategy have a /rrd e@tension
"y de2alt. Beginning with the 1.$.2 release; the de2alt is to se 6Ro"in; a pre<6ava i1ple1entation o2
RR-Tool 1..>s 2n!tionality. The 2iles prod!ed via the 6Ro"in RR- strategy have a /0r. e@tension "y
de2alt; and are not !o1pati"le with RR-Tool proper. See the 6Ro"in site 2or the 1otivation "ehind
this de!ision.
The 2irst line; the rrd step siCe; deter1ines the granlarity o2 the data. By de2alt this is set to $..
se!onds; or 2ive 1intes; whi!h 1eans that the data will "e saved on!e every 2ive 1intes per step.
&ote that this is also one o2 the 2ew pla!es where ti1e in Open&)S is re2eren!ed in se!onds instead o2
1illise!onds.
/a!h RR- is 1ade p o2 Rond<Ro"in Ar!hives. An RRA !onsists o2 a !ertain n1"er o2 steps. All o2
the data that is !olle!ted in those steps is then !onsolidated into a single vale that is then stored in the
RR-. Gor instan!e; i2 I poll a !ertain S&)P varia"le on!e a 1inte; I !old have an RRA that wold
!olle!t all sa1ples over a step o2 2ive 1intes; average the %2ive' vales together; and store the average
in the RR-.
The RRA state1ents ta,e the 2or1?
**':+/:0//:steps:rows
RRA
This string de2ines the line as an RRA !on2igration !o11and. It does not !hange; and is always
the te@t JRRAJ.
C2
This 2ield represents the J!onsolidation 2n!tionJ. It !an ta,e one o2 2or vales; AO/RA*/;
)AL; )I&; or 4AST. They are detailed "elow.
@22
This is the J@<2iles 2a!torJ. I2 we are trying to !onsolidate a n1"er o2 sa1ples into one; there is a
!han!e that there !old "e gaps where a vale wasn>t !olle!ted %the devi!e was down; et!.'. In
that !ase; the vale wold "e #&+&O9&. This 2a!tor deter1ines how 1any o2 the sa1ples !an
"e #&+&O9& 2or the !onsolidated sa1ple is !onsidered #&+&O9&. By de2alt this is set to
..5 or 5.T.
steps
This states the n1"er o2 JstepsJ that 1a,e p the RRA. Gor e@a1ple; i2 the step siCe is $..
se!onds %5 1intes' and the n1"er o2 steps is 12; then the RRA is 12 @ 5 1intes I 7. 1intes
I 1 hor long; and it will stored the !onsolidated vale 2or that hor.
rows
The ro-s 2ield deter1ine the n1"er o2 vales that will "e stored in the RRA.
Consolidation 8,nctions
These are sed in the JC2J part o2 an RRA state1ent.
AO/RA*/
Average all the vales over the n1"er o2 steps in the RRA.
)AL
Store the 1a@i11 vale !olle!ted over the n1"er o2 steps in the RRA.
)I&
Store the 1ini11 vale !olle!ted over the n1"er o2 steps in the RRA.
4AST
Store the last vale !olle!ted over the n1"er o2 steps in the RRA.
4et>s "ring this all together with so1e 1ore e@a1ples. Ta,e the 2irst RRA line in the !on2igration?
**':'EE*'GE:6.8:3::F4:
This says to !reate an ar!hive !onsisting o2 the AO/RA*/ vale !olle!ted over 1 step and store p to
PQ2P o2 the1. I2; 2or any step; 1ore than 5.T o2 the vales are #&+&O9&; then the average vale
will "e #&+&O9&. Sin!e the de2alt step siCe is $.. se!onds; or 2ive 1intes; and the de2alt polling
!y!le %in the !olle!td !on2igration' is 2ive 1intes; we wold e@pe!t there to "e one vale per step;
and so the AO/RA*/ shold "e the sa1e as the )I& or )AL or 4AST. PQ2P 2ive 1inte sa1ples at
12 sa1ples per hor and 2( hors per day is $1 days. Ths this RRA will hold 2ive 1inte sa1ples 2or
$1 days "e2ore dis!arding data.
The ne@t lines get a little 1ore interesting?
**':'EE*'GE:6.8:34::5:2
**':M,N:6.8:34::5:2
**':M'S:6.8:34::5:2
The only di22eren!e "etween these lines is the !onsolidation 2n!tion. 9e are going to Jroll pJ the step
1 sa1ples %5 1intes' into 12 step sa1ples %1 hor'. 9e are also going to store three vales? the
average o2 all sa1ples dring the hor; the 1ini11 vale o2 those sa1ples and the 1a@i11 vale.
This data is se2l 2or varios reports %the AO/RA*/ shows throghpt whereas )AL and )I& show
pea,s and valleys'. These will "e stored as one hor sa1ples P0P( ti1es; or $77 days.
So; to s11ariCe; "y de2alt the S&)P !olle!tor will poll on!e every 2ive 1intes. This vale will "e
stored as !olle!ted 2or $1 days. Also; horly sa1ples will "e stored whi!h in!lde the )I&; )AL and
AO/RA*/.
8o !an easily !hange these n1"ers to in!rease or de!rease the a1ont o2 data stored. A 2ew !aveats.
Girst; in!reasing the a1ont andAor 2re:en!y o2 sa1ples will have a dire!t a22e!t on the a1ont o2 dis,
spa!e re:ired. 8o !old add a )I& and )AL RRA 2or the single step RRA; whi!h wold in!rease
ne!essary dis, spa!e "y p to 5.T; "t sin!e "y de2alt there is only one vale; )I&; )AL and
AO/RA*/ will "e the sa1e; so it is not really ne!essary nless yo also in!rease the polling rate.
Se!ond; yo !annot !hange these n1"ers on!e !olle!tion has started withot losing all o2 the !olle!ted
data p to that point. So it is i1portant to set yor vales early. 9hen yo !hange these n1"ers; yo
1st delete all .=r" 2iles in order 2or the1 to "e re<!reated.
A note 2or international sers? i2 yor 4OCA4/ is set to so1ething other than JenB#SJ yo 1ay need
to se a J!o11aJ instead o2 a JperiodJ in the @22; 2or e@a1ple?
**':'EE*'GE:6J8:34::5:2
**':M,N:6J8:34::5:2
**':M'S:6J8:34::5:2
8o have to do this i2 yo see a J!an>t parse arg1ent >RRA?AO/RA*/?..5?1?PQ2P>J in the !olle!td log
2ile.
)eso,ce T*pes
I2 yo wish to !olle!t ta"lar or J!ol1narJ data 2ro1 )IB ta"les that are inde@ed on so1e instan!e
identi2ier other than i'Inde1; yo will need to have a !sto1 resour*e2ype ele1ent 2or ea!h ni:e
ta"le<inde@ing strategy. -etails on this type o2 !olle!tion are availa"le separately in this arti!le.
0o,ps
I2 yo are still with 1e; let>s tal, a"ot so1ething a little 1ore intitive with respe!t to S&)P data
!olle!tion; the S&)P varia"les the1selves. Open&)S !o1es with a tility
%O(3NNMSA%OM3.contib.-ibpase.dist.paseMib.sh' that ato1ates 1!h o2 the wor,
involved in i1porting OI-s 2or !olle!tion; "t its otpt al1ost always re:ires so1e a1ont o2 wor,
"y a h1an operator. /a!h vale is spelled ot in a grop entry?
GgroupsH
Ggroup name < .mib4-inter/aces. i/%#pe < .all.H
GmibObA oid<..3.7.9.3.4.3.4.4.3.36. instance<.i/,nde0. alias<.i/,nOctets.
t#pe<.counter./H
GmibObA oid<..3.7.9.3.4.3.4.4.3.37. instance<.i/,nde0. alias<.i/,n&iscards.
t#pe<.counter./H
GmibObA oid<..3.7.9.3.4.3.4.4.3.32. instance<.i/,nde0. alias<.i/,nErrors.
t#pe<.counter./H
GmibObA oid<..3.7.9.3.4.3.4.4.3.39. instance<.i/,nde0. alias<.i/OutOctets.
t#pe<.counter./H
GmibObA oid<..3.7.9.3.4.3.4.4.3.3F. instance<.i/,nde0. alias<.i/Out&iscards
t#pe<.counter./H
GmibObA oid<..3.7.9.3.4.3.4.4.3.46. instance<.i/,nde0. alias<.i/OutErrors.
t#pe<.counter./H
G/groupH
S&)P varia"le !olle!tions are pla!ed into grops to 1a,e it easier to asso!iate with spe!i2i! ,inds o2
devi!es. A grop !onsists o2 a grop name and the types o2 inter2a!es %i/%#pe' 2or whi!h the 1e1"er
o"=e!ts shold "e !olle!ted.
The i/%#pe attri"te !an ta,e on the 2ollowing vales?
all
This 1eans that all inter2a!e type will "e polled 2or the OI-s in!lded in the grop.
ignore
This is sed 2or s!alar vales; i.e. those that appear only on!e on a devi!e; s!h as the Jload
averageJ 2or a roter. This vale will "e !olle!ted and stored on!e 2or the devi!e.
[spe!i2i! n1eri! vale]
8o 1ay want to poll !ertain vale 2ro1 AT) inter2a!es; others 2ro1 point<to<point 9A& lin,s;
and still others 2ro1 /thernet inter2a!es. Gor e@a1ple?
Ggroup name < .m#-'%M-e0ample. i/%#pe < .75.H
Ggroup name < .ethernet-e0ample. i/%#pe < .9J94.H
See http?AAwww.iana.orgAassign1entsAianai2type<1i"2or a !o1prehensive list o2 i'2ype vales.
As a spe!ial !ase; grops !ontaining o"=e!t de2initions 2or ta"lar %a,a J!ol1narJ' data 2ro1 ta"les
inde@ed "y any instan!e identi2ier other than i'Inde1 1st have a grop type o2 all. This type o2 data is
re2erred to as generi* inde1 data; and is des!ri"ed in 1ore detail in arti!le Colle!ting S&)P data 2ro1
ta"les with ar"itrary inde@es.
It is i1portant never to 1i@ s!alar data; inter2a!e<level data; and generi!<inde@ data in the sa1e grop.
/a!h S&)P )IB varia"le !onsists o2 an OI- pls an instan!e. #sally; that instan!e is either Cero %.'
or an inde@ to a ta"le. At the 1o1ent; Open&)S only nderstands the i2Inde@ inde@ to the i2Ta"le. All
other instan!es have to "e e@pli!itly !on2igred. The alias 1st "e no 1ore than 1Q !hara!ters in
length %a li1itation ste11ing 2ro1 the design o2 RR-Tool'; ni:e per !o1"ination o2 devi!e type and
resor!e type; and sally shold "e ni:e per OI-. The RR- 2ile that is !reated will have the alias as
its 2ilena1e.
Open&)S nderstands 2or types o2 n1eri! varia"les to !olle!t? gaugeJ timetic"sJ
integerJ counter. Sin!e RR- only nderstands n1eri! data; any string types en!ontered will
"e parsed to a n1"er "e2ore "eing persisted in RR- storage. I2 the !onversion !annot "e 1ade
%perhaps yo are trying to !olle!t on syste1&a1e; 2or e@a1ple'; a log 1essage will "e generated.
Starting with Open&)S 1.$.2; a type o2 string !an "e sed to !olle!t string vales and store their
vales separately 2ro1 RR- 2iles.
S*ste-s
On!e the grops are de2ined; the last step is to asso!iate the1 with the syste1s to "e 1onitored. The
S&)P syste1OI- %.1.$.7.1.2.1.1.2; instan!e .' retrns another OI- that is 1eant to ni:ely identi2y
the type o2 e:ip1ent "eing sed.
Gs#stemsH
Gs#stem&e/ name < .Net-SNMP.H
Gs#soidMas"H.3.7.9.3.2.3.4643.486.G/s#soidMas"H
GcollectH
GincludeGroupHmib4-inter/aces-net-snmpG/includeGroupH
GincludeGroupHmib4-host-resources-storageG/includeGroupH
GincludeGroupHmib4-host-resources-s#stemG/includeGroupH
GincludeGroupHmib4-host-resources-memor#G/includeGroupH
GincludeGroupHucd-loada1gG/includeGroupH
G/collectH
G/s#stem&e/H
In this syste1 de2inition; any devi!e with a syste1 OI- that is "eing sed 2or S&)P data !olle!tion
whose syste1OI- starts with J.1.$.7.1.(.1.2.21.25..J will !olle!t on 2ive )IB grops? 1i"2<
inter2a!es<net<sn1p; 1i"2<host<resor!es<storage; 1i"2<host<resor!es<syste1; 1i"2<host<resor!es<
1e1ory and !d<loadavg.
I2 yo want to 1at!h against a spe!i2i! oid se RsysoidN instead o2 Rsysoid)as,N
So; to review on!e again < yo set p !olle!tion pa!,ages; si1ilar to poller pa!,ages; in the
collectd-con/iguration.0ml 2ile. A ,ey in that 2ile points to a parti!lar snmp-
collection tag in datacollection-con/ig.0ml %this is what I have re2erred to as a
s!he1e'. Gor ea!h s!he1e; yo set p how the data will "e stored; whether all inter2a!es will "e
!olle!ted on or =st the pri1ary inter2a!e 2or ea!h node; what )IB OI-s are in!lded in ea!h )IB
grop; and what )IB grops are asso!iated with what syste1s; "ased on the syste1 de2inition.
*ot itH 9hew.
Mod,la Config,ation
As o2 Open&)S 1.P.( and 1.Q.1; it is now possi"le to 1odlarly in!lde 1ltiple !on2igration 2iles
into data!olle!tion<!on2ig.@1l; 1!h li,e event!on2.@1l.
Girst; 1a,e sre yo have an ?OPENNMS;-OME/etc/datacollection dire!tory. I2 not; 1a,e it.
Then; !reate one or 1ore !on2igration 2iles in that dire!tory. The opening tag shold "e
JRdata!olle!tion<gropNJ with a na1e set; whi!h then !an !ontain any n1"er o2 resor!eType; grop;
and syste1-e2 de2initions; =st li,e the 1ain data!olle!tion<!on2ig.@1l 2ile. Gor e@a1ple?
GR0ml 1ersion<.3.6.RH
Gdatacollection-group name<.+isco.H

Gresource%#pe name<.cbgpPeer'ddrIamil#Pre/i0Entr#. label<.+isco (GP Peer /
'ddress Iamil#.
resourceOabel<.Peer ?Ksub,nde0T6J2UL.H
GpersistenceSelectorStrateg#
class<.org.opennms.netmgt.collectd.Persist'llSelectorStrateg#./H
GstorageStrateg#
class<.org.opennms.netmgt.dao.support.,nde0StorageStrateg#./H
G/resource%#peH

Ggroup name<.cisco-bgp-peer-addr-/amil#-pre/i0-stats. i/%#pe<.all.H
GmibObA oid<..3.7.9.3.2.3.F.F.3:5.3.4.2.3.3.
instance<.cbgpPeer'ddrIamil#Pre/i0Entr#.
alias<.cbgpPeer'cceptedP/0. t#pe<.gauge. /H
G/groupH

Gs#stem&e/ name<.+isco *outers.H
Gs#soidMas"H.3.7.9.3.2.3.F.3.G/s#soidMas"H
GcollectH
GincludeGroupHadsl-lineG/includeGroupH
GincludeGroupHr/c3738-/rame-rela#G/includeGroupH
GincludeGroupHmib4-S-inter/acesG/includeGroupH
GincludeGroupHiet/-bgp2-peer-statsG/includeGroupH
GincludeGroupHcisco-bgp-peer-addr-/amil#-pre/i0-statsG/includeGroupH
G/collectH
G/s#stem&e/H

G/datacollection-groupH
Then; add it near the end o2 data!olle!tion<!on2ig.@1l within an sn1p<!olle!tion tag; sing the grop
na1e yo de2ined in the individal L)4 2ile?
GR0ml 1ersion<.3.6.RH
Gdatacollection-con/ig ...H
Gsnmp-collection ...H
...
Ginclude-collection data+ollectionGroup<.+isco. /H
G/snmp-collectionH

G/datacollection-con/igH
nsclient>datacollection>config.!-l
Girst; a si1ple e@a1ple?
Gnsclient-datacollection-con/ig rrd*epositor#<./opt/opennms/share/rrd/snmp/.H
Gnsclient-collection name<.de/ault.H
Grrd step<.766.H
GrraH**':'EE*'GE:6.8:3::F4:G/rraH
GrraH**':'EE*'GE:6.8:34::5:2G/rraH
GrraH**':M,N:6.8:34::5:2G/rraH
GrraH**':M'S:6.8:34::5:2G/rraH
G/rrdH
GwpmsH
GP-- ' group /or collecting processor stats.
+hec" the "e#1alue .V Processor %ime. - i/ itCs there Tshould beU collect
this whole group.
+hec" e1er# rechec",nter1al milliseconds T7966666 < 3hrU --H
Gwpm name<.Processor. "e#1alue<.WProcessorT;%otalUWV Processor %ime.
rechec",nter1al<.7966666.H
GP-- +ollect these attributes. Name is the name to pass to NS+lient.
'lias is the local name /or the **& /ile
%#pe is used to con1ert 1alues around
ma01al/min1al are optional--H
Gattrib name<.WProcessorT;%otalUWV Processor %ime. alias<.cpuProc%ime.
t#pe<.Gauge./H
Gattrib name<.WProcessorT;%otalUWV ,nterrupt %ime. alias<.cpu,ntr%ime.
t#pe<.Gauge./H
Gattrib name<.WProcessorT;%otalUWV Pri1ileged %ime. alias<.cpuPri1%ime.
t#pe<.Gauge./H
Gattrib name<.WProcessorT;%otalUWV )ser %ime. alias<.cpu)ser%ime.
t#pe<.Gauge./H
G/wpmH
G/nsclient-datacollectionH
G/nsclient-datacollection-con/igH
As 2or data!olle!tion<!on2ig.@1l; the na1e attri"te spe!i2ies a na1e that 1st "e 1at!hed to the
,eyIJ!olle!tionJ vale in the !olle!td !on2igration 2ile. Si1ilarly; the RR- se!tion has the sa1e
synta@ and 1eaning as in data!olle!tion<!on2ig.@1lK see the earlier se!tion on that 2or details.
The per2or1an!e 1onitor !onters to !olle!t are de2ined in the Rwp1sN se!tion. *rops o2 !onters
are de2ined within a Rwp1N tag. /a!h Rwp1N has?
na1e
ar"itrary and 2or yor own prposes
,eyvale
i2 the ,eyvale per21on !onter !an "e o"tained 2ro1 the agent; then the rest o2 the !onters in
the grop are !olle!ted as well.
re!he!,Interval
The presen!e o2 the ,ey vale is re!he!,ed every rechec",nter1al 1illise!onds; to avoid
!asing nde load on the server !he!,ing 2or non<e@istent vales.
&ote that the vale o"tained 2ro1 the ,eyvale is not stored; nless e@pli!itly 1ention in an additional
attrib
Per21on !onters that shold a!tally "e !olle!ted and stored are de2ined in an attrib tag; whi!h has
the 2ollowing para1eters?
na1e
The per2or1an!e !onter to !olle!t. This na1e is the 2ll path to the !onter; whi!h is typi!ally
WRse!tionN%Rspe!i2i!Binstan!eN'WR!onterN. Spe!i2i! instan!e is only sed where there are 1ore
than one o2 a !onter availa"le. Gor e@a1ple; in the Pro!essor se!tion the spe!i2i! inde@ !an "e
either .<%n1 pro!essors<1'; or BTotal to see the total o2 !onters a!ross all instan!es. See the
e@a1ple !on2igration 2iles 2or other e@a1ples o2 synta@ in spe!i2ying the !onter na1e.
alias
This is the sa1e as in the 1i"O"= tag in data!olle!tion<!on2ig.@1l; and de2ines the na1e o2 the
RR- data ite1 that will "e stored. RR- li1itations re:ire it to "e 1Q !hara!ters or less in length.
type
Again the sa1e as 2or 1i"O"= in data!olle!tion<!on2ig.@1l; de2ining the interpretation o2 the data
point. A JgageJ is a point in ti1e vale; e.g Pro!essor sage; where as a J!onterJ is 2or
1onotoni!ally in!reasing !onter vales s!h as Jn1"er o2 http re:estsJ.
N-!>datacollection>config.!-l
Again; we start with an e@a1ple?
GR0ml 1ersion<.3.6.RH
GAm0-datacollection-con/ig
rrd*epositor# < ./opt/opennms/rrd/snmp/.H
GAm0-collection name<.Aboss.
ma0EarsPerPdu < .86.H
Grrd step < .766.H
GrraH**':'EE*'GE:6.8:3::F4:G/rraH
GrraH**':'EE*'GE:6.8:34::5:2G/rraH
GrraH**':M,N:6.8:34::5:2G/rraH
GrraH**':M'S:6.8:34::5:2G/rraH
G/rrdH

GmbeansH
Gmbean name<.S#stem,n/o. obAectname<.Aboss.s#stem:t#pe<Ser1er,n/o.H
Gattrib name<.IreeMemor#. alias<.IreeMemor#. t#pe<.gauge./H
Gattrib name<.%otalMemor#. alias<.%otalMemor#. t#pe<.gauge./H
G/mbeanH
G/mbeansH
G/Am0-collectionH
G/Am0-datacollection-con/igH
The initial tags have the sa1e layot and 1eaning as 2or S&)P %data!olle!tion<!on2ig.@1l' and
&SClient %ns!lient<data!olle!tion<!on2ig.@1l'. The top level tag de2ines where RR- data is stored; the
Am0-collection tag has a na1e that 1at!hes a servi!e !on2igration in !olle!td<!on2igration.@1l;
and the RR- !on2igration has e@a!tly the sa1e synta@ and 1eaning.
A!tal data vales to !olle!t are de2ined within the mbeans tag. This tag has a list o2 mbean tags that
represent the )Beans to !olle!t. /a!h mbean tag has?
na1e
An ar"itrary na1e 2or yor own se
o"=e!tna1e
The o"=e!t na1e sed to identi2y the desired o"=e!t to the 6)L agent
9ithin ea!h mbean tag; the attri"tes o2 that o"tained o"=e!t that shold "e !olle!ted are de2ined in
attrib tags. /a!h attri" has?
na1e
The na1e o2 the attri"te to get ot o2 the 1"ean o"=e!t
alias
This is the sa1e as in the 1i"O"= tag in data!olle!tion<!on2ig.@1l; and de2ines the na1e o2 the
RR- data ite1 that will "e stored. RR- li1itations re:ire it to "e 1Q !hara!ters or less in length.
type
Again the sa1e as 2or 1i"O"= in data!olle!tion<!on2ig.@1l; de2ining the interpretation o2 the data
point. A JgageJ is a point in ti1e vale; e.g Pro!essor sage; where as a J!onterJ is 2or
1onotoni!ally in!reasing !onter vales s!h as Jn1"er o2 http re:estsJ.
http>datacollection>config.!-l
Again; and e@a1ple?
GR0ml 1ersion<.3.6. encoding<.)%I-:.RH
Ghttp-datacollection-con/ig
0mlns:http-dc<.http://0mlns.opennms.org/0sd/con/ig/http-datacollection.
0mlns:0si<.http://www.w7.org/4663/SMOSchema-instance.
0si:schemaOocation<.http://0mlns.opennms.org/0sd/con/ig/http-datacollection
http://www.opennms.org/0sd/con/ig/http-datacollection-con/ig.0sd.
rrd*epositor#<.=install.share.dir=/rrd/snmp/. H
Ghttp-collection name<.doc-count.H
Grrd step<.766.H
GrraH**':'EE*'GE:6.8:3::F4:G/rraH
GrraH**':'EE*'GE:6.8:34::5:2G/rraH
GrraH**':M,N:6.8:34::5:2G/rraH
GrraH**':M'S:6.8:34::5:2G/rraH
G/rrdH
GurisH
Guri name<.document-counts.H
Gurl path<./test/resources/httpcolltest.html.
user-agent<.MoMilla/8.6 TMacintoshX )X PP+ Mac OS SX enU
'ppleNebKit/234 TK-%MOJ li"e Gec"oU Sa/ari/234.
matches<..BTY6-FZ[U.B. response-range<.366-7FF. H
G/urlH
GattributesH
Gattrib alias<.document+ount. match-group<.3. t#pe<.counter74./H
G/attributesH
G/uriH
G/urisH
G/http-collectionH
G/http-datacollection-con/igH
Hhee Does 'll the Data 0oM
In the last se!tion; RR- 2iles were 1entioned pretty o2ten. 9here do they goH 9ell; they go into the
RR- repository; de2ined in datacollection-con/ig.0ml; whi!h "y de2alt is
/1ar/opennms/rrd/snmp.
Gor ea!h node 2or whi!h data is !olle!ted; there will e@ist a dire!tory that !onsists o2 the node n1"er.
Ths; i2 the syste1 was !olle!ting data on node 1P; there wold "e a dire!tory !alled
/1ar/opennms/rrd/snmp/3:.
RR-s that are !olle!ted 2or that node %i.e; the node OI- 1at!hes the syste1>s sysoid)as,; and the
1i"O"= o2 the grops in!lded in that syste1 have i2Type XI ignore' will "e present in this dire!tory.
The 2iles will "e na1es with the alias de2ined in the 1i"O"= ele1ent; pls J.rrdJ %6&I' or J.=rdJ
%6Ro"in'. Gor e@a1ple? !pPer!entBsy.rrd and 1e1orySiCe.rrd. The e@tension depends whether the
RR- is !on2igred to se 6&I or 6Ro"in %the de2alt now'.
Gor ea!h inter2a!e on the node that is "eing sed 2or data !olle!tion; a s"dire!tory will e@ist !onsisting
o2 the inter2a!e des!ription %i2-es!r' and the )AC address. The )AC address was added "e!ase on
so1e swit!hes; 1ltiple ports will have the sa1e i2-es!r. There have "een tales o2 devi!es where the
inter2a!es had "oth the sa1e i2-es!r and )AC address; and at the 1o1ent no soltion e@ists 2or that
!ase. So; i2 on node 1P there was an inter2a!e des!ri"ed as Jeth.J; its RR- dire!tory wold "e
/1ar/opennms/rrd/snmp/3:/eth6-YM'+ 'ddr.Z. Into that dire!tory wold go all inter2a!e
spe!i2i! RR- 2iles s!h as i2InO!tets.rrd and i2OtO!tets.rrd.
To,bleshooting
Eere are a 2ew tips to help tro"leshooting S&)P data !olle!tion isses.
veif* sn-p access to device
Oeri2y that the node spports S&)P and is rea!ha"le 2ro1 yor openn1ns server. Girst try to ping the
devi!e. I2 s!!ess2ll roting to the devi!e is wor,ing.
Try sn1pwal, li,e
snmpwal" -1 4c -c secret nodename
2ro1 the server openn1s is rnning on. There 1ight "e 2irewall or roting isses i2 yo try it 2ro1
another 1a!hine.
I2 this 2ails !he!, i2 the devi!e has !on2igred sn1p a!!ess as e@pe!ted; !he!, the sn1p !o11nity;
sn1p version %1ight "e Oersion 1; 2! or $' and that there are no 2irewalls; a!!ess<lists or whatever
denying a!!ess to the devi!e.
veif* openn-s sn-p access to device
I2 still no S&)P in2or1ation shows p on the node page in the 9e"#I; !he!, the sn1p<!on2ig.@1l 2ile
to insre that the proper !o11nity na1e is !on2igred %and as a"ove insre that a given address is not
in!lded in 1ltiple ranges; as only the 2irst 1at!h will "e sed'.
The ne@t thing to !he!, is the !apsd.log 2ile. I2 this is a new installation; loo, to see where !apsd tested
that devi!e. I2 it is an old installation; yo !an 2or!e a res!an 2ro1 the node page; and this shold !reate
new logs.
4oo, to see that the S&)P servi!e was set to JtreJ 2or that IP address. I2 not; !he!, the S&)P
!o11nity na1e on!e again. Play with it ntil a res!an does prod!e a JtreJ.
I2 yo have gotten this 2ar; then S&)P in2or1ation 2ro1 the syste1 tree shold show p on the node
page.
veif* sn-p oid to collect
The ne@t error to loo, 2or will "e so1ething li,e?
,/%able: snmp%imeoutError /or: ipaddress
This wold indi!ate that so1ething is wrong as we try to get the ipAddrTa"le and i2Ta"le in2or1ation.
Two things to try here?
1. Rn Jsn1pwal, <! !o11nityBna1e ipaddressJ. This shold wal, the entire S&)P )IB 2or
that devi!e. So1e #C- S&)P agents "y de2alt will only retrn the syste1 tree.
2. Try 2or!ing the version to version 1 in sn1p<!on2ig.@1l and doing a res!an on the node. The
i2Ta"le and ipAddrTa"le !an "e large; and ths "ene2it 2ro1 sing the S&)Pv2 */T<B#4+
!o11and. Eowever; we have seen on at least one devi!e that so1ething gets 2rag1ented with
the !o11and and we never get to see the ta"les. I2 this happens and is 2i@ed "y setting the
version to 1; please; please; please report it and i2 possi"le get a t!pd1p o2 the S&)P pa!,ets
sent dring the !apsd s!an. &ote that the sn1pwal, !o11and 2ro1 the !o11and line ses
S&)P*/T 2ro1 version 1 and will not reprod!e a pro"le1 with version 2.
I2 yo have a valid i2Inde@ %it will "e displayed on the inter2a!e page o2 the 9e"#I'; then yo shold "e
a"le to !olle!t S&)P in2or1ation. Che!, the data"ase?
1. Rn Jps:l <# openn1s openn1sJ.
2. At the !o11and pro1pt; rn JS/4/CT S GRO) ipInter2a!e 9E/R/ nodeidI@KJ and J@J is the
node>s I- n1"er.
$. Che!, to see i2 at least one inter2a!e is 1ar,ed as pri1ary %JPJ'.
(. To e@it; type JW:J
I2 no IP addresses are listed as pri1ary; !he!, yor !olle!td !on2igration 2ile to insre that at least one
IP address that spports S&)P is in!lded in a pa!,age. Corre!t the o1ission and res!an the node.
#p to this point; yo shold "e !he!,ing the !apsd.log 2or errors. Gor the ne@t steps; start loo,ing at
!olle!td.log
veif* collectd is collecting *o, data
4oo,ing at !olle!td.log 2or the pri1ary inter2a!e o2 yor node; yo shold see atte1pts "eing 1ade to
!olle!t via that inter2a!e. 9hile the data!olle!tion<!on2ig.@1l 2ile !ontrols data !olle!tion; "y de2alt
an* sysO"=e!tI- that starts J.1.$.7.1.(.1J; whi!h is to 1y ,nowledge all o2 the1; will 1at!h the 1i"<2
grop whi!h !olle!ts on i2InO!tets; i2OtO!tets; i2In/rrors; i2Ot/rrors; and i2Ot-is!ards. See i2 there
are any se2l log 1essages %s!h as ti1eots; et!.' that !an give yo a !le.
8o 1ay also ena"le de"gging in ?OPENNMS;-OME/etc/log2A.properties %!hange 9AR&
to -/B#* 2or !olle!td?
log2A.categor#.OpenNMS.+ollectd<&E()GJ +OOOE+%&
and loo, again into the !olle!td log 2iles to see i2 data is really !olle!ted.
I2 there is nothing to see that openn1s is trying to !olle!t the desired data loo, into the do,1entation
and yor !on2igration 2or ?OPENNMS;-OME/etc/datacollection-con/ig.0ml and
?OPENNMS;-OME/etc/collectd-con/iguration.0ml.
chec< if collected data is witten to d files
Ginally; loo, in the /1ar/opennms/rrd/snmp/nodeid dire!tory where nodeid is the node I-
n1"er 2or the devi!e yo are interested in. 8o shold see S.=r" 2iles "eing pdated; and yo !an se
this !o11and to see i2 the RR- a!tally !ontains data?
?OPENNMS;-OME/bin/Arobin-inspector
I2 the 2iles in the /1ar/opennms/rrd/snmp/nodeid dire!tory end in J.rrdJ; yo have !on2igred
openn1s to se RR- instead o2 =RR-<Tools; whi!h has a slightly di22erent 2ile 2or1at %=RR- ist the
de2alt sin!e version 1.$.2'. #se
rrdtool dump **&/ilename
to view !olle!ted data.
I2 there still is no data !he!, yor rrd !on2igration in
?OPENNMS;-OME/etc/opennms.propertiesGcodeH. ,/ there is a line li"e
org.opennms.rrd.store(#Group</alse
then there shold "e a S.rrd or S.=rd 2ile 2or every 1i" varia"le yo !olle!t. I2 the line loo,s li,e this
org.opennms.rrd.store(#Group<true
di22erent 1i" varia"les are written to a !o11on 2ile. I2 yo add new 1i" vales to !olle!t yo have to
delete this 2ile so openn1s has to !reate a new one in!lding the new 1i" vales. 8o will loose all
data that is in this 2ileX
Concl,sion
S&)P -ata Colle!tion in Open&)S is one o2 the 1ore di22i!lt things to set p. On!e !on2igred;
however; the pro!ess !an "e !o1pletely ato1ati!. It is hoped that this Eow<To has proved se2l.
Please dire!t !orre!tions and !o11ents to the athor.
Hhat NowM
S&)P Reports Eow<To
-ata !oll graphing
3vent Config,ation %ow>To
Contents
[hide]
1
Introd
!tion
1
.
1

P

r
p
o
s
e

1
.
2

C
o
p
y
r
i
g
h
t
1
.
$

C
o
r
r
e
!
t
i
o
n
s

a
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Intod,ction
(,pose
This Eow<To is one in a series designed to serve as a re2eren!e 2or getting started with Open&)S.
/ventally; these do!1ents will !over everything ne!essary to get Open&)S installed and rnning in
yor environ1ent.
Cop*ight
Content is availa"le nder a Creative Co11ons Attri"tion<&onCo11er!ial<ShareAli,e2.5 4i!ense.
Coections and O-issions
Please s"1it any !orre!tions and o1issions to the athor.
Oveview
Open&)S has three 1ain 2n!tional areas?
-eter1ining Availa"ility o2 &etwor, Servi!es %dis!ssed in part $ o2 this series'
*athering Per2or1an!e -ata via S&)P %dis!ssed in part ( o2 this series'
/vent )anage1ent and &oti2i!ations
The last area? /vents; is the s"=e!t o2 this Eow<To. &oti2i!ations will "e handled in the ne@t part.
/vents are a staple o2 any networ, 1anage1ent syste1 %&)S'. In 2a!t; the 1ain 2n!tion o2 an &)S
!an "e des!ri"ed as dete!ting !hanges within the networ,; and every !hange !an "e thoght o2 as an
event.
Open&)S 1anages events throgh a pro!ess !alled e1entd. There are two 1ain types o2 events?
those generated internally "y the Open&)S so2tware and those generated via e@ternal S&)P traps.
Pro!esses !an generate events; s!h as when the dis!overy pro!ess generates a newSuspect event
when an inter2a!e responds to a ping; and pro!esses !an Js"s!ri"eJ to events; as when the capsd
pro!ess as,s to "e noti2ied whenever a newSuspect event o!!rs so it !an "egin its !apa"ilities s!an.
9hen an event is generated; varios para1eters !an "e set; s!h as its des!ription; a log 1essage and a
severity. In addition; ato1ati! a!tions !an "e lan!hed to send event para1eters to an e@ternal s!ript.
This is !ontrolled throgh the e1entcon/.0ml 2ile.
Open&)S also !o1es with a 2eatre ri!h &oti2i!ation syste1. Parti!lar events !an "e !hosen to !ase
a noti2i!ation to "e sent; s!h as a page or e<1ail.
The 2ollowing se!tions will dis!ss /vents in detail. Sin!e this 2n!tionality !hanged "etween 1.. %the
!rrent prod!tion release at the ti1e this do!1ent was written' and 1.1 %the !rrent develop1ent
release'; notes will "e 1ade as to what is availa"le in whi!h release.
3vents
The e1entcon/.0ml 2ile; 2ond "y de2alt in /opt/OpenNMS/etc; is the !on2igration 2ile that
!ontrols how events are handled. 4et>s loo, 2or a 1o1ent at the top o2 that 2ile?
Ge1ents 0mlns<.http://0mlns.opennms.org/0sd/e1entcon/.H
GglobalH
Gsecurit#H
GdoNotO1errideHlogmsgG/doNotO1errideH
GdoNotO1errideHoperactionG/doNotO1errideH
GdoNotO1errideHautoactionG/doNotO1errideH
GdoNotO1errideHttic"etG/doNotO1errideH
G/securit#H
G/globalH
/very 2ile that !ontains events starts with an Ge1entsH tag and ends with an G/e1entsH tag.
The e1entd pro!ess listens on port 5P10; so other pro!esses; even those e@ternal to Open&)S; !an
send events to the syste1. The Rse!rityN tag is there so that these events !annot override the a!tions
de2ined in the e1entcon/.0ml 2ile. This way; no one with a!!ess to the Open&)S 1a!hine !old
send in an Jatoa!tionJ to open; say; a root window on their 1a!hine.
Intenal 3vents
&ow; a2ter the glo"al settings se!tion o2 the e1entcon/.0ml 2ile !o1e the events. /a!h event 1st
"e de2ined in order to "e properly treated "y the Open&)S syste1. 4et>s loo, at a !o11on event?
node4ostServi!e?
Ge1entH
GueiHhttp://uei.opennms.org/nodes/nodeOostSer1iceG/ueiH
Ge1ent-labelHOpenNMS-de/ined node e1ent: nodeOostSer1iceG/e1ent-labelH
GdescrH
\$7:ltXp\$7:gtX' Vser1iceV outage was identi/ied on inter/ace
Vinter/aceV.\$7:ltX/p\$7:gtX \$7:ltXp\$7:gtX' new Outage record has been
created and ser1ice le1el a1ailabilit# calculations will be
impacted until this outage is resol1ed.\$7:ltX/p\$7:gtX
G/descrH
Glogmsg dest<Clogndispla#CH
Vser1iceV outage identi/ied on inter/ace Vinter/aceV.
G/logmsgH
Gse1erit#HMaAorG/se1erit#H
G/e1entH
/very event is "ra!,eted "y an Ge1entH tag. 9ithin those tags are varios other de2initions?
The #/I
The J#niversal /vent Identi2ierJ is si1ply a la"el to ni:ely identi2y the event. The original
intent was that this wold "e so1e sort o2 L)4 na1espa!e; hen!e the Jhttp?AAJ; "t it really is
=st a la"el. In version 1.1 and "eyond; the Jhttp?AAJ has "een re1oved. &ote? 2or internal
Open&)S events; the #/I is generated dire!tly "y the !ode and !annot "e !hanged withot
1odi2ying the sor!e.
The e1ent-label
This is a plain te@t la"el 2or the event; so1eti1es sed in the we" ser inter2a!e.
descr
is the des!ription o2 the event. 8o !an e1"ed ET)4 entities shold yo wish to 2or1at the
des!ription 1ore 2lly. &ote that there are ele1ents s!h as Vinter/aceV that yo !an pla!e in
the event des!ription and log 1essage %whi!h will "e des!ri"ed later in this do!1ent'.
logmsg
Is a short des!ription or s11ary o2 the event. The JdestJ attri"te !an ta,e on a n1"er o2
vales?
logndispla#
Both log the event in the data"ase and display it in the 9e" #I.
logonl#
4og the event in the data"ase; "t do not display it.
suppress
&either log the event in the data"ase or display it.
donotpersist
-o not log the event in the data"ase; "t still send it to Open&)S dae1ons that are
listening 2or this type o2 event %e.g.? this !an "e sed to generate noti2i!ations'.
discardtraps
This only applies to traps !o1ing in via trapd. This will !ase trapd to dis!ard the trap
withot !reating an event. Other Open&)S dae1ons that are listening 2or this type o2
event will not re!eive this event. This 2eatre was 2irst availa"le in Open&)S 1.$...
se1erit#
This indi!ates the severity o2 the event.
Seveities
9hen setting severities 2or events; I o2ten thin, "a!, to a s!ene 2ro1 the 1ovie Spina 2ap. This 1ovie
is a Jdo!1entaryJ a"ot an aging hard ro!, "and. In one s!ene the interviewer is as,ing a "and
1e1"er to what he attri"tes the "and>s poplarity. Ee points to the a1pli2iers and says Jwhile 1ost
a1pli2iers go to 1.; ors go to 11J. The interviewer as,s why not 1a,e the1 go to 1.; "t =st 1a,e 1.
loder; to whi!h the "and 1e1"er replies J"t ors go to 11J.
I have seen this when people set ot to set severities 2or the events in their &)S. /vents are either
JCriti!alJ %so1ething>s wrong with 1y networ,X' or J&or1alJ. The severities "etween the two tend to
"e ignored. #n2ortnately; it 1a,es it real hard to highlight really i1portant events when everything is
either green or red. So rather than pt everything Jat 11J; I sggest setting nor1al networ, otages as
)inor or )a=or %"t treat the1 =st the sa1e as yo nor1ally wold'; and reserving Criti!al 2or those
events that really 1atter.
Another way to loo, at this is to assign a!tions to severities. Ths a JCriti!alJ event 1eans yo wa,e
p the president o2 yor !o1pany on Christ1as 1orning and rin his holiday. So i2 Eel1t>s "a!,p
IS-& !ir!it goes down; it is do"t2l yo wold want the severity to "e Criti!al. Eowever; i2 the
entire networ, "a!,"one is down; it 1ight warrant that phone !all.
The 2ollowing is a list o2 severities that !o1e with Open&)S; and 1y personal des!ription o2 what
they 1ean. Crrently; the de2alt events in Open&)S don>t e@a!tly !on2or1 to this list; "t they will in
the 2tre?
Criti!al %dar, red'
This event 1eans n1eros devi!es on the networ, are a22e!ted "y the event. /veryone who !an
shold stop what they are doing and 2o!s on 2i@ing the pro"le1.
)a=or %light red'
A devi!e is !o1pletely down or in danger o2 going down. Attention needs to "e paid to this
pro"le1 i11ediately.
)inor %orange'
A part o2 a devi!e %a servi!e; and inter2a!e; a power spply; et!.' has stopped 2n!tioning. The
devi!e needs attention.
9arning %yellow'
An event has o!!rred that 1ay re:ire a!tion. This severity !an also "e sed to indi!ate a
!ondition that shold "e noted %logged' "t does not re:ire dire!t a!tion.
&or1al %green'
In2or1ational 1essage. &o a!tion re:ired.
Cleared %light grey'
This event indi!ates that a prior error !ondition has "een !orre!ted and servi!e is restored.
Indeter1inate %yellow<green'
The severity o2 the event !annot "e deter1ined.
'dditional (aa-etes
A n1"er o2 additional para1eters !an o!!r "etween the Ge1entH tags %note that there are others
de2ined in the !ode "t not yet i1ple1ented'?
GoperinstructH
This is a set o2 instr!tions 2or the &)S operator when the event o!!rs.
Gmouseo1erte0tH
This !an "e te@t to "e displayed when the 1ose is pla!ed over the event in the event "rowser o2
the 9e" #I.
GautoactionH
The te@t 2ollowing this tag 1st "e the !o1plete path to an e@e!ta"le progra1. The progra1
will "e e@e!ted every ti1e the event o!!rs.
&ote that ea!h tag 1st "e !losed with its !orresponding JAJ tag.
3le-ents
Oarios ele1ents !an "e in!lded in the des!ription; log 1essage; operator instr!tion and ato1ati!
a!tions 2or ea!h event. &ot all events will have vales 2or all ele1ents; and so1e re2er to S&)P traps;
whi!h will "e dis!ssed in the ne@t se!tion.
VueiV
The #niversal /vent Identi2ier 2or the event.
VsourceV
The sor!e o2 the event %what pro!ess'.
VtimeV
The ti1e o2 the event.
VnodeidV
The node I- o2 the devi!e that !ased the event.
Vinter/aceV
The inter2a!e asso!iated with the event.
Vser1iceV
The servi!e asso!iated with the event.
Vse1erit#V
The severity o2 the event.
VsnmphostV
The host o2 the S&)P agent that generated the event.
VsnmpV
The S&)P in2or1ation asso!iated with the event.
VidV
The S&)P /nterprise OI- 2or the event.
VgenericV
The *eneri! trap n1"er 2or the event.
Vspeci/icV
The Spe!i2i! trap n1"er 2or the event.
Vcommunit#V
The !o11nity string 2or the trap.
V1ersionV
The S&)P version o2 the trap.
VoperinstructV
The operator instr!tions 2or the event.
Vmouseo1erte0tV
The 1ose over te@t 2or the event.
In version 1.1 and "eyond; there are two 1ore para1eters availa"le?
VnodelabelV
Retrns the node la"el 2or the node given in VnodeidV i2 availa"le.
Vinter/aceresol1V
-oes a reverse loo,p on the Vinter/aceV and retrns its na1e i2 availa"le.
There is also a parm ele1ent that will "e dis!ssed later.
SNM( Taps
Otside o2 internally generated events; Open&)S !an also re!eive S&)P traps via the trapd pro!ess.
These are !ontrolled in e1entcon/.0ml sing the Gmas"H tag. Gor e@a1ple?
Ge1entH
Gmas"H
Gmas"elementH
GmenameHidG/menameH
Gme1alueH.3.7.9.3.2.3.F.F.56.4G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHgenericG/menameH
Gme1alueH9G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHspeci/icG/menameH
Gme1alueH35G/me1alueH
G/mas"elementH
G/mas"H

GueiHhttp://uei.opennms.org/1endor/+isco/traps/cisco+7:66S#s'ggregateStatus+hangeG
/ueiH
Ge1ent-labelH+,S+O-+7:66-M,( de/ined trap e1ent:
cisco+7:66S#s'ggregateStatus+hangeG/e1ent-labelH
GdescrH\$7:ltXp\$7:gtXNoti/ication that the aggregate status o/ a node
has changed.\$7:ltX/p\$7:gtX\$7:ltXtable\$7:gtX
\$7:ltXtr\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXb\$7:gtX
c7:66S#sNe0t%rapSe@Num\$7:ltX/b\$7:gtXG/td\$7:gtX\$7:ltXtd\$7:gtX
VparmY$3ZV

\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXpX\$7:gtXG/p\$7:gtX\$7:ltX/tdX\$7:gtX\$7:l
tX/tr\$7:gtX\$7:ltXtr\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXb\$7:gtX
s#sName\$7:ltX/b\$7:gtX\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtXVparmY$4ZV

\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXpX\$7:gtX\$7:ltX/p\$7:gtX\$7:ltX/tdX\$7:gt
X\$7:ltX/tr\$7:gtX\$7:ltXtr\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXb\$7:gtX
c7:66S#s%rapSe1erit#\$7:ltX/b\$7:gtX\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX
VparmY$7ZV
\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXpX\$7:gtX
clearT3U minorT4U maAorT7U\$7:ltX/p\$7:gtX

\$7:ltX/tdX\$7:gtX\$7:ltX/tr\$7:gtX\$7:ltXtr\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXb\$7:gtX
c7:66S#s'ggregateStatus\$7:ltX/b\$7:gtX\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX
VparmY$2ZV
\$7:ltX/td\$7:gtX\$7:ltXtd\$7:gtX\$7:ltXpX\$7:gtX
clearT3U minorT4U maAorT7UG/pH
\$7:ltX/tdX\$7:gtX\$7:ltX/tr\$7:gtX\$7:ltX/table\$7:gtX
G/descrH
Glogmsg dest<Clogndispla#CHGpH+isco E1ent: +7F66: Node Status has
changed.G/pHG/logmsgH
Gse1erit#H,ndeterminateG/se1erit#H
G/e1entH
This is a Cis!o Syste1s event 2or their C$P.. devi!e. Parts o2 it loo,s si1ilar to the internally
generated events; with the 1ain di22eren!e "eing the Gmas"H "lo!,. This "lo!, !onsists o2
Gmas"elementH tags; and the event will only 1at!h i2 all the de2ined tags are 1et.
This parti!lar event will 1at!h an S&)P trap whose enterprise OI- %id' is e:al to
J.1.$.7.1.(.1.Q.Q.0..2J; its generi! trap vale is enterprise spe!i2i! %7' and its spe!i2i! trap vale is 10.
The possi"le GmenameH vales are?
ei
sor!e
host
sn1phost
nodeid
inter2a!e
servi!e
id
spe!i2i!
generi!
!o11nity
It is possi"le to se the JTJ sy1"ol to indi!ate a wild!ard in the 1as, vales. Gor e@a1ple; to 1at!h all
Cis!o events; I !old se?
Gmas"H
Gmas"elementH
GmenameHidG/menameH
Gme1alueH.3.7.9.3.2.3.F.VG/me1alueH
G/mas"elementH
G/mas"H
&ote? The order in whi!h events are listed in the e1entcon/.0ml 2ile is e@tre1ely i1portant. The
sear!h will stop with the 2irst event de2inition that 1at!hes the given event. Ths i2 the a"ove !ode with
the wild!ard was listed "e2ore the 1ore spe!i2i! cisco+7:66S#s'ggregateStatus+hange
event; the latter event wold never "e generated. Also note that the wild!ard is si1ply a s"string
1at!h. I2 an event was generated 2ro1 a Cis!o devi!e with the /nterprise OI- o2 J.1.$.7.1.(.1.QJ it
wold not 1at!h this event; as there is no trailing J.J. I2 the trailing J.J is le2t o22; !are 1st "e ta,en so
that a trap with an OI- o2 J.1.$.7.1.(.1.QQJ is listed "e2ore the J.1.$.7.1.(.1.QTJ event or else it will
1at!h the 1ore generi! event.
The parm 3le-ent
So1e events; espe!ially S&)P traps; have additional in2or1ation sent with the1 !alled Jvaria"le
"indingsJ or Jvar"indsJ 2or short. In the cisco+7:66S#s'ggregateStatus+hange event listed
a"ove; there are 2or o2 the1; and they !an "e a!!essed sing the parm ele1ent. /a!h para1eter
!onsists o2 a na1e and a vale.
VparmYallZV
9ill retrn a spa!e<separated list o2 all para1eter vales in the 2or1
parmName3<.parmEalue3. parmName4<.parmEalue4. et!.
VparmY1alues-allZV
9ill retrn a spa!e<separated list o2 all para1eter vales asso!iated with the event.
VparmYnames-allZV
9ill retrn a spa!e<separated list o2 all para1eter na1es asso!iated with the event.
VparmYGnameHZV
9ill retrn the vale o2 the para1eter na1ed Rna1eN i2 it e@ists.
VparmY$$ZV
9ill retrn the total n1"er o2 para1eters.
VparmY$GnumHZV
9ill retrn the vale o2 para1eter n1"er Rn1N.
VparmYname-$GnumHZV
9ill retrn the na1e o2 para1eter n1"er Rn1N.
Gor e@a1ple; the cisco+7:66S#s'ggregateStatus+hange event des!ription lists ot ea!h o2
the para1eters. Ths the se!ond para1ater; the s#sName is printed ot sing VparmY$4ZV.
8ilteing on vabinds (OpenNMS =.= and be*ond)
4et>s ta,e a loo, at the e@a1ple cisco+7:66S#s'ggregateStatus+hange event on!e 1ore.
9hat shold its severity "eH Sin!e the event is generated whenever the stats !hanges; yo don>t ,now
i2 the !hange is J"adJ %2ro1 operational to non<operational' or JgoodJ %the non<operational stats is
!leared'. That in2or1ation is !ontained within the para1eters that are passed with the event;
parti!larly para1eter M$; the trap severity.
9ith 1.1; the a"ility to 2ilter on varia"le "indings was added. This is done in the Gmas"H "lo!,. To re<
write the a"ove event?
Gmas"H
Gmas"elementH
GmenameHidG/menameH
Gme1alueH.3.7.9.3.2.3.F.F.56.4G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHgenericG/menameH
Gme1alueH9G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHspeci/icG/menameH
Gme1alueH35G/me1alueH
G/mas"elementH
G1arbindH
G1bnumberH7G/1bnumberH
G1b1alueH7G/1b1alueH
G/1arbindH
G/mas"H
Copying the event and !hanging the Gmas"H "lo!, to the a"ove will 1at!h on the sa1e id; generi!
and spe!i2i! vales; "t also will re:ire that the third para1eter is e:al to J$J %indi!ating a Cis!o
deter1ined trap severity o2 J1a=orJ'. Ths yo !old !hange the des!ription andAor severity to 1at!h
the event.
It is also possi"le to 1at!h 1ore than one var"ind; and 1ore than one vale per var"ind?
G1arbindH
G1bnumberH7G/1bnumberH
G1b1alueH4G/1b1alueH
G1b1alueH7G/1b1alueH
G/1arbindH
G1arbindH
G1bnumberH2G/1bnumberH
G1b1alueH4G/1b1alueH
G1b1alueH7G/1b1alueH
G/1arbindH
The a"ove !ode snippet will 1at!h i2 the third para1eter has a vale o2 J2J or J$J and the 2orth
para1eter has a vale o2 J2J or J$J.
This 2eatre was pdated long "e2ore the 1.7.. release to allow a reglar e@pression 1at!h on the
var"ind vale. 6st spe!i2y the e@pression pre2i@ed with a with a JYJ.
G1arbindH
G1bnumberH3G/1bnumberH
G1b1alueH>Y&dZownG/1b1alueH
G/1arbindH
This will 1at!h a var"ind 1 !ontaining the word J-ownJ or JdownJ anywhere within its vale.
8o !an also do :i!, pre2i@ 1at!hes with the >T> in a var"ind vale?
G1arbindH
G1bnumberH3G/1bnumberH
G1b1alueHError:VG/1b1alueH
G/1arbindH
this will 1at!h var"ind 1 with any string "eginning with J/rror?J
'gainO note that the ode in which events ae listed is ve* i-potant. (,t the -ost specific
events fist.
Decoding vabinds (OpenNMS =.:.7 and be*ond)
A lot o2 )IBs de2ine spe!i2i! varia"les to !ode the vale o2 so1e OI-. As an e@a1ple the sn1p agent
retrns a n1eri!al vale 2or the i2Ad1inStats and i2OperStats? 1 1eans #p and 2 1eans -own.
Be!ase o2 the 2a!t that Open&)S has not a )i"Parser we sally pt this 1ap %"etween n1eri!al
en!oded vale and their 1eaning' into the event -es!ription.
Con2igring the /vent properly now are a"le to de!ode the n1eri!al vale sent into trap var"inds to
the !orresponding string vale into the Rlog1sgN.
4et !onsider a Cis!o ESRP stats !hanges trap % OI- .1.$.7.1.(.1.Q.Q.1.7.2 generi! 7 and spe!i2i! 1';
this trap !orrespond to ei.openn1s.orgAvendorACis!oAtrapsA!EsrpStateChange event.
The trap !ontains the 2ollowing var"ind? !Esrp*rpStand"yState whose possi"le vales are 2ro1 1 to 7
and whose 1eaning is?
initialT3U learnT4U listenT7U spea"T2U standb#T8U acti1eT9U.
, want to displa# in logmsg the literal meaning o/ the -S*P status.
Eere is the original event de2inition?
Ge1entH
Gmas"H
Gmas"elementH
GmenameHidG/menameH
Gme1alueH.3.7.9.3.2.3.F.F.369.4G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHgenericG/menameH
Gme1alueH9G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHspeci/icG/menameH
Gme1alueH3G/me1alueH
G/mas"elementH
G/mas"H
GueiHuei.opennms.org/1endor/+isco/traps/c-srpState+hangeG/ueiH
Ge1ent-labelH+,S+O--S*P-M,( de/ined trap e1ent: c-srpState+hangeG/e1ent-labelH
GdescrHGpH' c-srpState+hange noti/ication is sent when a
c-srpGrpStandb#State transitions to either acti1e or
standb# stateJ or lea1es acti1e or standb# state. %here
will be onl# one noti/ication issued when the state change
is /rom standb# to acti1e and 1ice 1ersa.G/pHGtableH
GtrHGtdHGbH
c-srpGrpStandb#StateG/bHG/tdHGtdHVparmY$3ZV
G/tdHGtdHGpXH
initialT3U learnT4U listenT7U spea"T2U standb#T8U acti1eT9UG/pH
G/tdXHG/trHG/tableH
G/descrH
Glogmsg dest<Clogndispla#CHGpH+isco E1ent: -S*P State +hange.G/pHG/logmsgH
Gse1erit#HMinorG/se1erit#H
G/e1entH
An here 2ollows the new event de2inition in whi!h the stats is de!oded in the log1sg?
Ge1entH
Gmas"H
Gmas"elementH
GmenameHidG/menameH
Gme1alueH.3.7.9.3.2.3.F.F.369.4G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHgenericG/menameH
Gme1alueH9G/me1alueH
G/mas"elementH
Gmas"elementH
GmenameHspeci/icG/menameH
Gme1alueH3G/me1alueH
G/mas"elementH
G/mas"H
GueiHuei.opennms.org/1endor/+isco/traps/c-srpState+hangeG/ueiH
Ge1ent-labelH+,S+O--S*P-M,( de/ined trap e1ent: c-srpState+hangeG/e1ent-labelH
GdescrHGpH' c-srpState+hange noti/ication is sent when a
c-srpGrpStandb#State transitions to either acti1e or
standb# stateJ or lea1es acti1e or standb# state. %here
will be onl# one noti/ication issued when the state change
is /rom standb# to acti1e and 1ice 1ersa.G/pHGtableH
GtrHGtdHGbH
c-srpGrpStandb#StateG/bHG/tdHGtdHVparmY$3ZV
G/tdHGtdHGpXH
initialT3U learnT4U listenT7U spea"T2U standb#T8U acti1eT9UG/pH
G/tdXHG/trHG/tableH
G/descrH
Glogmsg dest<Clogndispla#CHGpH+isco E1ent: -S*P State +hange
to VparmY$3ZV.G/pHG/logmsgH
Gse1erit#HMinorG/se1erit#H
G1arbindsdecodeH
GparmidHparmY$3ZG/parmidH
Gdecode 1arbind1alue<.3. 1arbinddecodedstring<.initial./H
Gdecode 1arbind1alue<.4. 1arbinddecodedstring<.learn./H
Gdecode 1arbind1alue<.7. 1arbinddecodedstring<.listen./H
Gdecode 1arbind1alue<.2. 1arbinddecodedstring<.spea"./H
Gdecode 1arbind1alue<.8. 1arbinddecodedstring<.standb#./H
Gdecode 1arbind1alue<.9. 1arbinddecodedstring<.acti1e./H
G/1arbindsdecodeH
G/e1entH
Eere the par1[M1] %So the 2irst var"ind into the trap is translated sing the de!ode 1ap. I2 the vale o2
the 2irst OI- in this trap is 7 the the log 1essage will "e?
GpH+isco E1ent: -S*P State +hange to acti1e.G/pH
Ceating event definitions fo- tap definition in -ibs
There is a progra1 na1ed mib4opennms availa"le to !onvert trap de2initions 2ro1 1i" 2iles to
openn1s event de2initions; see Converting )IBs #sing 1i"2openn1s
The eventconf.xml 8ile
As 1entioned a"ove; the e1entcon/.0ml 2ile !ontrols the de2inition o2 "oth internal and e@ternal
events in Open&)S. The order in whi!h the events are listed is very i1portant as it is possi"le to have
n1eros event de2initions 2or a given event i2 yo start to 2ilter on varia"le "indings.
All this has !ased the 2ile to grow very large. In 1...2; e1entcon/.0ml was over $.1 )B o2 te@t. In
order to 1a,e this 2ile easier to 1anage; a new tag was introd!ed in 1.1.. !alled Ge1ent-/ileH.
This allows 2iles to "e Jin!ldedJ as part o2 e1entcon/.0ml. The new 2ile now loo,s li,e?
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/7+om.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/'P+.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/(rocade.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/+,M.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/+isco.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/Iore.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/-P.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/,ntel.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/Microso/t.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/No1ell.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/Oracle.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/SonicNall.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/Sero0.e1ents.0mlG/e1ent-/ileH
Ge1ent-/ileH/opt/OpenNMS/etc/e1ents/Standard.e1ents.0mlG/e1ent-/ileH
The in!lded 2iles 1st start with a Ge1entsH tag and end with an G/e1entsH tag. In "etween will
"e Ge1entH de2initions =st li,e in the original e1entcon/.0ml 2ile.
All o2 the events have "een "ro,en ot "y vendor. 9hen Open&)S starts; ea!h 2ile will "e loaded in
order; so again the order in whi!h the 2iles are listed is i1portant. There are also still so1e events in
e1entcon/.0ml. These will "e loaded "e2ore any in!lded 2iles; and "est pra!ti!e states to only list
the internal Open&)S events in that 2ile dire!tly.
At the very "otto1 o2 the 2ile is Ge1ent-
/ileH/opt/OpenNMS/etc/e1ents/de/ault.e1ents.0mlG/e1ent-/ileH. This
!ontains the generi! de2alt events and shold always "e listed last.
A 2ew tips?
Sin!e the syste1 has to s!an throgh all o2 the events to 2ind a 1at!h; it is "est to re1ove event
2iles yo are not sing.
I2 yo !sto1iCe a 2ile; s!h as Cis!o events; yo 1ay want to si1ply !opy it to
J1y.Cis!o.events.@1lJ and list yor 2ile 2irst. This way yo will have less wor, shold the
de2alt 2ile "e !hanged in a 2tre release.
Sa-ple: Discad tc login events
To avoid getting the rt! login events displayed and persisted in the data"ase add the 2ollowing
de2inition in e1entcon/.0ml a"ove the e@isting event 2or ei
uei.opennms.org/internal/authentication/success/ulOogin?
Ge1entH
Gmas"H
Gmas"elementH
GmenameHueiG/menameH
Gme1alueHuei.opennms.org/internal/authentication/success/ulOoginG/me1alueH
G/mas"elementH
G1arbindH
G1bnumberH3G/1bnumberH
G1b1alueHrtcG/1b1alueH
G/1arbindH
G/mas"H
GueiHuei.opennms.org/internal/authentication/success/ulOoginG/ueiH
Ge1ent-labelHOpenNMS-de/ined internal e1ent: a user has success/ull#
authentication to the Neb),G/e1ent-labelH
GdescrH
%his e1ent is sent b# the Neb), when user rtc has success/ull# authenticated
G/descrH
Glogmsg dest<CdonotpersistCH
OpenNMS user VparmYuserZV has logged in /rom VparmYipZV.
G/logmsgH
Gse1erit#HNormalG/se1erit#H
G/e1entH
'ctivate changes in event config,ations
A2ter !hanging the event !on2igrations se
?OPENNMS;-OME/bin/send-e1ent.pl
uei.opennms.org/internal/e1ents+on/ig+hange
to in2or1 openn1s that the event !on2igration has "een !hanged and needs to "e reloaded. See also
Con2igration Giles 2or 1ore details a"ot reloading !hanges.
Test event config,ation
There are two very se2l tools to test event !on2igrations?
?OPENNMS;-OME/bin/send-e1ent.pl
and
?OPENNMS;-OME/bin/send-trap.pl
6st start the s!ripts withot para1eters to get an e@planation how to se the1
The Database
/a!h event that o!!rs in Open&)S is written to the data"ase in the e1ents ta"le. To see the1;
si1ply a!!ess the data"ase with Jps@l -) opennms opennmsJ and then "rowse the events with
JSEOE+% B I*OM e1entsXJ.
One great tro"leshooting tool is to loo, at the e1entparms that get sent with the event. Gor
e@a1ple?
SEOE+% e1entparms I*OM e1ents N-E*E e1entid<462X
e1entparms
----------------------------------------------------------------------------------
-----------------------------------------

ds<httpTstringJte0tUX1alue<33.58TstringJte0tUXthreshold<366.6TstringJte0tUXtrigger
<7TstringJte0tUXrearm<86.6TstringJte0tU
T3 rowU
Eere are all o2 the para1eters sent dring a high%hreshold*earmed event; and they !an "e sed
in event 2ilters i2 needed.
Ginally; it is worth noting that the data"ase !an get very 2ll; and it 1ay "e ne!essary to delete events
2ro1 the events ta"le that are no longer needed. I2 yo ,now S34; this is pretty si1ple; "t sin!e
Open&)S events are so1eti1es re2eren!ed in the otages ta"le and in noti2i!ations; yo 1ay not want
to delete those %the otage ta"le is re:ired 2or availa"ility !al!lation'. Eere is a sa1ple S34 to delete
non<re2eren!ed events?
&EOE%E I*OM e1ents N-E*E e1entid NO% ,N TSEOE+%
s1closte1entid I*OM
outagesU 'N& e1entid NO% ,N TSEOE+%
s1cregainede1entid I*OM outagesUX
Deb,gging
/dit ?OPENNMS;-OME/etc/log2A.properties and set the logging level 2or the eventd to
-/B#*. Then !he!, the RA!odeNeventd.logRA!odeN and yo will see the para1eters and their vales
2or ea!h in!o1ing event li,e the 2ollowing lines %date and ti1e !t o22 2or reada"ility'?
787 &E()G YE1ent %+P *ecei1erY8:35ZY345.6.6.3:32338ZZ %cpStream-andler: E1ent
record con1erted
787 &E()G YE1ent %+P *ecei1erY8:35ZY345.6.6.3:32338ZZ %cpStream-andler: handling
e1entJ uei < uei.opennms.org/internal/rtc/subscribe
262 &E()G YE1ent %+P Ser1erY8:35ZZ %cpSer1er: New connection accepted /rom
345.6.6.3:32335
262 &E()G YE1ent %+P *ecei1erY8:35ZY345.6.6.3:32338ZZ
*unnable+onsumer%hreadPool?SiMingIi/oQueue: adAust: started /iber
E1ent-andlerPool-/iber6 ratio < 3.6J ali1e < 6
262 &E()G YE1ent %+P *ecei1erY8:35ZY345.6.6.3:32338ZZ %cpStream-andler: stopping
record handler
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: E1ent K
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: uuid < Gnot-setH
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: uei <
uei.opennms.org/internal/rtc/subscribe
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: src <
*%+PostSubscriber
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: i/ace < null
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: time < Monda#J
Iebruar# 44J 4636 2:49:4F PM GM%
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: parms K
262 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: TurlJ
http://localhost::F:6/opennms/rtc/post/,n/rastructure[+entralSideU
268 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: TuserJ rtcU
268 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: TpasswdJ rtcU
268 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: TcatlabelJ
,n/rastructure +entralSideU
268 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: L
268 &E()G YE1ent-andlerPool-/iber6Z &e/aultE1ent-andler,mpl: L
268 &E()G YE1ent-andlerPool-/iber6Z E1ent+on/&ata: Match /ound using "e#: E1entKe#
Concl,sion
The /vent 1anage1ent syste1 is pretty straight2orward on!e it is nderstood. 9hile ti1e !ons1ing
to set p; on!e !on2igred it is pretty ato1ati!.
Config,ing notifications
Contents
[hide]
1
Overvie
w
2
Con2ig
ration
2iles
$
Operati
on
(
-estina
tion
Paths
5
/le1en
ts o2 a
noti2i!a
tion
7
A!,no
wledg1
ent
7
.
1

A

t
o
1
a
t
i
!

A
!
,
n
o
w
l
e
if (window.showTocToggle) { va tocShowTe!t " #show#$ va
toc%ideTe!t " #hide#$ showTocToggle()$ & Oveview
Open&)S ses noti2i!ations to 1a,e sers aware o2 an event. Co11on noti2i!ation 1ethods are e1ail
and paging; "t noti2i!ation 1e!hanis1s also e@ist 2or
L)PP %6a""er; an instant 1essaging proto!ol';
ar"itrary e@ternal progra1s
S&)P traps !an "e sent; and
ar"itrary ETTP */TsAPOSTs !an "e 1ade to a we" site.
A noti2i!ation !an "e sent to sers; grops; or roles !on2igred in Open&)S; as well as to ar"itrary
e1ail addresses; i2 needed. A delay !an "e introd!ed "e2ore sending a noti2i!ation; and one or 1ore
es!alations !an "e added in !ase a noti2i!ation isn>t a!,nowledged within a !on2igra"le period o2 ti1e.
The noti2i!ations the1selves !ontain a te@t 1essage and o2tenti1es a s"=e!t %depending on the
noti2i!ation 1ethod' that is "ilt with te@t. The te@t o2 the 1essage andAor s"=e!t !an "e !on2igred to
in!lde details 2ro1 the triggering event; s!h as the na1e o2 the node; ip address; servi!e; error
1essage; et!.
Config,ation files
&oti2i!ations are handled throgh the noti2i!ation dae1on; Jnoti2d.J This dae1on rns "y de2alt; and
is 1anaged throgh three !on2igration 2iles?
destinationPaths.@1l
Con2igres destination paths whi!h spe!i2y who gets noti2ied and any es!alations.
noti2d<!on2igration.@1l
Con2igres glo"al properties 2or the noti2i!ation dae1on s!h as the details 2or the pro!essing
:ee and ato1ati! a!,nowledg1ents %1apping JdownJ events with JpJ events that
ato1ati!ally a!,nowledge a noti2i!ation; !asing no 1ore es!alation to "e per2or1ed'.
noti2i!ationCo11ands.@1l
Con2igres noti2i!ation 1ethods; s!h as e1ail; paging; L)PP; S&)P traps; et!.. Althogh it is
na1ed noti2i!ation J!o11andsJ; it !an not only e@e!te e@ternal !o11ands; "t also 6ava
!lasses that !an per2or1 a noti2i!ation a!tion. The 6ava noti2i!ation 1ethods are sally pre2erred
as they have higher per2or1an!e and;1ore i1portantly lower overhead than !alling an e@ternal
progra1. )ost noti2i!ation 1ethods are i1ple1ented this way. A standard inter2a!e e@ists;
org.opennms.netmgt.noti/d.Noti/icationStrateg#; that !an "e sed to
i1ple1ent !sto1 6ava noti2i!ation 1ethods. O2 !orse; !alling !o11and<line progra1s and
shell s!ripts is also allowed.
noti2i!ations.@1l
Con2igres a!tal noti2i!ations.
Opeation
1. #pon startp; noti/d "ilds a list o2 event #/Is that it shold listen 2or "ased on the
noti2i!ations !on2igred in noti2i!ations.@1l and s"s!ri"es with the Open&)S event dae1on;
e1entd; to re!eive these events.
2. 9hen an event is re!eived; a 2ew evalations are per2or1ed?
1. Are noti2i!ations trned on %the JstatsJ attri"te on the Jnoti2d<!on2igrationJ ele1ent
in noti/d-con/iguration.0ml'H I2 not; the event is dis!arded and a noti2i!ation
is not per2or1ed.
2. -oes the #/I in the event 1at!h a #/I !on2igred in an ena"led noti2i!ation and does
the rle in the noti2i!ation 1at!h the event %see Rle )at!hing "elow'H I2 not; the event
is dis!arded and noti2i!ation is not per2or1ed. &ote? the spe!ial #/I string JM'%+--
'N-)E,J !an "e sed to 1at!h all event #/Is %the rle still needs to 1at!h; as well'.
$. I2 the noti2i!ation has a Rvar"indN !on2igred with a na1e and vale; it is sed 2or a
!ase sensitive 1at!h against the "eginning an event para1eter o2 the sa1e na1e.
$. I2 the a"ove evalations pass; one or 1ore noti2i!ations are sent. I2 the J1at!h<allJ attri"te on
the Jnoti2d<!on2igrationJ ele1ent is set to JtreJ; every 1at!hing noti2i!ation will "e e@e!ted
"y wal,ing its destination path; otherwise only the 2irst 1at!hing noti2i!ation will "e e@e!ted.
Destination (aths
In Open&)S; a destination path spe!i2ies the JwhoJ; JwhenJ; and JhowJ o2 the noti2i!ation. It spe!i2ies
the re!ipients o2 a noti2i!ation; the noti2i!ation 1ethod; any initial delay; and any es!alations. The
destination path is separated 2ro1 individal events as the sa1e in2or1ation is o2ten sed 2or 1ltiple
noti2i!ations; so it 1ini1iCes dpli!ation and en!orages re<se.
9hen an event is re!eived that 1at!hes the #/I and rle in an ena"led noti2i!ation; Open&)S Jwal,sJ
the destination path 2or that noti2i!ation %or noti2i!ations i2 there are 1ltiple and J1at!h<allJ is set to
JtreJ'. 9e say that the destination path is Jwal,edJ "e!ase it is o2ten a series o2 a!tions per2or1ed
over ti1e and not ne!essarily =st a single a!tion %althogh it !an "e'. The destination path !ontines to
"e wal,ed ntil all noti2i!ations and es!alations have "een sent or the noti2i!ation is a!,nowledged
%ato1ati!ally or "y 1anal intervention'.
On!e the destination path is started; the initial delay is waited %de2alt? Cero se!onds' "e2ore sending
the 2irst noti2i!ation. It then waits 2or the delay 2or ea!h es!alation %i2 any' and sends the es!alations in
se:en!e. &ote? the delay 2or ea!h es!alation is the delay 2ro1 the triggering event.
3le-ents of a notification
&a1e
A ni:e na1e to identi2y this noti2i!ation de2intion. #sed to identi2y the de2inition in the we" #I
and in log 1essages. This is stored in the Jna1eJ attri"te o2 the Jnoti2i!ationJ ele1ent in the
L)4 !on2igration 2ile.
/vent
The #/I that !ases this event to 2ire. This is stored in the JeiJ ele1ent in the L)4
!on2igration 2ile.
-es!ription
A des!ription o2 the event; "t is not terri"ly visi"le %it is only visi"le in the we" #I a 2ew pages
into the edit wiCard and in the L)4 !on2igration 2ile'. Stored in the Jdes!riptionJ ele1ent in the
L)4 !on2igration 2ile.
Rle
A 2ilter that 1st 1at!h 2or the noti2i!ation to "e sent. O2tenti1e this is an IP address andAor
servi!e 1at!h. Stored in the JrleJ ele1ent in the L)4 !on2igration 2ile.
-estination Path
The Jdestination pathJ to whi!h this noti2i!ation will "e sent i2 the event is re!eived and the rle
1at!hes. See "elow 2or details on destination paths. The na1e o2 the destination path is stored in
the JdestinationPathJ attri"te in the L)4 !on2igration 2ile and 1st 1at!h the na1e o2 a
!on2igration destination path in destinationPaths.@1l.
S"=e!t
The s"=e!t o2 the noti2i!ation; in parti!lar; the s"=e!t o2 e1ail 1essages generated "y this
noti2i!ation. /vent s"stittions in the 2or1 o2 T,eyT !an "e sed to insert details 2ro1 the
event into the te@t 1essage. Stored in the Js"=e!tJ ele1ent in the L)4 !on2igration 2ile.
Te@t 1essage
The te@t 1essage o2 the noti2i!ation. 6st li,e the s"=e!t; event s"stittions in the 2or1 o2 T,ey
T !an "e sed to insert details 2ro1 the event into the te@t 1essage. Stored in the Jte@t<1essageJ
ele1ent in the L)4 !on2igration 2ile.
OnAo22
9hether this noti2i!ation is ena"led or not. Stored in the JstatsJ attri"te o2 the Jnoti2i!ationJ
ele1ent in the L)4 !on2igration 2ile.
'c<nowledg-ent
noti2d !ontines wal,ing the destination path 2or a noti2i!ation ntil the noti2i!ation is a!,nowledged. A
noti2i!ation is a!,nowledged "y a ser throgh the we" inter2a!e. On!e the noti2i!ation is
a!,nowledged no 1ore sers; grops; et!. will "e noti2ied 2or that noti2i!ation.
',to-atic 'c<nowledg-ent
)any events that represent an otage o2 so1e sort also have a 1at!hing J!learingJ otage whi!h is sent
when the original pro"le1 is resolved. An e@a1ple is a Jnode-ownJ event and a 1at!hing Jnode#pJ
event. Open&)S has the idea o2 an a!,nowledging event that will ato<a!,nowledge the original
event.
6st li,e a nor1al a!,nowledg1ent; an ato1ati! a!,nowledg1ent will stop the destination path 2or
"eing wal,ed 2or the original noti2i!ation. It will also !reate a new noti2i!ation to tell sers that the
original isse is resolved.
Eere is an e@a1ple !on2igration 2or the node#pAnode-own event pair in noti2d<!on2igration.@1l?
Gauto-ac"nowledge resolution-pre/i0<.*ESOOEE&: .
uei<.uei.opennms.org/nodes/node)p.
ac"nowledge<.uei.opennms.org/nodes/node&own.H
GmatchHnodeidG/matchH
G/auto-ac"nowledgeH
&ote the J1at!hJ ele1ent. This spe!i2ies what data in the !learing event needs to 1at!h an original
event 2or the ato1ati! a!,nowledg1ent to "e applied. #n2ortnately; it is not possi"le to 1at!h event
para1eters here. I2 yo need to do that; Ato<a!,nowledge and 1at!h event para1eters 1ight "e worth
a loo,.
%See also? Ato&oti2y Eow<To'
),le Matching
The rle in the noti2i!ation is 1at!hed against data in the event i2 the event !ontains a valid node I-
and either an inter2a!e or servi!e. I2 the event does not !ontain an inter2a!e or i2 the inter2a!e is
J.......J; only the node is 1at!hed against the rle. Otherwise; the inter2a!e is 1at!hed; and i2 the
event !ontains a servi!e; it is 1at!hed as well.
3!a-ples
C,sto- Notification Co--ands
Si-ple (hone Call
9e had a re:ire1ent to si1ply dial a phone via a #SB POTS 1ode1 2or a noti2i!ation. The 2ollowing
i1ple1entation was !o1pleted on a RE/4 ( syste1 sing the wvdial !o11and.
Con2igre ser a!!onts in Open&)S %o2 !orse'
Guser read-onl#<./alse.H
Guser-id 0mlns<..Hsorto1aG/user-idH
G/ull-name 0mlns<..H%arus (G//ull-nameH
Guser-comments 0mlns<..HG/user-commentsH
Gpassword 0mlns<..H22::78554'6I49&II+:&36:F'E((5F69G/passwordH
Gcontact t#pe<.email. in/o<../H
Gcontact t#pe<.pagerEmail. in/o<../H
Gcontact t#pe<.0mpp'ddress. in/o<../H
Gcontact t#pe<.numericPage. in/o<.. ser1icePro1ider<../H
Gcontact t#pe<.te0tPage. in/o<.. ser1icePro1ider<../H
G/userH
Guser read-onl#<./alse.H
Guser-id 0mlns<..HbroMowG/user-idH
G/ull-name 0mlns<..HMatt (G//ull-nameH
Guser-comments 0mlns<..HG/user-commentsH
Gpassword 0mlns<..H22::78554'6I49&II+:&36:F'E((5F69G/passwordH
Gcontact t#pe<.email. in/o<../H
Gcontact t#pe<.pagerEmail. in/o<../H
Gcontact t#pe<.0mpp'ddress. in/o<../H
Gcontact t#pe<.numericPage. in/o<.. ser1icePro1ider<../H
Gcontact t#pe<.te0tPage. in/o<.. ser1icePro1ider<../H
G/userH
Guser read-onl#<./alse.H
Guser-id 0mlns<..HrangerG/user-idH
G/ull-name 0mlns<..H(en *G//ull-nameH
Guser-comments 0mlns<..HG/user-commentsH
Gpassword 0mlns<..H22::78554'6I49&II+:&36:F'E((5F69G/passwordH
Gcontact t#pe<.email. in/o<../H
Gcontact t#pe<.pagerEmail. in/o<../H
Gcontact t#pe<.0mpp'ddress. in/o<../H
Gcontact t#pe<.numericPage. in/o<.. ser1icePro1ider<../H
Gcontact t#pe<.te0tPage. in/o<.. ser1icePro1ider<../H
G/userH
Guser read-onl#<./alse.H
Guser-id 0mlns<..HAe//gG/user-idH
G/ull-name 0mlns<..HDe// GG//ull-nameH
Guser-comments 0mlns<..HG/user-commentsH
Gpassword 0mlns<..H22::78554'6I49&II+:&36:F'E((5F69G/passwordH
Gcontact t#pe<.email. in/o<../H
Gcontact t#pe<.pagerEmail. in/o<../H
Gcontact t#pe<.0mpp'ddress. in/o<../H
Gcontact t#pe<.numericPage. in/o<.. ser1icePro1ider<../H
Gcontact t#pe<.te0tPage. in/o<.. ser1icePro1ider<../H
G/userH
Guser read-onl#<./alse.H
Guser-id 0mlns<..HthedonaldG/user-idH
G/ull-name 0mlns<..H&onald &G//ull-nameH
Guser-comments 0mlns<..HG/user-commentsH
Gpassword 0mlns<..H22::78554'6I49&II+:&36:F'E((5F69G/passwordH
Gcontact t#pe<.email. in/o<../H
Gcontact t#pe<.pagerEmail. in/o<../H
Gcontact t#pe<.0mpp'ddress. in/o<../H
Gcontact t#pe<.numericPage. in/o<.. ser1icePro1ider<../H
Gcontact t#pe<.te0tPage. in/o<.. ser1icePro1ider<../H
G/userH
Pt these sers in a grop %JoperationsJ 2or this e@a1ple' and !reate an OnCall role
GgroupH
Gname 0mlns<..HoperationsG/nameH
Gcomments 0mlns<..HG/commentsH
Guser 0mlns<..Hsorto1aG/userH
Guser 0mlns<..HbroMowG/userH
Guser 0mlns<..HrangerG/userH
Guser 0mlns<..HAe//gG/userH
Guser 0mlns<..HthedonaldG/userH
Gdut#-schedule 0mlns<..HMo%uNe%hIrF66-3566G/dut#-scheduleH
G/groupH
G/groupsH
GrolesH
Grole name<.On+all. membership-group<.operations.
super1isor<.eheale#. description<.Operations On+all.H
Gschedule name<.sorto1a. t#pe<.speci/ic.H
Gns4:time 0mlns:ns4<.http://0mlns.opennms.org/0sd/t#pes.
begins<.63-Dun-466F 66:66:66. ends<.63-Dul-466F 66:66:66./H
G/scheduleH
G/roleH
G/rolesH
Con2igre wvdial %yor 1ode1 shold "e installed and wor,ing... I typi!ally 1a,e a sy1lin, 2ro1 the
a!tal tty to AdevA1ode1'
sudo w1dial /etc/w1dial.con/
Add sers to wvdial.!on2 and !hange a 2ew !hanges to loo, so1ething li,e this
Y&ialer &e/aultsZ
Modem < /de1/modem
(aud < 296:66
,nit3 < '%]
,nit4 < '%Q6 E3 E3 S6<6 \+3 \&4 [I+O'SS<6
,S&N < 6
Modem %#pe < 'nalog Modem
&ial Pre/i0 < 9J
Phone < 3F3F8883434
)sername < dh
Password < onms
'uto *econnect < o//
&ial 'ttempts < 3
Y&ialer sorto1aZ
Phone < 3F3F8883433
Y&ialer broMowZ
Phone < 3F3F8883434
Y&ialer rangerZ
Phone < 3F3F8883437
Y&ialer Ae//gZ
Phone < 3F3F8883432
Y&ialer thedonaldZ
Phone < 3F3F8883438
Create the &oti2i!ation !o11and
Gcommand binar#<.true.H
GnameHphone+allG/nameH
Ge0ecuteH/usr/bin/w1dialG/e0ecuteH
GcommentHmodem dialing programG/commentH
Gargument streamed<./alse.H
GswitchH-dG/switchH
G/argumentH
G/commandH
This !o11and passes the Open&)S ser id to the !o11and that !orresponds to the JPhoneJ entry in
the Aet!Awvdial.!on2 2ile.
&ow si1ply !reate noti2i!ations that send to a destination path that ses this !o11and. /@a1ple
destination path
Gpath name<.emergenc#. initial-dela#<.3m.H
Gtarget inter1al<.6m.H
Gname 0mlns<..HoperationsG/nameH
GautoNoti/# 0mlns<..HonG/autoNoti/#H
Gcommand 0mlns<..HAa1aEmailG/commandH
G/targetH
Gtarget inter1al<.6s.H
Gname 0mlns<..HOn+allG/nameH
GautoNoti/# 0mlns<..HonG/autoNoti/#H
Gcommand 0mlns<..Hphone+allG/commandH
G/targetH
G/pathH
ProsperX &oti!e that the phoneCall !o11and is assigned to the OnCall Role. +een sers will also
noti!e that ser JsortovaJ is on !all all 1onth %grin' and that the grop will only "e noti2ied dring dty
hors. I2 the pro"le1 happens a2ter dty hors and the noti2i!ation has not "een a!,nowledged %or the
pro"le1 resolved' "y the ti1e the dty s!hedle 2or the grop "egins; again; the sers o2 the grop will
"e noti2ied via e1ail.
Hebapp Config,ation %ow>To
'dd so,nd to the web/I
'dd So,nd . 8lashing +ac<go,nd to the
OpenNMS Main (age
See http?AA"gCilla.openn1s.orgAshowB"g.!giHidI$.72; Oersion n,nown; pro"a"ly 1.7.@ and later
'dd So,nd to the sevicesdown>bo!
#sing Open&)S 1.5.Q$?
In O(3NNMSA%OM3A0etty&-e.apps/opennms/in*udes/ser,i*esdo-n&.o1/0sp %or
O(3NNMSA%OM3A-e.apps/opennms/in*udes/ser,i*esdo-n&.o1/0sp i2 sing To1!at instead o2
6etty'?
Gc:otherwiseH
Gembed src<.tngchime.wa1. t#pe<.audio/0-pn-realaudio-plugin. hidden<.true.
autostart<.true. loop<./alse. height<.6. width<.6.H
Gul class<.plain.H
Gc:/orEach 1ar<.summar#. items<.?KsummariesL.H
Gc:url 1ar<.nodeOin". 1alue<.element/node.Asp.H
Gc:param name<.node. 1alue<.?Ksummar#.node,dL./H
G/c:urlH
GliHGa hre/<.?KnodeOin"L.H?Ksummar#.nodeOabelLG/aH T?
Ksummar#./uMM#%ime&ownLUG/liH
G/c:/orEachH
G/ulH
Gc:i/ test<.?Kmore+ount H 6L.H
Gp class<.no(ottomMargin. align<.right.H
Gc:url 1ar<.moreOin". 1alue<.outage/current.Asp./H
Ga hre/<.?KmoreOin"L.H?Kmore+ountL more...G/aH
G/pH
G/c:i/H
G/c:otherwiseH
The line with the Pe-bedQ tag is new; the rest is sto!,. This !ases a sond %tng*hime/-a,; whi!h
1st "e present inside the Open&)S we" app dire!tory' "e played any ti1e this "o@ loads i2 there is at
least one !rrent otage.
9or,s in Gire2o@ 1.Fand I/7. &eeds RealPlayer 2or 4in@ %on the !lient "rowser; not on the Open&)S
server' "t )D see1s to handle it withot.
(efo-ance t,ning
Contents
[hide]
1 Tning Overview
1.1 Eardware
1.2 Operating syste1
1.$ -ata"ase PostgreS34
1.( 6ava virtal 1a!hine
1.5 Open&)S
2 Eardware !onsiderations
2.1 -is, Tning
2.2 )e1ory<"a!,ed Gile Syste1s
$ Operating syste1
( -ata"ase PostgreS34
(.1 PostgreS34 P.1 and later
(.1.1 Syste1s with lots o2 RA) and PostgreS34 P.2
(.2 PostgreS34 and syste1>s shared 1e1ory
(.$ PostgreS34 SanyS Oersion
(.( ipli,e stored pro!edre
(.5 postgres and dis, IAO waits
(.7 2ind pro"le1s de to long<rnning :eries
(.0 opti1iCation 2or a lot o2 s1all :eries
5 6ava Oirtal )a!hine %6O)'
5.1 Tning heap siCe
5.2 Tning the 1a@i11 Per1anent *eneration siCe
5.$ Tning gar"age !olle!tion
5.( Parallel thread li"rary on Solaris syste1s
7 Open&)S
7.1 4ogging
7.2 -ata Colle!tion
7.2.1 -on>t !olle!t what yo don>t need
7.2.2 -on>t try to !olle!t what yo don>t get
7.$ RR-ToolA6Ro"in
7.( To1!at %i2 not sing "ilt<in 6etty server'
7.5 Open&)S dae1on
7.7 Open&)S we"app
7.0 Capsd servi!e dis!overy A res!an
7.P Poller threads
7.Q /vent Eandling
7.1. /vent Ar!hiving
if (window.showTocToggle) { va tocShowTe!t " #show#$ va toc%ideTe!t "
#hide#$ showTocToggle()$ & T,ning Oveview
%adwae
I2 yo design a new Open&)S syste1 !are2lly read the hardware !onsiderations "elow.
I2 yo have already a rnning syste1; yo 1ight still 2ind so1e possi"ilities to get nearer to the
design des!ri"ed "elow
-is, IAO and syste1 1e1ory are the points yo shold loo, at
Re1e1"er that a 7(<"it CP# is re:ired in order 2or a single pro!ess to address 1ore than a"ot
2*B o2 1e1ory; even with a PA/<aware ,ernel.
Opeating s*ste-
There are so1e para1eters regarding the 2ilesyste1s 2or data"ase and !olle!ted data to tne
Syste1>s shared 1e1ory pool 1ight need in!reasing 2or the data"ase
I2 yo have 7(<"it hardware; "e sre to install a 7(<"it operating syste1 in order to address 1ore
than (*B o2 physi!al 1e1ory
Database (ostgeS?@
1ost di22i!lt "t very i1portant part as there are a lot o2 para1eters to tne
Eava vit,al -achine
Eeap spa!e; per1anent generation siCe; and gar"age !olle!tion
OpenNMS
here yo !an generate a lot o2 data so !are2lly design what yo really need
logging
data !olle!tion
data storage and !onsolidation
dis!overy
polling
hos,eeping
%adwae consideations
I2 at all possi"le; se a server with a 7(<"it CP# as this will ena"le the CP# to address 1ore than (*B
o2 physi!al 1e1ory. Re1e1"er that even with a PA/<aware ,ernel A operating syste1; 1ost $2<"it
OSes don>t allow a given pro!ess to address 1ore than a"ot 2*B o2 1e1ory.
Pro"a"ly the "iggest per2or1an!e i1prove1ent on syste1s that are !olle!ting a lot o2 RR- data is to
1ove PostgreS34 and To1!at to a separate syste1 2ro1 Open&)S dae1onsX Ege di22eren!e.
On a server with hardware RAI-; !onsider investing in a "attery<"a!,ed write !a!he. On a EP -4$P.
*(; the IAO wait o2 the server dropped 2ro1 an average o2 15T to al1ost nil with the addition o2 a 12P
)B BB9C. Additionally; ensre that yo have a1ple 1e1ory on the syste1; on a EP *( < single
pro!essor ( *igs o2 1e1ory 1onitoring a"ot $.. devi!es with 0.. inter2a!es; or IAO wait ti1e
steadily "egan to !li1". The CP# wait ti1e was o"sessively hogging all o2 the pro!essor; 1a,ing
Open&)S !rawl; we resolved this "y pping or 1e1ory to 12 *igs o2 1e1ory; whi!h in trn "roght
the wait ti1e "a!, down to 1T.
Gor a s1all !olle!tion o2 1onitored nodes; 1oving the RR- data area into a t1p2s A RA) drive 1ay
also alleviate the IAO wait !ased "y all o2 the writing re:ired "y the RR- data. The trade<o22 is that a
server !rash or power<down will !ase the RR- 2iles to "e lost; nless yo i1ple1ent a syn! tool to
syn! the RA) drive to a dis, "a!,p.
Dis< T,ning
Be!ase Open&)S is well<e:ipped 2or gathering and re!ording details regarding networ, and
syste1s per2or1an!e and "ehavior; it tends to "e a write<heavy appli!ation. I2 yor environ1ent o22ers
a very large n1"er o2 data points to "e 1anaged; it wold serve yo well to ensre that a large degree
o2 spindle separation e@ists. In parti!lar and where possi"le; ensre that?
Open&)S S&)P Colle!tion
Open&)S Response Ti1e Colle!tion
Open&)S %and syste1' logging
PostgreS34 -ata"ase
PostgreS34 9riteahead logging
..o!!r on separate spindles; and in so1e !ases separate drives or separate devi!es. Grther; in a S&i@
environ1ent; it 1ay "ehoove yo to ensre that the RR->s end p on di22erent 1onts; so one has the
option o2 1onting with the noati-e and nodiati-e dire!tives withot !o1pro1ising other aspe!ts
o2 the syste1 !on2igration.
The de2alts 2or the openn1s dire!tories 1entioned a"ove are
/opt/opennms/share/rrd/snmp
/opt/opennms/share/rrd/response
/opt/opennms/logs or /1ar/log/opennms
"t wat!h ot 2or sy1"oli! lin,sX
As a 2ilesyste1; the "est per2or1an!e is a!hieved with LGS. /LT%2;$' have "ilt<in li1itations in the
n1"er o2 2ile des!riptors per dire!tory and !an not "e sed on larger installations.
The data storage is the !riti!al 2a!tor; hen!e the !apa!ity o2 the storage 1st 1at!h the siCe o2 the
installation? Best per2or1an!e is a!hieved with SA&>s %Gi"reChannel F &etapp or /)C or ..'. The
i1portant point is that the IO 3ee is ,ept on the JotherJ devi!e and not on the Open&)S Server.
Re!ently good reslts 2or s1aller syste1s have "een reported with SS- -rives.
To tell i2 yo have a "ottle ne!, with yor dis, yo !an se a !ople o2 :i!, things. In JtopJ yo !an
loo, 2or the waiting CP# per!entage. Gor instan!e in top yo hit J1J to "rea, ot all o2 the individal
!oresACP#>s and see that one o2 the CP#>s has 1..T wait. This !old "e 2ro1 the swap 2ile or any o2
the dire!tories listed a"ove.
The Jn1onJ progra1 !an show 1ore detailed in2or1ation. 8o will "e a"le to see what spindles are
"eing sed when and how 1!h read it has verss writes.
Me-o*>bac<ed 8ile S*ste-s
One option; i2 yor server has a lot o2 RA); is to 1odi2y the Open&)S startp s!ripts to 1aintain a
1e1ory<"a!,ed 2ile syste1; !o1"ined with ato1ati! "a!,ps and restores that handle any internally
de!ided ris, levelsAS4As. In 4in@; this wold "e a t1p2s 2ile syste1.
$ SSS +ustom code herein /or dealing with memor# dri1es
mount ! grep -@ rrd
i/ Y ?R -ne 6 ZX then
$ **& location is not presentJ create it and
$ unpac" our data.
mount -t tmp/s -o siMe<4GJnr;inodes<466"Jmode<6566 tmp/s
/opt/opennms/share/rrd
cd /
tar 0/ /mnt/db-bac"up/opennms-rrd.tar
/i
$ SSS End custom code
This 1odi2i!ation to .opt.openn-s.bin.openn-s is 1at!hed with a !ronta" entry that generates the
openn-s>d.ta 2ile periodi!ally.
In<the<2ield? On a -4$P. *(; with 7 *B o2 RA); 2 *B o2 RA) was allo!ated to a 1e1ory<"a!,ed
2ile syste1. This red!ed the dis, IAO load %one shared RAI-<1. 2or Postgres; OS and 6RBsK with
"attery<"a!,ed !a!he' 2ro1 $.. IOPS to 1. IOPS; along with a !orrelated drop in load average and
response ti1es 2or the Open&)S #I.
&.B. In 4in@; a t1p2s 2ile syste1 will go to swap i2 1e1ory pressre de1ands real 1e1ory 2or
appli!ations. This !an have a very negative e22e!t on the IAO load and syste1 per2or1an!e.
Opeating s*ste-
1. -o rn a 7(<"it ,ernel so that Open&)S will "e a"le to address 1ore than 2*B o2 1e1ory.
2. -on>t rn in a O).
$. -on>t pt -B or RR- data on 2ile syste1s 1anaged "y 4O).
(. -on>t pt -B or RR- data on 2ile syste1s on RAI-<5.
5. -o pt Open&)S logs and RR-s and PostgreS34 data on separate spindles or separate RAI-
sets. Read details 2or postgres and RR- "elow.
7. -o rn on a 1odern ,ernel. 4in@ 2.7 and later as well as Solaris 1. or newer are good. Stay
away 2ro1 4in@ 2.(; in parti!lar.
0. Set noati1e 1ont 2lag on 2ilesyste1s hosting data 2or M( a"ove.
P. Adapt the syste1s shared 1e1ory to the data"ase; see Per2or1an!e tningMPostgreS34 and
syste1>s shared 1e1ory
Q. Solaris 1. syste1s 1ay re:ire in!reasing IC)P "22er siCe i2 polling large n1"ers o2 syste1s
%ndd <set AdevAi!1p i!1pB1a@B"2 2.Q0152'. #se >netstat <s <P i!1p> and !he!, the vale o2
>i!1pInOver2lows> to deter1ine i2 yo>re over2lowing the IC)P "22er.
Database (ostgeS?@
The de2alt sharedB"22ers para1eter in postgres:l.!on2 is e@tre1ely !onservative; and in 1ost !ases
with 1odern servers; this !an "e signi2i!antly twea,ed 2or a "ig per2or1an!e "oost; and drop in IAO
wait ti1e. This !hange will need to "e in<line with ,ernel para1eter !hanges to sh11a@. See Postgres
9i,i tning page and this PostgreS34 per2or1an!e page 2or re!o11endations on this and other
postgres:l settings.
I2 yo want to pt PostgreS34 on a di22erent "o@ then yo want to !hange the S34 host loo, in
openn1s<datasor!es.@1l. The PostgreS34 server will also need ipli,e installed and !on2igred.
To !lean p e@tra events ot o2 the data"ase try this /ventBCon2igrationBEow<ToMTheB-ata"ase
(ostgeS?@ 5.= and late
These !hanges to postgres:l.!on2 will pro"a"ly i1prove yor -B per2or1an!e i2 yo have a enogh
RA) %a"ot 2*B installed RA) 2or a dedi!ated server' to spport the !hanges. %8))O' 8o>ll
pro"a"ly need to 1a,e ad=st1ents to the sh11a@ ,ernel attri"te on yor syste1.
shared;bu//ers < 46666
wor";mem < 3972:
maintenance;wor";mem < 98879
1acuum;cost;dela# < 86
chec"point;segments < 46
chec"point;timeout < F66
wal;bu//ers < 92
stats;start;collector < on
stats;row;le1el < on
auto1acuum < on
I>ve also set these higher vales on S"iggerS syste1s?
wal;bu//ers < 489
wor";mem < 7459:
maintenance;wor";mem < 8424::
On postgres P.$ syste1s they>ve !hanged the 2or1at to allow yo to spe!i2y a1onts as 1e1ory
allo!ations instead o2 n1"er o2 "lo!,s. Eere are the e:ivalents?
shared;bu//ers < 392M(
wor";mem < 39M(
maintenance;wor";mem < 92M(
1acuum;cost;dela# < 86
chec"point;segments < 46
chec"point;timeout < 38min
wal;bu//ers < 489"(
stats;start;collector < on
stats;row;le1el < on
auto1acuum < on
I2 yo need the "igger vales 2or larger syste1s here they are?
wal;bu//ers < 462:"(
wor";mem < 74M(
maintenance;wor";mem < 834M(
S*ste-s with lots of )'M and (ostgeS?@ 5.2
Re!ently; we>ve 2ond that !hanging the 1a@B2s1Bpages and 1a@B2s1Breleations 1. 2old on syste1s
with plenty o2 1e1ory %(*F'; i1proves per2or1an!e dra1ati!ally.
$ma0;/sm;pages < 462:66 $ min ma0;/sm;relationsB39J 9 b#tes each
ma0;/sm;pages < 462:666
$ma0;/sm;relations < 3666 $ min 366J >56 b#tes each
ma0;/sm;relations < 36666
%&ote that the 2ree spa!e 1ap has "een rei1ple1ented in PostgreS34 P.( and is now sel2<1aintaining;
so the ma0;/sm;B settings a"ove are not ne!essary i2 yo>re rnning PostgreS34 P.(.1 or later < note
that P.(.. is not spported de to a nasty "g.'
As well as really "1ping these?
wor";mem < 366M(
maintenance;wor";mem < 34:M(
&ote? To 1a,e ad=st1ents to sh11a@; do the 2ollowing?
Start postgres:l 2ro1 the !o11and line?
sudo -u postgres pg;ctl -& /1ar/lib/pgs@l/data start
%ad=sting paths as ne!essary' and loo, at the error 1essage?
$ I'%'O: could not create shared memor# segment: ,n1alid argument
&E%',O: Iailed s#stem call was shmgetT"e#<8274663J siMe<35697F796J 67966U.
-,N%: %his error usuall# means that PostgreSQOCs re@uest /or a shared memor#
segment e0ceeded #our "ernelCs S-MM'S parameter.
ou can either reduce the re@uest siMe or recon/igure the "ernel with larger
S-MM'S.
%o reduce the re@uest siMe Tcurrentl# 35697F796 b#tesUJ reduce PostgreSQOCs
shared;bu//ers parameter Tcurrentl# 46666U
and/or its ma0;connections parameter Tcurrentl# 366U.
&oti!e the vale o2 JsiCeJ.
Then p the vale o2 sh11a@?
s#sctl -w "ernel.shmma0<35697F796
And restart postgres:l %sing the nor1al 1ethod s!h as Jservi!e postgres:l startJ'
Ginally; edit Aet!Asys!tl and add the line
"ernel.shmma0<35697F796
so it will srvive a re"oot.
(ostgeS?@ and s*ste-Gs shaed -e-o*
I2 yor Open&)S syste1 tend to have long response ti1es and has
no dis, IAO<waits
a lot o2 CP# idle ti1e
then try to in!rease yor operating syste1s shared 1e1ory %and that o2 postgres' as des!ri"ed a"ove.
The vales written a"ove are the a"solt 1ini11 vales. In!reasing the syste1s shared 1e1ory 1ay
greatly "oost Open&)S per2or1an!e as it will speed p the !o11ni!ation "etween Open&)S and
the data"ase. Try di22erent vales 2or the syste1>s shared 1e1ory; even p to 1. ti1es or 1ore o2 the
1ini11 vale as des!ri"ed a"ove. Gor 2rther details see the lin,s to postgres 9i,i do, 1entioned
a"ove.
(ostgeS?@ Ran*R Jesion
One additional !on2igration that see1s to 1a,e a tre1endos a1ont o2 pe2or1an!e i1prove1ent is
having the write<head logs on a separate spindle %even "etter a separate dis, !ontrollerA!hannel'. The
way to do this is?
1. shtdown openn1s A to1!at
2. shtdown postgres:l
$. !d to DP*B-ATA
(. 1v pgB@log R2ile syste1 on di22erent spindleN
5. ln <s R2ile syste1 on di22erent spindleNApgB@log pgB@log
7. restart postgres:l
)a,e sre postgres data and write<ahead logs do not live on a RAI-<5 dis, s"syste1.
ipli<e stoed poced,e
See the do!1entation in ipli,e to "e sre yo have the "est version o2 ipli,e rnning
postges and dis< I.O waits
Standard postgres !on2igration writes transa!tions to the dis, "e2ore !o1itting the1. I2 there are IAO<
pro"le1s %waitstates' data"ase transa!tions s22er; high appli!ation responseti1es are the reslt. On test
1a!hines <rnning 1ost ti1es on inappropriate hardware< syn!hronos writes 1ay "e disa"led. In !ase
o2 a syste1 !rash data"ase in!onsisten!ies 1ay reslt; re:esting roll"a!, o2 the transa!tion log et!..
Gor test syste1s this is nor1ally no pro"le1.
Try with 2ollowing !on2igration !hanges in postgres@l.con/ on postgres P.$ %or newer'?
/s#nc < o//
s#nchronous;commit < on
commit;dela# < 3666
find poble-s d,e to long>,nning B,eies
I2 there is a reasona"le sspi!ion that so1e :eries are rnning 2or a very long ti1e edit the
postgres:l.!on2 and !hange the para1eter %PostgreS34 p to P.$'
log;min;duration;statement<3666
This will log all :eries rnning 2or 1ore than 1... 1s to postgres:l.log.
A2ter this !hange a stopAstart o2 openn1s and postgres is re:ired. -on>t 2orget to re1ove this
!on2igration a2ter de"gging is 2inished.
Pro"a"ly yo will 2ind that 1ost ti1es J"ad data"ase response ti1eJ is not de to a single :ery
rnning 2or a long ti1e "t de to thosands o2 :eries rnning 2or a very short ti1e.
opti-iIation fo a lot of s-all B,eies
I2 any"ody ,nows how to opti1iCe PostgreS34 A Open&)S 2or this please add it hereX There are
para1eters li,e ma0;connections in postgres@l.con/ and c7p6.ma0PoolSiMe in
?OPENNMS;-OME/etc/c7p6.properties whi!h 1ight help here.
Eava Jit,al Machine (EJM)
The 2ollowing phaeno1ena o2 openn1s are typi!al 2or rnning low on 1e1ory in the =ava virtal
1a!hine?
long response ti1es
gar"age !olle!tion is rnning very o2ten and ta,es a lot o2 ti1e %see "elow'
alar1s that shold have "een !leared ato1ati!ally are still listed as alar1s
T,ning heap siIe
/na"le e@tensive gar"age !olle!tion logging %see "elow' to see the "ehavior loo,ing at otpt.log. I2
gar"age !olle!tions reglarly ta,e a lot o2 ti1e %..5 se!onds is an e1piri!al threshold' or are rnning
very o2ten %1ore than every 1.<2. se!onds' the =ava heap siCe shold "e in!reased. I2 it>s rnning every
1. se!onds and ta,es Q se!onds the syste1 is st!,...
Para1eters 2or tning =ava 1ay "e added in DOP/&&)SBEO)/Aet!Aopenn1s.!on2.
The 1ost i1portant para1eter is the =ava heap siCe
D'E';-E'P;S,]E<siMe;in;M(#tes
The de2alt vale is 257 whi!h is s22i!ient only 2or test !ases with one to 2ive 1anaged devi!es.
8o !an roghly test per2or1an!e i1prove1ent opening the event list 2ro1 openn1s; adding H
li1itI25. to the rl and pressing Retrn
http://opennms::F:6/opennms/e1ent/listRlimit<486
&ow there shold "e 25. events in yor list. Press G5 %at least with Gire2o@ and I/ this is the Reload<
Page "tton' and stop the ti1e ntil the page 2inished to re2resh. Repeat this several ti1es to get a good
1ean vale. &ow stop openn1s; !hange the heap siCe as des!ri"ed a"ove; restart openn1s and wait 2or
a"ot 1. 1intes to let it settle down a2ter starting. Repeat the 1easre1ents then in!rease the heap
siCe again as des!ri"ed a"ove. 8o will get a ta"le li,e
heap re/resh time
3879 8-5 sec.
462: 7-2 sec.
7654 3-4 sec.
9at!h ot 2or 1e1ory and swap on yor syste1 %"y e@a1ple sing top' and de!ide whi!h vale to
,eep in the !on2ig 2ile.
To speed p the start phase o2 the =ava virtal 1a!hine yo 1ight want to add
'&&,%,ON'O;M'N'GE*;OP%,ONS<.-Sms.?D'E';-E'P;S,]E.m
thogh speeding p the startp ti1e in 1ost !ases is not a "ig pro"le1 and the para1eter so1eti1es
doesn>t help at all.
T,ning the -a!i-,- (e-anent 0eneation siIe
I2 yo>re seeing 1essages in yor logs !ontaining a 1ention o2?
Aa1a.lang.OutO/Memor#Error: PermGen space
Then yo pro"a"ly need to allo!ate 1ore 1e1ory to the gar"age !olle!tor>s per1anent generation. This
se!tion o2 6O) 1e1ory is allo!ated separately 2ro1 the heap; and its de2alt 1a@i11 siCe varies
a!!ording to the plat2or1 on whi!h the 6O) is rnning. The Open&)S 1.P start s!ript on #&IL and
4in@ plat2or1s sets the 1a@i11 siCe to 12P)B; "t yo !an ad=st this vale in
DOP/&&)SBEO)/Aet!Aopenn1s.!on2. Gor e@a1ple?
'&&,%,ON'O;M'N'GE*;OP%,ONS<.-SS:Ma0PermSiMe<3F4m.
T,ning gabage collection
I2 yo have a syste1 with a lot o2 !ores and threads li,e sn>s niagara !p yo 1ight rn into a pro"le1
,nown as JA1dahl>s 4awJ; see http?AAen.wi,ipedia.orgAwi,iAA1dahlT20sBlaw. 8o !an try to opti1iCe
gar"age !olle!tion sing di22erent gar"age !olle!tors; see
http?AA=ava.sn.!o1Ado!sAhotspotAg!1.(.2AM$.T2.SiCingT2.theT2.*enerationsZotline.
#sing
'&&,%,ON'O;M'N'GE*;OP%,ONS<.-SS:[)seParallelG+ W
-1erbose:gc W
-SS:[PrintG+&etails W
-SS:[Print%enuring&istribution W
-SS:[PrintG+%imeStamps.
yo will get a lot o2 ti1e in2or1ation a"ot gar"age !olle!tion in the otpt.log o2 openn1s. The
de2alt gar"age !olle!tor sed "y openn1s is in!g! %e.g. <LL?Fin!g!'; others to try are
Con!)ar,Sweep*C %<LL?F#seCon!)ar,Sweep*C' and the Parallel*C %<LL?F#seParallel*C'
whi!h 1ight "e the "est i2 yo have a lot o2 !oresAthreads. I2 yo have settled down yo !on2igration
re1ove the lines !ontaining ver"ose and Print 2ro1 the options?
'&&,%,ON'O;M'N'GE*;OP%,ONS<.-Sms.?D'E';-E'P;S,]E.m -SS:[)seParallelG+.
(aallel thead liba* on Solais s*ste-s
It is also se2l to se li"1e1 instead o2 standard IO li"raries on Solaris 1.. I2 yo want to ena"le
li"1e1 on an e@isting appli!ation; yo !an se the 4-BPR/4OA- environ1ent varia"le %or
4-BPR/4OA-B7( 2or 7( "it appli!ations' to interpose the li"rary on the appli!ation and !ase it to
se the 1allo!%' 2a1ily o2 2n!tions 2ro1 li"1e1 instead o2 li"!.
O&;P*EOO'&<libumem.so opennms start
O&;P*EOO'&;92<libumem.so opennms start
To !on2ir1 that yo are sing li"1e1; yo !an se the pldd%1' !o11and to list the dyna1i! li"raries
"eing sed "y yor appli!ation. Gor e@a1ple?
? pgrep -l opennms
447F opennms
? pldd 447F
447F: opennms
/lib/libumem.so.3
/usr/lib/libc/libc;hwcap4.so.3
OpenNMS
@ogging
By de2alt the dae1ons log at 9AR& and we"app log at -/B#* level. This !ases a lot o2 e@tra dis,
IAO. 8o !an red!e the logging s"stantially "y setting the level to 9AR& in
/opt/opennms/etc/log2A.properties and
/opt/opennms/webapps/opennms/NE(-,NI/log2A.properties. 6st add this line?
log2A.threshold<N'*N
There is also /opt/opennms/Aett#-webapps/opennms/NE(-,NI/log2A.properties;
"t even thogh this 2ile is read on startp; it see1s not to 1atterK I didn>t need to 1odi2y it.
A2ter restarting; yo shold no longer see 1essages la"elled -/B#* or I&GO in
/opt/opennms/logs/daemon/B and /opt/opennms/logs/webapp/B; e@!ept 2or the
startp log %/opt/opennms/logs/daemon/output.log'.
Data Collection
Eigh dis, IAO load de to data !olle!tion is the 1a=or reason 2or per2or1an!e pro"le1s in 1any
Open&)S syste1s. Eardware and 2ilesyste1 layot as des!ri"ed a"ove helps a lot.
Another approa!h is to o1it all nnesse!ary data !olle!tions.
DonGt collect what *o, donGt need
9hile the Jde2altJ sn1p<!olle!tion de2initions in datacollection-con/ig.0ml provide an
easy<to<go data !olle!tion de2inition 2or s1all networ, syste1s in larger environe1ents it>s
ndesirea"le to !olle!t everything that !an "e !olle!ted. Pro"a"ly in those environe1ents a "etter
approa!h wold "e to &OT se de2alt data !olle!tion "t to start with de2ining pa!,ages in
collectd-con/iguration.0ml and !orresponding sn1p<!olle!tions in datacollection-
con/ig.0ml to ensre only those vales are !olle!ted yo really !are a"ot. See -o!<
overviewA-ata Colle!tion 2or details.
DonGt t* to collect what *o, donGt get
I2 yo try to !olle!t a lot o2 data 2ro1 nodes whi!h don>t provide those vales yo will get a lot o2
threads waiting 2or ti1eots or getting errors. I2 yo have spe!i2i! nodes with pro"le1s loo, in yor
DOP/&&)SBEO)/AshareArrdAsn1pA[nodeid] dire!tory 2or the node%s' in :estion and note all the 1i"
o"=e!ts that are a!tally "eing !olle!ted.
Another possi"ility is to !hange the logging 2or !olle!td 2ro1 9AR& to -/B#*?
?OPENNMS;-OME/etc/log2A.properties:
$ +ollectd
log2A.categor#.OpenNMS.+ollectd<&E()GJ +OOOE+%&
and then 2grep 2or Jnode[yorBnodeid]J in !olle!td.log.
There yo shold see whi!h varia"les Open&)S tries to !olle!t and whi!h varia"les are s!!ess2lly
!olle!ted. The s!!ess2l ones nor1ally end p in the =RR- 2iles; all others de2ined in data<!olle!tion
2or this [type o2] node !an>t "e !olle!ted 2or so1e reason.
I2 there are too 1any ns!!ess2l tries !hange yor data!olle!tion<!on2ig.@1l. 8o 1ay o1it those
vales 2or all devi!es or !reate new !olle!tion grops that !ontain only those 1i" o"=e!ts the node%s'
provide vales 2or. Add a syste1-e2 2or yor node%s' providing the the sa1e vales. In !olle!td<
!on2igration.@1l de2ine a separate pa!,age 2or yor node and re2eren!e the sn1p<!olle!tion yo =st
!reated in data!olle!tion<!on2ig.@1l. )a,e sre the node is only in this one pa!,age. This gives yo an
environ1ent to wor, in that is 2ree o2 any e@tra !ltter and avoids re:esting e@traneos 1i" o"=e!ts
that yo won>t get a response 2or. Then e@peri1ent with di22erent vales 2or 1a@<vars<per<pd; ti1eot
and also sn1p v1 or v2!.
-on>t 2orget to !hange "a!, logging to 9AR& on!e yo have 2inished de"gging.
))DTool.E)obin
9riting all the sn1p<!olle!ted data and the reslts 2ro1 polling the servi!e %response ti1es' to rrd 2iles
prod!es a lot o2 dis, IAO; so loo, 2or dis, tning "elow. Gor 2rther tning see the 2nda1entals and
so1e 1ore detailed pages li,e
RR- per2or1an!e 2nda1entals
RR-BstoreB"yBgropB2eatre
3eeingBRR-
To-cat (if not ,sing b,ilt>in Eett* seve)
Note that there3s no need to use 2om*at sin*e OpenNMS ,ersion #/%/! uness you ha,e a spe*i'i*
requirement that the .uit&in 4etty ser,er in OpenNMS *annot meet/
I2 not already done at installation ti1eK To allow To1!at to a!!ess 1ore 1e1ory than the de2alt. The
easiest way to do this is via the CATA4I&ABOPTS environ1ent varia"le. I2 the To1!at so2tware "eing
sed has a !on2igration 2ile as a"ove; it !an "e added to that 2ile. Otherwise it is "est =st to add it to
!atalina.sh. CATA4I&ABOPTSIJ<L1@1.2(1J
The <L1@ option allows To1!at to a!!ess p to 1*B o2 1e1ory. O2 !orse; the ass1es that there is
1*B o2 availa"le 1e1ory on the syste1. It will need to "e tned to the parti!lar server in se.
OpenNMS dae-on
OpenNMS webapp
Capsd sevice discove* . escan
I2 dis!overy or res!anning o2 a node ta,es a long ti1e; yo !an trn p the 1a@i11 n1"er o2 threads
2or initial dis!overy o2 servi!es %1a@<sspe!t<thread<pool<siCe' or res!ans %1a@<res!an<thread<pool<
siCe' at the top o2 capsd-con/iguration.0ml.
Change logging 2or !apsd in log2A.properties 2ro1 9AR& to -/B#* and !he!, the
capsd.log 2ile 2or the n1"er a2ter JPool<2i"ernJ. I2 n is 1ost o2 the ti1e the sa1e as the 1a@i11
n1"er o2 threads !on2igred yo shold in!rease the 1a@i11 n1"er o2 threads. )ost servers will
easily handle 5. threads or even 1ore as the threads are 1ost o2 the ti1e waiting 2or servi!es that don>t
answer. -on>t 2orget to !hange logging "a!, to 9AR&.
Capsd will !he!, every servi!e de2ined in capsd-con/iguration.0ml 2or every inter2a!e o2 the
devi!e dring a res!an. Gor every servi!e yo !an de2ine the n1"er o2 retries and the ti1eot vale. I2
yo have a devi!e with a lot %hndred' o2 inter2a!es and the de2alt !apsd !on2igration it has to !he!,
a"ot $. servi!es %de2alt 2or openn1s 1.7.@' 2or every inter2a!e. I2 the inter2a!es are =st Jip
inter2a!esJ with no other servi!e li,e dns; dh!p; http et!. yo have a"ot $. servi!es to ti1e ot 2or
every inter2a!e; and pro"a"ly there are retries; too.
To get an esti1ate o2 the ti1e this needs ta,e
time < number o/ inter/aces B number o/ ser1ices B TTnumber o/ retriesU[3U B
Ttimeout 1alue/3666U
&ote? ti1eot is de2ined in 1illise!ondsX
By e@a1ple
time < 366 Yinter/acesZ B 76 Yser1icesZ B T3 Yretr#Z [3U BT4666 Ytimeout in
msZ/3666U
< 34.666 seconds
< 466 min.
< 7.7 hours
Try to red!e the ip<ranges; the n1"er o2 servi!es to !he!,; the ti1eot< and retry<vales to so1ething
reasona"le 2or yor environ1ent.
(olle theads
I2 yo have good hardware and 2ind yor pollers are not !o1pleting in ti1e; yo !an trn p the
1a@i11 n1"er o2 poller threads at the top o2 poller-con/iguration.0ml.
To 2ind ot how 1any threads are a!tally "eing sed; 1a,e sre -/B#* level logging is ena"led 2or
daemon/poller.log; then rn?
? tail -/ poller.log ! egrep CPollerScheduler.BadAust:C
...
4665-6F-68 36:76:74J588 &E()G YPollerScheduler-28 PoolZ
*unnable+onsumer%hreadPool?SiMingIi/oQueue:
adAust: started /iber PollerScheduler-28 Pool-/iber4 ratio < 3.6445457J
alive = 44

...

4665-6F-68 36:76:34J5:7 &E()G YPollerScheduler-28 Pool-/iber4FZ
*unnable+onsumer%hreadPool?SiMingIi/oQueue:
adAust: calling stop on /iber PollerScheduler-28 Pool-/iber7
9at!h the otpt 2or a while a2ter startp. The JaliveJ !ont shows the n1"er o2 a!tive poller threads
%1ins one << the new thread isn>t !onted'. I2 the n1"er o2 threads is !ontinally pegged at the
1a@i11 %de2alt $.'; yo 1ight want to add 1ore threads.
3vent %andling
All in!o1ing events have to "e !he!,ed against the !on2igred events to !lassi2y the1 and to handle
the para1eters !orre!tly. There are a lot o2 prede2ined events in openn1s. In!o1ing events are
!o1pared to the list o2 !on2igred events ntil the 2irst 1at!h is 2ond. I2 yo have a lot o2 in!o1ing
events yo 1ight !onsider to 1a,e the 2ollowing !hanges in
?OPENNMS;-OME/etc/e1entcon/.0ml
!o11ent ot vendor events that yo don>t need
pt the vendor events that 1a,e 1ost o2 yor in!o1ing events on top o2 the list
Ta,e !are that Standard; de2alt and progra11ati! events ,eep their pla!e at the end o2 the list.
As there pro"a"ly are a lot o2 events hitting the Standard< or de2alt<events !on2igred at the end o2 the
list resorting the event list won>t help as 1!h as !o11enting ot.
3vent 'chiving
In the Open&)S J!ontri"J dire!tory; we have a s1all s!ript 2or helping per2or1an!e "y ar!hiving
events into a histori!al event ta"le and pdating the re2eren!es to the ar!hived event to an event pla!e
holder.
8o !an download the latest version o2 the s!ript here.
It is re!o11ended that yo rn this s!ript "y passing in a ti1esta1p arg1ent s!h that yo ar!hive
one day>s worth o2 events "eginning with the oldest day p to the point yo want to ,eep live events
%de2alt is Q wee,s'. Then rn this s!ript withot a ti1esta1p para1eter; 2ro1 !ron as o2ten as yo li,e
2ro1 there ot.
.A1aintBevents.sh J2..PA.1A.1J
To analyCe why yor event ta"le is so large; have a loo, at /ventB)aintenan!e.

Potrebbero piacerti anche