Jul.30

Systeem- en softwaremonitoring met Visio 2007- 3 van 4 – De monitoring software

In de voorgaande post heb ik proberen uit te leggen hoe data kan worden gekoppeld aan Visio diagrammen. Om dat te kunnen doen is het natuurlijk van belang zinnige monitoringgegevens te hebben. In deze post wil ik uitleggen hoe je met behulp van ActiveXperts Networkmonitor (nee, ik heb geen aandelen) gegevens kunt verzamelen in een MS SQL-Server database en hoe je deze kunt gebruiken voor de Visiodiagrammen. Het is zoals ik in de eerste post in de reeks al aangaf ook mogelijk om zelf een tool te maken om meetgegevens op te slaan of een andere tool te gebruiken.

Ik ga er vanuit dat je ActiveXperts Networkmonitor is geinstalleerd en dat je een aantal checks (ping, cpu, disk space etc.. hebt geconfigureerd.

Open ActiveXperts Networkmonitor en zorg dat er via het “Tools”-menu > Options > Logging Tab een SQL Server database is ingesteld. Meer informatie daarover is hier te vinden. Zet vervolgens de logging aan en selecteer “Log all monitoring activities”. Dit betekent dat alle monitoring acties worden gelogd.


Omdat het aantal records dat wordt weggeschreven door het loggen van alle monitoring activiteiten flink kan oplopen is het aan te raden een job in te regelen die regelmatig de database schoont. De query zou er zo uit kunnen zien:

DELETE FROM Events WHERE TimeSecs <= (SELECT MAX(TimeSecs)-(60*60*2) FROM Events)

Om uiteindelijk tot meetgegevens te komen die binnen Visio gebruikt kunnen worden moet er een view binnen SQL Server worden aangemaakt. Deze ziet kan er zo uit zien:

SELECT
CurrentStatus.CheckID,
CurrentStatus.EventID,
Events_1.ID,
Events_1.TimeSecs,
Events_1.TimeString,
Events_1.CheckID AS Expr1,
Events_1.CheckName,
Events_1.CheckTypeID,
Events_1.ResultID,
Events_1.DataVal,
Events_1.Explanation,
dbo.Checks.ID AS Expr2,
dbo.Checks.Name,
CASE WHEN ISNUMERIC(Events_1.DataVal) =1 THEN CONVERT(FLOAT, Events_1.DataVal) ELSE 0 END AS DataValFloat
FROM (SELECT
CheckID,
MAX(ID) AS EventID
FROM dbo.Events WITH (NOLOCK)
GROUP BY CheckID) AS CurrentStatus
LEFT OUTER JOIN dbo.Events AS Events_1 WITH (NOLOCK) ON Events_1.ID = CurrentStatus.EventID
LEFT OUTER JOIN dbo.Checks WITH (NOLOCK) ON dbo.Checks.ID = CurrentStatus.CheckID

Bovenstaande query zorgt dat uit de logginggegevens de laatste status van elke check wordt opgehaald. Met deze resultaten kunnen Visiodiagrammen worden opgebouwd zoals beschreven in de vorige post. Er zit hier en daar wat conversies tussen die het makkelijk maken met de meetdata om te gaan. Probeer eens aan de hand van de voorgaande post gebruik te maken van deze data.

In de volgende post, de C# applicatie die data van Visiodiagrammen ververst en de diagrammen exporteert naar html (en .gif bestanden).

Jul.27

Systeem- en softwaremonitoring met Visio 2007 – 2 van 4

Dit is het vervolg op mijn vorige post over monitoren van systeem met behulp van Visio diagrams. In deze post zal ik uitleggen hoe data gekoppeld kan worden aan Visio shapes waardoor de visualisatie van de shape kan worden beinvloed.

Stap 1 – Data Downloaden
Download dit Excel bestand. Hierin bevinden zich voorbeeld meetgegevens. Aan de data worden niet veel bijzondere eisen gesteld behalve dat elke regel met een meetgegeven een unieke id bevat. De te downloaden meetgegevens bevatten per regel een Id, een meetwaarde, een status (0=OK, 1=Warning, 2=Error, 3=Niet meetbaar), een omschrijving en een timestamp

Stap 2 – Diagram aanmaken
Start Visio Professional 2007 en selecteer File > New > Network > Detailed Network Diagram (Metric). Je hebt nu een diagram met aan de linkerkant een keuze uit diverse networkshapes zoals servers etc…

Stap 3 – Excel data koppelen
We gaan nu de Excelsheet (het had ook SQL data kunnen zijn) koppelen aan het nieuwe diagram. Kies in het menu Data > Link Data To Shapes… Selecteer Microsoft Excel Workbook kies “Browse…” en selecteer het zojuist gedownloade excel sheet. Klik op “Next” en kies “Sheet1$”. Klik op 2x “Next” en vink “Id” aan als unique identifier kolom. Klik “Next” en dan “Finish”. Voila, data is gekoppeld aan het diagram.

Stap 4 – Fields gebruiken
Plaats nu linksboven de text “Systeemstatus” en zet de fontsize naar 20 en bold. Om er duidelijk te maken hoe recent de gegevens van het diagram zijn kunnen we datum naast deze kop plaatsen.

Zoals je misschien hebt gezien vind je onderin de Visio applicatie een lijst met records uit het Excel sheet. Mocht je die niet terug kunnen vinden selecteer dan in het View menu “External Data”.


Selecteer een van de records en sleep deze op de zojuist gecreeerde tekst. Je zult nu mogelijk naast de tekst een zogenaamd “Data Graphic” zien verschijnen


en aan de rechterkant zal onderstaand Data Graphic venster worden geopend. Zo niet kies dan in het Data menu “Display Data On Shapes”. Selecteer de tekst en klik in het Data Graphic-venster op “None”.


Nu gaan we de datum toevoegen. Zet de cursor achter de tekst “Systeemstatus “. Kies in het menu Insert > Field en dan als Category:Shape Data en Field Name: Timestamp.


We hebben nu fielddata gekoppeld.

Stap 5 – Shapes gebruiken
Selecteer nu uit de shapegroep bij “Netwerk and Pheripherals” de server shape. Sleep deze op het diagram. Sleep nu een het ping record van het Peregrijn system uit het external data venster op deze shape. We gaan nu een nieuw Data Graphic maken.

Klik linksboven op “New Data Graphic”


Klik in het nieuw geopende venster op New Item > Color By Value


Selecteer als Data Field “Status”. Op basis van de waardes van dit veld kan een kleur worden gegeven aan deze shape. Voeg 3 kleuren toe zoals in onderstaande screenshot te zien is.

Klik op OK en nogmaals in het andere venster op OK.

Klik daarna op “Yes” om aan te geven dat deze nieuwe Data Graphic moet worden toegepast op de geselecteerde shape.


Teken nu een rechthoek onder de zojuiste geplaatste shape.

Dubbelklik er op en vul de tekst “CPU” in.

Sleep het CPU Usage record van Peregrijn op deze rechthoek. De rechthoek zal nu automatisch dezelfde data graphic toegekend krijgen als de server shape.

Maak een kopie van de data graphic door op de datagraphic aan de rechterkant het menu open te klikken en “Duplicate” te selecteren.

Klik op de gedupliceerde data graphic om deze toe te kennen aan de rechthoek.

Klik in het menu (het pijltje aan de rechterkant) van de gedupliceerde data graphic op “Edit Data Graphic…”. Klik op New Item > Data Bar.

Selecteer als “Data Field”: “Value”.

Selecteer als “Callout”: “Speedometer”.

Zet “Label Position” en “Value Position” op “Not Shown”. Klik op OK.


Dubbelklik op de tekst van de rechthoek en zet de cursor achter “CPU “.

Kies in het menu Insert > Field en dan Category Shape Data en Field Name “Value”.

Druk op OK en voeg een procent teken toe.

We zijn klaar. Onderstaand het resultaat.


Niets houd je nu meer tegen om een fantastisch diagram in elkaar te knutselen. Je kunt elke willekeurige shape en tekst gebruiken om bovengenoemde acties op toe te passen.

Volgende post zal ik uitleggen hoe ActiveXperts Networkmonitor kan worden ingeregeld om de meetdata toegankelijk te maken voor een Visiodiagram als dit.

Jul.23

Systeem- en softwaremonitoring met Visio 2007- 1 van 4

De utopie van elke systeembeheerder, een videowall met een overzicht van alle systemen. Uitgebreide informatie over de status van deze systemen bijv pingtijden, schijfruimte, bandbreedte, systemperformance, geheugengebruik etc… Kortom, in zijn wildste droom zou het eerste diagrammetje er zo uit kunnen zien:Systeem monitoring Visio diagram.

Dat ziet er leuk uit, toch? Bovendien is dit ontzettend functioneel, in een oogopslag is te zien hoe het er met de systemen en verbindingen voorstaat. Leuke bijkomstigheid is dat je er nog indruk mee kunt maken ook! Ingewikkeld? Tja, het is wel wat werk maar nee, je moet alleen weten hoe je dit voor elkaar kunt krijgen en dat ga ik proberen uit te leggen in deze en de komende 3 posts. Voor ik deze oplossing vond ben ik minstens een jaar op zoek geweest en die tijd kan jij nu besparen!

Wat heb je nodig?

  • Microsoft Visio Professional 2007
  • Database met monitoringgegevens.
  • Kleine C# applicatie voor het bijwerken van de diagrammen naar de meest recente monitorgegevens.

Microsoft Visio Professional
Met behulp van Visio Professional 2007 kunnen de benodigde diagrammen worden gemaakt. De ‘Professional’ variant van deze software bevat de mogelijkheid data te koppelen aan shapes en data.

Database met monitoringgegevens
Deze database bevat data met monitoringgegevens die worden verzameld door een daarvoor geschikte tool. Een voorbeeld van een goede monitoringtool is ActiveXperts Networkmonitor. Deze heeft de mogelijkheid meetgegevens zoals pingtijden, schijfruimte, systemperformance, bandwidthusage weg te schrijven naar een SQL Server of MS Access Database. Je kunt natuurlijk ook zelf een applicatiemaken die dit soort gegevens verzamelt en in een database wegschrijft.

Kleine C# applicatie
Een kleine C# applicatie die zorgdraagt voor het verversen van de monitoringdata in de Visiodiagrammen en de export naar html.

  • In de volgende post zal ik uitleggen hoe de koppeling van data aan Visio shapes gedaan kan worden.
  • In de 3e post zal ik uitleggen hoe met ActiveXperts Networkmonitor data kan worden gekoppeld aan Visiodiagrammen.
  • In de 4e post zal ik uitleggen hoe het verversen van de Visiodiagrammen op basis van de meest recente verzamelde data kan worden uitgevoerd.