OCS Inventory – Automatiseer je computerinventaris!

About

OCS Inventory – Automatiseer je computerinventaris!

Als je een PC bouwt of een printer aanschaft, ken je de specificaties wel. Maar na verloop van tijd vergeet je die meestal en moet je met manuals of tools in de weer. Met OCS Inventory hoeft dat niet meer. Die houdt zelf automatisch bij welke hardware je allemaal hebt en via de webinterface heb je zo altijd alle informatie bij de hand.  

Serge Gielkens

Om de inventaris op te maken gebruikt OCS Inventory agents. Die installeer je op de pc’s of mobiele apparaten waarvan je de specificaties wil weten. Deze agents sturen vervolgens periodiek de gegevens naar de server. Die slaat de inventaris op in een database om er handige overzichten van te maken.

Daarnaast kunnen deze agents ook informatie achterhalen van apparatuur waarop niks te installeren valt. Denk hierbij aan printers en routers. Dat gebeurt met SNMP, een protocol om systeeminformatie via het netwerk beschikbaar te stellen. Het hangt wel af van de apparatuur of en zo ja, welke informatie voorhanden is. Dit deel voor de meer doorgewinterde gebruiker komt aan het eind aan bod. Voor de beschrijving gebruiken we weliswaar Fedora, maar voor Debian of Ubuntu is de procedure niet wezenlijk anders.

Richt database in

OCS Inventory gebruikt MariaDB als database. Begin daarom met het installeren van het pakket mariadb-server. Maak MariaDB direct actief bij een volgende reboot van je computer:

sudo systemctl enable --now mariadb

Door de optie –now start de database server nu meteen al op. Roep dan de command line interface van MariaDB op:

sudo mysql

En maak een database:

create database ocsdata;

Let op de puntkomma, die is nodig. Maak tevens voor OCS Inventory een gebruiker met wachtwoord aan:

create user ocsuser identified by ‘ocspw’;

Vergeet nu behalve de puntkomma ook niet de aanhalingstekens. Andere credentials mogen natuurlijk ook, maar vermijd de standaard waarde ocs als gebruiker of wachtwoord. Gebruik je die toch, dan krijg je later in de webinterface een duidelijke waarschuwing.

Geef tenslotte OCS Inventory de benodigde rechten om tabellen aan te maken:

grant all on ocsdata.* to ocsuser;

Met quit verlaat je de command line interface.

Installeer server

Fedora heeft de server niet in zijn officiële repository. Gelukkig levert OCS Inventory wel de benodigde pakketten. Dat zijn er twee. De eerste is ocsinventory-server, die de gegevens van de agents naar de database wegschrijft. Het andere pakket ocsinventory-reports verzorgt de webinterface.

Verder heeft OCS Inventory de FastCGI Process Manager voor PHP nodig. Op Fedora krijg je die niet automatisch. Installeer daarom het pakket php-fpm zelf na. Hetzelfde geldt voor de JSON-extensie van PHP, waarvoor je php-json installeert.

Start Apache op en zorg dat die bij een volgende reboot meteen actief is:

sudo systemctl enable --now httpd

Rond configuratie af

Ga met je webbrowser naar de webinterface van OCS Inventory via de URL http://<ipadres_van_je_webserver>/ocsreports. Als Apache lokaal draait, gebruik je als IP-adres localhost.

Bovenin staan twee waarschuwingen. De eerste gaat over PHP-instellingen voor deployments, dat wil zeggen het installeren van software op Windows computers via OCS Inventory. Daar gaan we hier niet op in. De tweede houdt verband met de database. Daarop komen we zo dadelijk wel terug.

Bij MySQL login en MySQL password vul je ocsuser en ocspw in. Tik achter Database ocsdata in. Als de database en webserver op dezelfde machine staan, geef je bij MySQL HostName localhost op. In andere gevallen gebruik je de hostnaam of het IP-adres van de database server. Geef bij MySQL Port het poortnummer 3306 op, anders gebeurt er niets. Laat de rest leeg en klik op Send.

Nu is de webinterface weliswaar op de hoogte van je database, maar toch weet de server nog steeds niet hoe hij de gegevens van de agents in de database moet opslaan. De pakketten ocsinventory-reports en ocsinventory-server hoeven namelijk niet op dezelfde machine te staan. Daarover nu ging bovengenoemde waarschuwing. Pas daarom handmatig het configuratiebestand van de server aan. Ga daarvoor naar /etc/httpd/conf.d en open ocsinventory-server.conf in je teksteditor. Vul onder het kopje Master Database settings dezelfde gegevens in die je zojuist hierboven voor ocsinventory-reports hebt gebruikt.

Ga vervolgens weer terug naar de webinterface en klik op OCS-NG GUI om naar het inlogscherm te gaan. Mogelijk krijg je een melding over een update van de database van OCS Inventory. Voer die uit door op Perform the update te klikken en log vervolgens in als admin met wachtwoord eveneens admin.

Je bent nu op het dashboard. Daar zie je een waarschuwing dat het installatiescript nog aanwezig is. Om misbruik te voorkomen verwijder je het of stel je het elders veilig voor eventueel toekomstig gebruik. Het gaat om het bestand install.php in deze directory:

/usr/share/ocsinventory-reports/ocsreports/

Nu valt hier verder nog weinig te zien, doordat de server nog geen gegevens krijgt. Laten we daarom agents aan het werk zetten.

Agents

Installeer het pakket ocsinventory-agent. Dat vind je wel in de officiële repository. Standaard slaat de agent de informatie op in de map /var/lib/ocsinventory-agent/. Dat is een bestand met de extensie ocs, die je met de webinterface importeert via Manage -> Local import.

Handiger is het natuurlijk als de agent de informatie direct naar de server stuurt. Dat regel je in het configuratiebestand ocsinventory-agent.cfg in de directory /etc/ocsinventory. Zet een hekje (#) voor local. Haal het hekje juist weg bij server en verander de tekst erachter in het IP-adres of hostnaam van de OCS Inventory server. Staat de agent op dezelfde machine als de server, dan volstaat localhost.

De agent stuurt niet vanzelf data naar de server. Daarvoor is nog een aanpassing nodig in het bestand /etc/sysconfig/ocsinventory-agent. Verander daar bij OCSMODE[0] de string none in cron. Wellicht vermoed je nu dat de agent niet continu, maar periodiek draait. Dat gebeurt inderdaad via systemd timers, vergelijkbaar met cron jobs. Daarvan zijn er drie: per uur, per dag of na het booten. Om bijvoorbeeld een dagelijkse inventaris op te maken activeer je de betreffende timer als volgt:

sudo systemctl enable --now ocsinventory-agent-daily.timer

De andere timers heten ocsinventory-agent-hourly.timer en ocsinventory-agent-onboot.timer. Deze timers doen niets anders dan het aanroepen van de systemd service ocsinventory-agent. Om nu niet te hoeven wachten op het draaien van de timer start je deze service handmatig op:

sudo systemctl start ocsinventory-agent

Daarop verzamelt de agent allerlei gegevens van de computer en stuurt die naar de server. Vervolgens gaat de agent slapen, totdat de timer hem weer wekt.

Dashboard

Inventaris

Ga naar het dashboard en ververs de webpagina. Vaak doe je dat met Ctrl+R of F5. Nu verschijnt je eerste inventaris (zie bovenstaande afbeelding). Voor een overzichtslijst van pc’s ga je naar All computers. Klik in de kolom Computer op de hostnaam voor informatie over onder andere het besturingssysteem en de netwerkconfiguratie.

Nog veel meer details vind je via het menu links. Klik daar maar eens op Hardware. Je krijgt dan een uitvoerige lijst met niet alleen gegevens over de processor, geheugen of videokaart, maar ook over PCI-uitbreidingssloten en USB-poorten (onderstaande afbeelding). Voor randapparatuur, zoals je monitor en muis, moet je bij Devices zijn. Heb je virtuele machines draaien, ga dan naar Miscellaneous. Je krijgt dan informatie vanuit het perspectief van de hypervisor, zoals de hoeveelheid toegekend geheugen. Voor uitgebreidere informatie installeer je een agent op de virtuele machine zelf.

Hardware inventaris

Mobiele agent

Voor het inventariseren van mobiele apparatuur levert OCS Inventory een app. Die is alleen beschikbaar voor het Android besturingssysteem. Installeer OCS Inventory Agent vanuit de Google Play Store en open de app. Om de inventaris van je mobiel te bekijken klik je op SHOW INVENTORY. Je krijgt dan een menu vergelijkbaar met dat van zojuist hierboven. Zo vind je ook hier de optie HARDWARE met informatie over onder andere de processor en het geheugen.

Om deze gegevens naar de server te sturen ga je terug naar het startscherm van de app. Tik helemaal rechtsboven op het icoontje met de drie puntjes en kies Configuration. Geef beneden bij Server URL als adres http://<ipadres_van_je_webserver>/ocsinventory. Zet nu wifi aan en tik in het startscherm van de app op SEND INVENTORY. Ga vervolgens naar het dashboard om het resultaat te bekijken. Om dit automatisch periodiek te laten verlopen ga je in de app naar het configuratiemenu. Bepaal onder het kopje Automatic de gewenste frequentie.

Zonder agent

Tot slot gaan we met SNMP aan de slag. In dit voorbeeld betreft het een printer met IP-adres 192.168.0.11. De agent draait op een PC met adres 192.168.0.1. Installeer op deze machine het ontbrekende pakket perl-Net-Ping.

Voor SNMP verlangt de agent een met SSL beveiligde verbinding naar de server. Zorg dus dat Apache HTTPS ondersteunt. De configuratie daarvoor valt echter buiten het bestek van dit artikel. Pas daarnaast voor de agent in /etc/ocsinventory het bestand ocsinventory-agent.cfg aan. Verander daar de string achter server door de volledige URL:

https://<ipadres_van_je_webserver>/ocsinventory

Voeg tevens de volgende regel toe:

ssl=0

Dit schakelt niet SSL uit, maar voorkomt controle op de geldigheid van het certificaat van je webserver.

Activeer SNMP in de webinterface via Configuration -> General configuration. Kies links in het menu SNMP en zet de optie SNMP op ON. Ga dan naar All computers en selecteer de pc met IP-adres 192.168.0.1. Ga links in het menu naar Configuration en druk op de groene knop Edit. Klik vervolgens boven op Network scans en geef onderaan bij SNMP_NETWORK het te scannen netwerk op. In dit geval is dat 192.168.0.0/24. Druk op de groene knop Update.

Normaal gesproken ondersteunen apparaten versie 2c van SNMP. Die gebruikt een wachtwoord om informatie te mogen opvragen. In de praktijk is dat de facto public. Dat regel je via Networks -> Administer. Kies links in het menu Manage SNMP communities en klik rechts op Add. Vul achter Name public in en selecteer 2c bij Version of SNMP communities. Klik op OK. Na het triggeren door de timer verschijnt de printer bij Networks -> SNMP. Gebeurt niks, controleer dan of de firewall UDP poort 161 tegenhoudt.

Inktcartridge informatie dankzij SNMP
Share
April 2024
May 2024
No event found!

Related Topics