Solarwinds - Opstelling certificate monitor - Expiration alert to FreshDesk
Wat is het doel?
Deze actie is op aanvraag van ticket Ticket SR-11501.
Servers op het hosted platform maken gebruik van interne en externe certificaten. Externe certificaten worden via DigiCert aangekocht. In geval van dat 1 van deze certificaten gaat vervallen, zal DigiCert hier een mail voor sturen als herinnering. Dit gebeurt niet met interne certificaten en dus moest hier een Alert voor worden aangemaakt in SolarWinds. Deze setup guide gaat over de opstelling van dit Alert.
De naam van het aangemaakte SolarWinds Alert is: Conscia Internal Certificate Expiry Alert.
Verder is het ook de bedoeling dat deze Alert vanuit SolarWinds een melding stuurt naar FreshDesk zodat dit kan worden opgenomen en het certificaat in kwestie zo snel mogelijk kan worden vervangen.
Corrigeren Application Monitor:
Stap 1: In Solarwinds, ga naar Settings > All Settings > SAM Settings > Manage Templates > Zoek naar "Certificate Monitor".
Stap 2: Vink het vakje aan de linkerkant van "Certificate Monitor" aan.
Stap 3: Klik op "Edit" bovenaan.
Stap 4: Onderaan bij "Component Monitors", vink alle 3 de "Root Certificate", "AuthRoot Certificate" en "CA Certificate" aan.
Stap 5: Klik op "Assign Credentials".
Stap 6: Selecteer hier "None" en klik op "OK".
Stap 7: Klik op "Submit".
Notitie: Dit is een uitvoering die moest gebeuren als resultaat van een meeting met een Escalation Engineer van SolarWinds zelf. Origineel staat dit op "Inherit from node", maar om een onbekende reden werkt dat niet als behoren.
Let wel: indien al nodes werden toegevoegd aan deze Certificate Monitor zal deze aanpassing niet op deze nodes worden uitgevoerd, maar enkel op nodes die na deze uitvoering worden toegevoegd. Om dit ook te kunnen doortrekken naar reeds toegevoegde nodes is het aangeraden deze nodes ofwel van deze application monitor te verwijderen en er terug aan terug toe te voegen (snelste manier), ofwel manueel aan te passen.
Toevoegen nodes aan Application Monitor:
Stap 1: In SolarWinds, ga naar Settings > All Settings > SAM Settings > Manage Templates > Zoek naar "Certificate Monitor".
Stap 2: Vink het vakje aan de linkerkant van "Certificate Monitor" aan.
Stap 3: Klik op "Assign to Node" bovenaan.
Stap 4: Groepeer op "IsServer" voor de gemakkelijkheid.
Stap 5: Selecteer "True".
Stap 6: Klik op de groene pijl in het midden.
Stap 7: Klik op "Next".
Stap 8: Selecteer "Inherit credentials from template".
Stap 9: Klik op "Assign application monitors".
Stap 10: Klik op "Done".
Aanmaken Alert in SolarWinds & FreshDesk:
Stap 1: In SolarWinds, ga naar Settings > All Settings > Manage Alerts > Klik bovenaan op "+ Add New Alert".
Stap 2: Geef de Alert een naam en voeg een description toe.
Stap 3: Klik op "Next".
Stap 4: Vul de volgende pagina in zoals onderstaande foto:

Stap 5: Klik op "Next".
Stap 6: Laat op de volgende pagina alles op default staan en klik op "Next".
Stap 7: Een schedule is niet nodig, maar ik heb dit hier wel opgesteld tussen 7:00 en 8:00. Klik nadien weer op "Next".
Stap 8: Ga vervolgens in FreshDesk naar Admin (tandwieltje aan de zijkant) > Monitoring Tools.
Stap 9: Klik op "+ Add monitoring tool".
Stap 10: Klik op "Webhook".
Stap 11: Geef je webhook een naam en kopiëer "Endpoint URL" en "Auth header", deze zijn nodig in de volgende stap in SolarWinds.
Stap 12: Waar je was gebleven in SolarWinds, klik je op "Add Action".
Stap 13: Kies "Send a GET or POST Request to a Web Server".
Stap 14: Klik op "Configure Action".
Stap 15: Geef de actie een naam, dit gaat ook de naam zijn van je ticket dus maak het herkenbaar.
Stap 16: Onder "URL" plak je de tekst die je in FreshDesk van "Endpoint URL" hebt gekopiëerd.
Stap 17: Selecteer "Use HTTP/S POST".
Stap 18: Onder "Body to POST" plak je volgende code: (Zorg ervoor dat je deze ergens bij houdt, want deze moet identiek zijn in FreshDesk.)
{
"Action": "CreateTicket",
"SiteID": "${N=SwisEntity;M=Application.Node.CustomProperties.SiteID}",
"NodeName": "${NodeName}_${Node.IP_Address}",
"IPAddress": "${Node.IP_Address}",
"Klantnaam": "${Node.Klantnaam}",
"ExternalID": "${N=Alerting;M=AlertID}",
"CompanyCode": "${N=SwisEntity;M=Application.Node.CustomProperties.FreshServiceCompanyCode}",
"TriggeredAt": "${N=Generic;M=S}",
"AlertMessage": "${NodeName}: Internal Certificate about to expire - BronzeInfra",
"ContractType": "BronzeInfra",
"AlertDetailsURL": "${N=Alerting;M=AlertDetailsUrl}"
}
Stap 19: Zorg dat onder "ContentType" het volgende staat:
application/x-www-form-urlencoded
Stap 20: Kies onder "Authentication:" voor "Token".
Stap 21: Onder "Header Name" typ je "Authorization" en onder "Header Value" plak je wat je in FreshDesk hebt gekopiëerd van het "Auth header" vakje.
Stap 22: Klik op "Save Changes".
Stap 23: Ga terug naar FreshDesk en selecteer daar onder "Sample alert payload" het bolletje naast "Enter JSON payload manually".
Stap 24: Onder "Payload" plak je dezelfde JSON code die je onder "Body to POST" eerder in SolarWinds hebt geplakt.
Stap 25: Klik op "Save & Continue".
Stap 26: Vul nu alle velden in zoals de volgende screenshots: (Indien een value niet in de screenshots staat mag dit zoals de default blijven staan.)









Stap 27: Klik vervolgens op "Save".
Stap 28: Terug in SolarWinds kan je nu naast de Trigger die je eerder had aangemaakt op de bliksem klikken onder "Simulate". Er gaan normaalgezien 2 acties staan: 1 email en 1 webhook.
De email kan je gebruiken om te testen maar mag in principe verwijderd worden.
Stap 29: Selecteer "Group by: Application" en kies een willekeurig certificaat onder "Certificate Monitor".
Stap 30: Klik nu op "Execute" en als alles goed is gelopen zou nu een ticketje moeten aangemaakt zijn dat eruit zou zien als volgt:

Stap 31: Klik 2x op "Next" en vervolgens op "Submit".
Notitie: De volledige setup is nu compleet. SolarWinds zal nu een eerste waarschuwing sturen 60 dagen voor een intern certificaat zal vervallen op eender welke server en een tweede 50 dagen op voorhand.