Portabel nätverksövervakning och prestandatest

Thom Bengtsson Anton Snäll

Datornätverk, högskoleexamen 2020

Luleå tekniska universitet Institutionen för system- och rymdteknik

PORTABEL ÖVERVAKNING OCH PRTANDATT

Thom Bengtsson & Anton Snäll

D0032D, Examensarbete

Datornätverk, VT20

Luleå tekniska universitet

System- och Rymdteknik

Sammanfattning

Detta arbete är utfört på uppdrag av CGI med ambitionen att hitta ett open source program som tillhandahåller övervakning och prestationstester. Programmet ska gå att ha på en server eller maskin som är portabel, för att möjliggöra insamling av data om ett nätverk den ena dagen och ett annat den andra dagen. På grund av rådande situation i samhället sker allt arbete på distans vilket gör att tester av programvara endast sker på små, privata nätverk. Mycket vikt läggs på efterforskning, för att hitta de program som i teorin skulle fungera för ändamålet. Det visar sig snabbt att med open source som krav är ett enda program inte ett alternativ, så sökfältet expanderas. Tester utförs där programvarorna bedöms efter användarvänlighet och funktioner som underlättar vid omlokalisering av servern. Resultatet för övervakning blir programmen OpenNMS Horizon och NetXMS som båda levde upp till kraven, prestandaverktyget som valdes ut är Flent som kombinerar bl.a. Iperf och Netperf i sina tester och erbjuder grafiska presentationer av resultatet. Den begränsade tiden påverkade möjligheterna att testa samtliga alternativ som påträffades och rådande pandemi begränsade möjligheterna att testa programmen i någon större utsträckning. Målet med en lösning uppfylldes inte utan resulterade istället i två separata mjukvaror. Dessa finner man ändå uppnår de respektive målen.

Abstract

This work has been done as an assignment from CGI with the ambition to find an open source program that provides both network monitoring and performance testing. The program should be able to run on a portable server or other machine, to allow for data gathering of one network one day and of another network the next day. Due to the current state of society all work is done *remotely*, restricting tests to only be performed on smaller private networks. Much time is put into research to find the programs that in theory would work for the purpose. It's quickly revealed that with open source as a demand, a single program is not an option, thus the search is expanded. Tests are performed where the programs are graded by useability and functions that facilitate redeployment of the server between network sites. The results for network monitoring are the programs OpenNMS Horizon and NetXMS, which both lived up to the demands. The program chosen for performance testing is Flent, which among others combines Iperf and Netperf in its tests and presents the results in graphs.The limited time affected our opportunities to test all the programs we came across and the current pandemic limited our opportunities to test our chosen programs to a greater extent.The goal of finding one solution was not accomplished and instead resulted in two separate pieces of software. These are found to accomplish their respective goals.

Innehållsförteckning

1. Introduktion 1

2. Teori 2 2.1 SNMP 2.2 OpenNMS Horizon 2.3 NetXMS 3 2.4 Flent 4 2.5 Netperf 5 2.6 Lubuntu Core Server Desktop genom Tasksel

3. Metod 6 3.1 Material 3.2 Krav på programvara 3.3 Utförande 7 3.3.1 Mjukvara för övervakning 3.3.2 Mjukvara för prestandatest 3.3.3 Flent 3.3.4 Lubuntu Core Server Desktop 3.4 Bedömning 8

4. Resultat 10

5. Diskussion 11

6. Referenser 12

Bilaga 1: Förkortningar 14

Bilaga 2: Installationer 15 OpenNMS Horizon 26.1.0 Installationer Konfigurationer 16 Starta och kör OpenNMS. 18 NetXMS 1.8 19 Förarbete Installation MySQL och tillägg Installation Java och Tomcat Konfiguration av databasen i MySQL 21 Installation 22 Installation NetXMS Installation Management Console Inloggning 23 Flent 24 Netperf Lubuntu Core Server Desktop genom Tasksel

1. Introduktion

Övervakning av nätverk är en viktig del i dess underhåll, där information om dess enheters beteende samt trafik ger en bra inblick i hur det fungerar. En trasig enhet i ett stort nätverk behöver snabbt lokaliseras och åtgärdas, istället för att söka igenom nätverket enhet för enhet kan ett nätverksövervakningsprogram smidigt upptäcka felet och larma direkt. Prestandatester är ett bra verktyg att använda i förebyggande syfte, genom att testa nätverket innan det sätts i drift eller vid förändringar kan man identifiera eventuella problem innan de inträffar och på så vis undvika driftstörningar.

CGI är ett globalt företag som levererar tjänster inom IT och affärsprocesser. I samarbete med deras kontor i Skellefteå söker vi en lösning för att på ett smidigt sätt kunna övervaka och prestandatesta kunders nätverk för att identifiera eventuella fel. Idén är att man med en portabel server tillfälligt ska kunna koppla upp sig ute hos kund för att övervaka nätverket, utföra prestandatester och sedan presentera resultaten för kund på ett tilltalande sätt.

CGI har upplevt supportärenden där kunder inte kan ge tillräcklig information och de behöver då åka ut till plats för att utföra felsökning. De kan då behöva bekanta sig med kundens befintliga övervakningssystem. I dessa situationer skulle användningen av egen programvara eliminera tidsåtgången för att sätta sig in i kundernas övervakningssystem och på så sätt underlätta och effektivisera felsökningsarbetet.

Syftet med detta arbete är att försöka hitta lämplig programvara som skulle kunna underlätta för CGI i deras dagliga arbete. Det tänkta användningsområdet kräver att programvaran uppfyller vissa krav t.ex. ska det vara open source, portabelt, någorlunda låga prestandakrav osv.

1

2. Teori

I detta avsnitt tas nödvändig mjukvara och protokoll upp som ligger till grund för arbetet.

2.1 SNMP

Simple Network Management Protocol (SNMP) är ett protokoll som används vid övervakning av enheter över ett nätverk. En server agerar manager och övervakar enheter såsom datorer, mobiler, routrar, switchar etc. som kallas agents. SNMP använder sig av portarna 161 och 162 för hämtning (polling) och traps respektive. Polling hämtar information från enheten genom GET-kommandot och utförs manuellt av en administratör eller enligt ett schema genom ett script eller program, medan traps är satta gränser för t.ex. temperatur eller processoranvändning hos en övervakad enhet. När dessa gränser uppnås skickar enheten själv trafik till managern. Ny information kan även skrivas till enheterna genom SET-kommandot. Protokollet finns i tre olika versioner där v3 är den enda som tillämpar riktig säkerhet i form av authentication och privacy [1][2].

2.2 OpenNMS Horizon

Ett enterprise-klassat program för övervakning och hantering av nätverk. Utvecklat och stöttat av en community av användare och utvecklare. The OpenNMS Group har också ett finger med i spelet, de erbjuder kommersiella tjänster, utbildning och support.

Ambitionen är att OpenNMS Horizon ska uppfylla alla aspekter av FCAPS-modellen medan programmet förblir 100% open source. Projektet i sig upprätthålls av en grupp utvecklare som kallar sig The Order of the Green Polo.

Programmet är skrivet i Java och kan på så vis köras på alla plattformar som har stöd för Java SDK 1.6 eller högre. Utöver Java behövs databasen PostgreSQL, men det finns planer på att göra OpenNMS oberoende av databas.

Processen för att lägga till enheter i systemet kan ske både manuellt enhet för enhet eller automatiskt genom att en adressrymd specificeras och programmet pingar varje adress och listar därefter de enheter den får svar från. Den underliggande tekniken som används

2

för konfigurationen är XML, så möjligheten att applicera konfiguration direkt i XML-filen finns också.

Att samla in data relaterat till prestation är möjligt för en rad olika nätverksprotokoll, där ibland SNMP, HTTP, JMX, WMI, XMP, XML, NSClient och JDBC. Data kan samlas in, lagras, presenteras grafiskt och jämföras mot thresholds [3].

2.3 NetXMS

Ett övervakningsprogram utvecklat i , C++ och Java av Victor Kirhenshtein och Alex Kirhenshtein som open source. Utvecklat för övervakning av stora nätverk, med säker och krypterad kommunikation mellan sig och andra enheter genom x.509-certifikat, lösenord, smart-cards eller RADIUS-server. Information hämtas genom SNMP eller installerade NetXMS-agenter på enheter. Upptäcker enheter automatiskt genom Active Discovery (skanningsprober) och Passive Discovery (information från ARP- och routingtabeller samt interfaces från nätverksenheter).

Använder databaser såsom MySQL, MongoDB, PostgreSQL m.fl. för att förvara information genom tillämpning av Round Robin Database (RRD), där äldre information skrivs över vid behov. Administratörer kan larmas genom programmet eller via sms och e-post vid olika events. Kontrolleras via web-GUI () eller CLI (Command Line Interface). Programvaran är tillgänglig för , Windows och Mac OS X [4][5].

3

2.4 Flent

Ett program som används för att testa prestanda i nätverk. Flent är kodat i Python och är en s.k. wrapper som kombinerar Iperf och Netperf med andra verktyg för att köra förkonfigurerade tester och samla in samt presentera dess resultat. Testerna utgörs av Netperf som skickar TCP-trafik mellan enheterna samt instanser av övrig mjukvara som med UDP och SNMP mäter latency. Resultaten samlas sedan in från båda enheterna och kombineras i en JSON-fil som Flent kan presentera på olika sätt. Det kan även sparas ned som en CSV-fil och andra format. Tester kan köras mot en eller flera enheter för att bl.a. kontrollera förekomsten av bufferbloat. Bufferbloat är när onödiga mängder data samlas i bufferterna hos routrar eller switchar i ett nätverk och orsakar hög latens eller jitter [6][7].

Två exempel på tester som tillhandahålls av Flent är Real-Time Response Under Load (RRUL) och RTT fairness test. RRUL-testet är framtaget med fokus på bufferbloat, för att stresstesta nätverket och vaska fram eventuellt oönskat beteende hos enheter i nätverket. Det fungerar genom att fyra TCP-strömmar körs i vardera riktning mellan en enhet med rollen som server och en enhet med rollen som klient, samtidigt körs UDP- och ICMP-strömmar för att få ett mått på latensen. Som tidigare nämnt är huvudsakliga syftet att hitta rätt på bufferbloat, men testet fungerar också bra för att stresstesta enheters köhanteringsscheman [6][7][10].

Syftet med Round Trip Time (RTT) fairness test är att utvärdera ifall queue management schemes hjälper eller stjälper TCP-goodputen, eftersom congestion control algoritmen påverkas av RTT . Goodput är den del av data som skickas som anses direkt användbar, som ren applikationsdata. Testet går till genom att köra fyra TCP-strömmar samtidigt från klienten till fyra olika servrar. Flent erbjuder flera varianter på detta test för att underlätta utvärderingar av olika endpoint-enheter i olika scenarion med olika förutsättningar [6][9][10].

4

2.5 Netperf

En mjukvaruapplikation från början utvecklad av Hewlett Packard för test av bandbredd mellan två enheter i ett nätverk. Netperf stödjer domain sockets, TCP, SCTP, DLPI och UDP via BSD sockets. Med Netperf kan förkonfigurerade tester köras som t.ex. att mäta unidirectional throughput och end-to-end latens [11].

2.6 Lubuntu Core Server Desktop genom Tasksel

Lubuntu är i sig ett helt operativsystem, ett resurssnålt alternativ till Ubuntu. I detta arbete använder vi inte hela systemet utan endast desktopmiljön för att få ett GUI till servern då vissa program behöver det, det laddas ned och installeras med hjälp av tasksel [12].

Tasksel är ett verktyg som bl.a. tillhandahåller skrivbordsmiljöer till servrar genom en simpel valmeny [13].

5

3. Metod

I den här delen behandlas det praktiska arbetet som utfördes.

3.1 Material

● Windows datorer ● VMWare med virtuella maskiner ○ Ubuntu 18.04.04 Server ○ CentOS 7 ○ Lubuntu GUI

3.2 Krav på programvara

Sökandet efter programvaror styrdes av krav satta med hänsyn till det tänkta användningsområdet.

För nätverksövervakning var kraven:

● Open Source ● Låga prestandakrav ● Smidig installation ● Snabb uppstart ● Användarvänligt ● Auto Discovery ● Rensning av databas efter användning ● Portabilitet

För prestandatest var kraven:

● Open Source ● Throughput & Goodput ● Response Time ● Max Capacity under längre och kortare tidsspann ● Användarvänligt

6

● Spara ned och presentera information

3.3 Utförande

För att testa programvaror används virtuella maskiner med operativsystemet Ubuntu 18.04 Server installerat. OpenSSH installerades för smidig åtkomst till maskinerna och förenkling av installationer. För att tillhandahålla en smidig och användarvänlig arbetsmiljö sågs alternativ för desktopmiljöer över. Lubuntu Core Server Desktop valdes ut och installerades på samtliga maskiner. Det var en av de mest resurssnåla grafiska interfacen och möjliggjorde åtkomst till mjukvarornas traditionella respektive webbaserade GUI:n direkt i den virtuella maskinen.

3.3.1 Mjukvara för övervakning

Ett flertal program sågs över men de som stack ut var OpenNMS Horizon och NetXMS som installerades och konfigurerades enligt instruktionerna i bilaga 2.

3.3.2 Mjukvara för prestandatest

3.3.3 Flent

Väldigt lite konfiguration krävdes efter installationen för att starta programmet som kördes i GUI. Däremot för att kunna utföra tester krävdes installation av Netperf version 2.6 eller högre. Netperf kördes med en andra maskin som server och Flentmaskinen som klient

3.3.4 Lubuntu Core Server Desktop

Då Flent körs via GUI installerades Lubuntu Core Server Desktop med hjälp av verktyget tasksel enligt instruktionerna i bilaga 2.

7

3.4 Bedömning

Programmen bedömdes utefter punkterna på kravlistan. Uppfylldes de teoretiska kraven gick de vidare till det praktiska testandet. Installation och uppstart av mjukvarorna sågs över, med hänsyn till hur mycket tid som lades ned och hur smidigt det gick. Man undersökte även hur användargränssnittet var utformat och hur pass användarvänligt det var, sett till menyer och dylikt. För övervakningsprogrammen sågs funktionen för Auto-Discovery över, samt möjligheten att rensa tidigare övervakade noder både innan och efter anslutning till ett nytt nätverk. I programmen för prestandatest sågs möjligheten över att konfigurera tester samt vilken data som presenterades och hur graferna skulle läsas av.

OpenNMS Horizon startades upp med hjälp av “​systemctl” utan problem. Funktionen ​ Auto Discovery återfanns i Admin-menyn och rensningen av tidigare upptäckta noder fanns tillgänglig i samma meny.

NetXMS kom igång snabbt med kommandot “​netxmsd”. En topplacerad meny gav tillgång ​ till programmets olika delar såsom Syslog, Network Discovery och Scheduled Tasks, medan en dashboard visade upp de delar man valt från toppmenyn. I funktionen Network Discovery ställdes det in hur programmet skulle upptäcka andra enheter, med val för “Passive”, “Active”, båda kombinerade eller “Disabled” som stängde av funktionen helt. “Passive” använde serverns egen ARP-tabell för att få information om andra delar av nätverket, medan “Active” pingade adresser inom den adressrymd som lades in.

Skanningen påbörjades manuellt och enheter i nätverket upptäcktes en efter en och visades i fliken “Objects” under delen “Entire Network” → “192.168.1.0/24”. Möjlighet fanns att schemalägga skanningar efter enheter alternativt att lägga in ett intervall för hur lång tid det skulle gå mellan varje tillfälle. Inställningar fanns för att filtrera Auto Discovery för endast enheter med NetXMS Agent installerad, med SNMP Agent installerad eller om de förekommer i den adressrymd som ställts in. Filtrering kan bli användbar vid större nätverk där flera adressrymder finns inlagda för schemalagda skanningar, men endast en bråkdel av dessa behöver skannas efter nya enheter.

När enheter stängdes ned och inte längre var nåbara markerades de tydligt i listan med en röd-vit krysslåda. Det kom även upp som en händelse i fliken “Alarm Browser”

8

innehållandes allvarlighetsgrad, status, meddelande om att noden var nere, antalet gånger det inträffat, när noden först skapades och när den senast uppdaterades. Dessa alarm kan även ställas in att skickas per e-post eller sms om sådan tjänster och servrar är tillgängliga och konfigurerade. Rensning av upptäckta enheter och dess nät utfördes under fliken “Objects”. Ett högerklick samt “Delete” på valt nät tog bort samtliga enheter och all information rensades från databasen. Mjukvaran var sedan redo för återanvändning i andra nät.

Rollen mjukvaran för prestandatester behöver fylla i det givna scenariot är att utmana ett nätverks kapacitet mellan dess olika delar. Det utvalda programmet ska tillsammans med mjukvaran för övervakning användas i syfte att finna och åtgärda eventuella fel i nätverk.

9

4. Resultat

Det visade sig ganska snabbt att de program som uppfyllde kraven och tillhandahöll båda funktionerna i ett och samma program krävde dyra licenser. Inget av de open source-program som behandlades huserade både övervakning och prestandatester, med det skiftades fokus från att hitta ett program som sköter allt till att hitta ett för övervakning och ett för prestandatester.

Av de program som testats för övervakning valdes två ut, OpenNMS och NetXMS. Dessa två var de som var mest kompletta och mest tilltalande. Med kärnfunktioner som autodiscovery och smidigt borttagande av scannade noder i nätverken fyllde de målen vi satt.

För prestandatester fann man tidigt ett alternativ som stod ut i mängden, Flent. Detta program kombinerar bland annat Iperf och Netperf i sina tester och presenterar sedan resultatet grafiskt, med möjligheten att spara ner datan i olika format.

Några andra program som undersökts och bedömts otillräckliga är:

● Munin ● Monitoring ● LogRythm Netmon Freemium ● LibreNMS ● Pandora FMS ● CheckMK ● EventSentry Light ● Opmantek ● Spiceworks NM ● Zabbix

10

5. Diskussion

Ambitionen från början var att hitta ett open source program som tillhandahåller både övervakning och prestandatester, allt i ett paket. Det blev inte som tänkt då det visade sig att samtliga program som fyllde båda funktionerna krävde licens, i varje fall de program som hann behandlas i detta arbete innan beslutet om att köra på två program togs.

De lösningar som behandlas i rapporten kan tillsammans fylla de funktioner som eftersträvades. En sak som är värd att nämna är att man kan välja övervakningsmjukvaran lite efter smak, då det finns gott om alternativ i kategorin open source. OpenNMS Horizon och NetXMS är de alternativ vi valt utefter erfarenhet begränsad till de kurser vi läst under utbildningen. Ett program som kan vara värt att kika närmare på är Zabbix, det föll bort p.g.a. tidsbrist men som till synes verkar mätbart med OpenNMS och NetXMS i teorin i varje fall.

På prestandatestfronten kändes utbudet lite snålare, Iperf och Netperf är båda bra alternativ, men ingen av dem presenterar resultaten annat än i siffror. Där känns Flent som det självklara valet, i och med att den kombinerar Iperf och Netperf vid behov och även erbjuder grafiska presentationer av resultatet.

Vad det gäller saker som hade kunnat göras bättre så hade mer tid varit väl till hands, lite mer erfarenhet inom det specifika området hade också kunnat användas. En lösning hade varit att ta kontakt med yrkesproffs i området för att få en bild av vad som egentligen behövs, men det leder åter tillbaka till tid. Med lite mer tid hade vi kunnat lyfta fokus från efterforskning och försökt ta in mer synvinklar utifrån.

OpenNMS Horizon och NetXMS skulle kanske kunna tänkas implementera rena prestandatester i sin mjukvara någon gång i framtiden, men av vad som framgår finns det i dagsläget inga tecken på det.

Om vi summerar arbetet så gick vi in med målet att hitta en allt-i-ett lösning, med våra krav fick vi ta ett steg tillbaka och ställa om siktet. Det blev inte riktigt som tänkt men de lösningar som presenteras i arbetet kan ändå ses som potentiella verktyg för CGI i deras arbete framöver.

11

6. Referenser

1. Net-SNMP.org, ​Net-SNMP [​ Online] URL: ​http://www.net-snmp.org/ Hämtat: 2020-05-05

2. SNMP.com, S​ NMP ​[Online] URL: h​ ttp://www.snmp.com/snmpv3/snmpv3_intro.shtml Hämtat: 2020-05-05

3. OpenNMS.com, ​OpenNMS ​ [Online] URL: https://www.opennms.com/opennms-platform/ Hämtat: 2020-05-07

4. NetXMS.org, N​ etXMS ​[Online] URL: h​ ttps://www.netxms.org/ Hämtat: 2020-05-15

5. NetXMS.org, N​ etXMS ​[Online] URL: h​ ttps://www.netxms.org/details/ Hämtat: 2020-05-15

6. Flent.org, ​ Flent ​[Online] URL: ​https://flent.org/ Hämtat: 2020-05-18

7. Bufferbloat.net, B​ ufferbloat ​[Online] URL: https://www.bufferbloat.net/projects/bloat/wiki/TechnicalIntro/ Hämtat: 2020-05-18

8. Høiland-Jørgensen T. “Flent: The FLExible Network Tester”, K​ arlstad University [Online] URL: h​ ttps://flent.org/flent-the-flexible-network-tester.pdf Hämtat: 2020-05-18

9. Banks R. ​Packetpushers [​ Online],​ ​6 Mars 2015 URL: h​ ttps://packetpushers.net/throughput-vs-goodput/ Hämtad: 2020-05-19

12

10. Manpages.ubuntu.com, M​ anpages.ubuntu flent ​[Online] URL: h​ ttp://manpages.ubuntu.com/manpages/bionic/man1/flent.1.html Hämtad: 2020-05-19

11. Hewlettpackard.github.io, H​ ewlettpackard.github netperf [​ Online] URL: h​ ttps://hewlettpackard.github.io/netperf/ Hämtad: 2020-05-18

12. Linuxconfig.org, L​ inuxconfig ​[Online] URL: ​ ​https://linuxconfig.org/install-gui-on-ubuntu-server-18-04-bionic-beaver Hämtad: 2020-05-19

13. Wiki.debian.org, w​ iki.debian tasksel ​ [Online] URL: ​https://wiki.debian.org/tasksel Hämtad: 2020-05-19

13

Bilaga 1: Förkortningar

ARP ​ - Address Resolution Protocol BSD sockets​ - Berkeley Sockets CLI -​ Command Line Interface CSV-fil ​- Comma-Separated Values DLPI -​ Data Link Provider Interference FCAPS-modellen ​- Fault-management, Configuration, Accounting, Performance, Security. Riktlinjer för nätverksadministration. GUI ​- Graphical User Interface HTTP -​ HyperText Transfer Protocol ICMP ​- Internet Control Message Protocol JDBC ​- Java Database Connectivity JMX ​- Java Management Extensions JSON-fil -​ JavaScript Object Notation RADIUS ​- Remote Authentication Dial-In User Services RRUL -​ Real-Time Response Under Load RTT ​- Round Trip Time SCTP ​- Stream Control Transmission Protocol SNMP -​ Simple Network Management Protocol TCP -​ Transmission Control Protocol UDP -​ User Datagram Protocol Unix Domain Sockets ​ - WMI -​ Windows Management Instrumentation XML -​ Extensible Markup Language XMP -​ Extreme Memory Profile

14

Bilaga 2: Installationer

OpenNMS Horizon 26.1.0

Hela stycket OpenNMS Horizon 26.1.0 är baserat på den officiella installationsguiden från utvecklarna av OpenNMS: https://docs.opennms.org/opennms/branches/develop/guide-install/guide-install.html​.

Mjukvaran krävde att följande program och tillägg fanns installererade:

● OpenJDK 8 eller 11 ● Postgresql 10.x eller högre (installation utförs automatiskt när OpenNMS installeras.)

Installationer

Installationen av OpenJDK.

#sudo apt update

#sudo apt install default-jdk

Uppgifter om repositories för OpenNMS samt Gnu Privacy Guard-key (GPG-key) angavs.

#cat << EOF | sudo tee /etc/apt/sources.list.d/opennms.list deb https://debian.opennms.org stable main deb-src https://debian.opennms.org stable main EOF

#wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -

#apt update

15

Installationen av OpenNMS.

#sudo apt -y install opennms

På rekommendation av utvecklarna placerades repositories på “hold” för att undvika oönskade uppdateringar medan programmet körs.

#apt-mark hold libopennms-java \ libopennmsdeps-java \ opennms-common \ opennms-db

Konfigurationer

PostgreSQL databasen startades upp.

#systemctl start postgresql

En OpenNMS användare skapades för databasen med ett lösenord samt en databas som ägs av den användaren. För namn användes “opennms” för både användare och databas.

#su - postgres #createuser -P opennms #createdb - O opennms opennms

Lösenord sattes för Postgres super user.

#psql -c "ALTER USER postgres WITH PASSWORD 'YOUR-POSTGRES-PASSWORD';" #exit

Konfigurera tillgång till databasen i OpenNMS.

#nano /etc/opennms-datasources.xml

16

I dokumentet, justerades följande rader.

database-name="opennms" ​ class-name="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/opennms" (2)---> user-name="** YOUR-OPENNMS-USERNAME **" ​ (3)---> password="** YOUR-OPENNMS-PASSWORD **" /> ​

database-name="template1"

class-name="org.postgresql.Driver"

url="jdbc:postgresql://localhost:5432/template1"

(4)---> user-name="postgres" ​

(5)---> password="** YOUR-POSTGRES-PASSWORD **" /> ​

1. Databas som OpenNMS skall använda. 2. Användarnamn för tillgång till databas. 3. Lösenord för tillgång till databas. 4. Postgres-användare för administrativ tillgång till PostgreSQL. 5. Postrgres-lösenord för administrativ tillgång till PostgreSQL.

17

Starta och kör OpenNMS.

Java-miljö hittas

${OPENNMS_HOME}/bin/runjava -s

Databasen initieras och systembibliotek upptäcks.

${OPENNMS_HOME}/bin/install -dis

Systemd konfigureras så att OpenNMS startas när systemet bootar.

#systemctl enable opennms

Starta OpenNMS

#systemctl start opennms

I webbläsare, öppna ​http://:8980/opennms.

Vid första inloggning är användarnamn och lösenord båda “​admin”​ . Lösenord bör givetvis ändras så snart som möjligt, detta görs i “navigationsmenyn→ Change Password→ Change Password”.

Därefter är programmet redo att användas.

18

NetXMS 1.8

Hela stycket refererar till en guide skapad av en användare på NetXMS’ officiella forum, tillsammans med en guide från LinuxTechi [x, x].

Förarbete

Mjukvaran krävde att följande program och tillägg var förinstallerade:

● MySQL-Server (Database) ● LibMySQLclient-Dev (MySQL Development Files) ● LibSSL-Dev (SSL Development Files) ● Tomcat (Web Server) ● Java

Installation MySQL och tillägg

Systemets repositories uppdaterades, databasen och övriga tillägg installerades: # sudo apt-get update # sudo apt-get install mysql-server # sudo apt-get install libmysqlclient-dev # sudo apt-get install libssl-dev

Installation Java och Tomcat

Java installerades och version bekräftades före installation av webbservern: # sudo apt install default-jdk -y # java --version

En ny directory och användare skapades för att innehålla och kontrollera webbservern: # sudo mkdir /opt/tomcat # sudo useradd -s /bin/false -d /opt/tomcat tomcat

Nedladdning och extrahering av Tomcat till directory /opt/tomcat/ genomfördes: # wget

19

http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.35/bin/apache-tomc at-9.0.35.tar.gz # sudo tar xzvf apache-tomcat-9.0.35.tar.gz -C /opt/tomcat --strip-components=1

Gruppen tomcat tilldelades write- och execute-rättigheter för /opt/tomcat/ och dess sub-directories: # sudo chgrp -R tomcat /opt/tomcat # cd /opt/tomcat/ # sudo chmod -R g+r conf # sudo chmod g+x conf

Användaren tomcat sattes som ägare av directories webapps, work, temp och logs, samt deras sub-directories: # sudo chown -R tomcat webapps/ work/ temp/ logs/

En systemd service skapades för att kunna styra web-servern.

Sökvägen för Java lokaliserades och lades in tillsammans med sökvägen till Tomcat genom kommandona: # sudo update-java-alternatives -l # export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 # export CATALINA_HOME=/opt/tomcat # export CATALINA_BASE=/opt/tomcat

En systemd-fil för Tomcat skapades och följande innehåll lades till: # sudo nano /etc/systemd/system/tomcat.service

[Unit] Description=Apache Tomcat Web Application Container After=network.target

[Service] Type=forking

20

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always

[Install] WantedBy=multi-user.target

Systemd daemon laddades om och tomcat.service startades upp:

# sudo systemctl daemon-reload # sudo systemctl start tomcat # sudo systemctl enable tomcat

En symlink skapades mellan /etc/systemd/system/multi-user.target.wants/tomcat.service och /etc/systemd/system/tomcat.service.

Statusen “Active” bekräftades genom kommandot: # sudo systemctl status tomcat

Utifall OS:ets brandvägg aktiveras lades tillstånd inför Tomcat-serverns portar: # sudo ufw allow 8080

21

För åtkomst utanför den virtuella maskinen kommenterades två rader i två XML-filer och tomcat service startades om: # sudo nano /opt/tomcat/webapps/host-manager/METRA-INF/context.xml

# sudo systemctl restart tomcat

Konfiguration av databasen i MySQL

Databasen för NetXMS skapades därefter genom kommandot:

# sudo mysql -u root -p mysql mysql> CREATE DATABASE netxms; mysql> GRANT ALL ON netxms.* TO netxms@localhost IDENTIFIED BY ‘’;

Installation

Installation NetXMS

Laddade ned senaste Deb Server Package för NetXMSoch installerade: # wget http://packages.netxms.org/netxms-release_1.8_all.deb ​ # sudo dpkg -i netxms-release_1.8_all.deb

Uppdaterade repositories och installerade NetXMS-server: # sudo apt-get update # apt-get install netxms-server

22

Installerade specifik för åtkomst till databasen: # sudo apt-get install netxms-dbdrv-mysql

Avkommenterade rader för MySQL-konfiguration i NetXMSD’s konfigurationsfil samt laddade databasschemat: # sudo nano /etc/netxmsd.conf ## Option #3 - MySQL: DBDriver=mysql.ddr DBServer=127.0.0.1 DBName=netxms DBLogin=netxms DBPassword=enter-database-password ​ # sudo nxdbmgr init /usr/share/netxms/sql/debinit_mysql.sql

Installation Management Console

Programmets webb-GUI installerades genom nedladdning och installation från utvecklarnas hemsida: # wget ​https://www.netxms.org/download/releases/3.3./3.3.314/nxmc-3.3.3.14.war # cp nxmc-2.2.16 war ROOT.war # sudo su # cd /opt/tomcat/webapps # rm -rf ROOT # cp /home/thom/ROOT.war /opt/tomcat/webapps # systemctl restart tomcat # netxmsd

Inloggning

Åtkomsten till NetXMS var genom dess web-GUI på ​http://server_ip-adress:8080/nxmc​. Användarnamnet och lösenord var “admin” och “netxms”.

23

Flent

Hela stycket Flent är baserat på den officiella installationsguiden från utvecklarna av Flent: https://flent.org/

#sudo apt-get install flent

Netperf

Hela stycket Netperf är baserat på installationsguiderna från devmanuals.net och flent.org: https://www.devmanuals.net/install/ubuntu/ubuntu-12-04-lts-precise-pangolin/install-netperf.ht ml https://flent.org/intro.html#installing-flent

#sudo apt-get install netperf

Netperf måste sedan kompileras med tillägget​ --enable-demo till​./configure innan ​ ​ det körs.

För att köra Netperf som server:

#netserver &

Lubuntu Core Server Desktop genom Tasksel

Hela stycket Lubuntu Core Server desktop är baserat på installationsguiden från linuxconfig.com och zoomadmin.com: https://linuxconfig.org/install-gui-on-ubuntu-server-18-04-bionic-beaver https://zoomadmin.com/HowToInstall/UbuntuPackage/tasksel

#sudo apt-get install tasksel

#sudo tasksel install lubuntu-core

Och för att starta Lubuntu core server desktop:

#sudo service lightdm start

24