Vodič za Grafana usmjeravanje upozorenja

Node.js

Konfiguriranje dvojnih e-mail upozorenja u Grafani

Upravljanje konfiguracijama upozorenja u Grafani često može zahtijevati fino podešavanje, posebno kada različiti uvjeti zahtijevaju obavijesti za odvojene kontaktne točke. Trenutačno je sustav za uzbunjivanje postavljen za jedinstveno postupanje sa svim situacijama obavještavanjem jedne kontaktne točke, bez obzira na specifično stanje uzbune.

Sada je izazov poboljšati ovu postavku usmjeravanjem upozorenja na dvije različite adrese e-pošte na temelju prirode okidača upozorenja—pogreške nasuprot podudarnim uvjetima. Ova će prilagodba pomoći u ciljanoj komunikaciji i osigurati da pravi tim učinkovito rješava specifične probleme.

Naredba Opis
require('nodemailer') Učitava modul Nodemailer koji se koristi za slanje e-pošte iz Node.js.
require('express') Učitava okvir Express za rukovanje funkcijama web poslužitelja u Node.js.
express.json() Middleware u Expressu za raščlanjivanje dolaznih JSON sadržaja.
createTransport() Stvara višekratni prijenosni objekt koristeći zadani SMTP prijenos.
sendMail() Šalje e-poštu pomoću objekta transportera.
app.post() Definira rutu i veže je za određenu funkciju koja se izvršava kada rutu pokrene POST zahtjev.
app.listen() Počinje prihvaćati veze na navedenom priključku.
fetch() Izvorna funkcija preglednika koja se koristi za izradu web zahtjeva i rukovanje odgovorima.
setInterval() Zakazuje opetovano izvršavanje funkcije u zadanim intervalima.

Objašnjavanje Grafana skripti upozorenja

Isporučene skripte služe kao pozadinsko i sučelje rješenje za upravljanje Grafana upozorenjima s različitim kontaktnim točkama na temelju stanja upozorenja. Pozadinska skripta koristi Node.js s okvirom Express i modulom Nodemailer. Ova postavka omogućuje stvaranje web poslužitelja koji osluškuje POST zahtjeve na određenom priključku. Kada se u Grafani aktivira upozorenje, ona šalje podatke ovom poslužitelju. Poslužitelj zatim analizira prirodu upozorenja - je li zbog pogreške ili uvjeta podudaranja - i usmjerava e-poštu na odgovarajuću kontaktnu točku pomoću Nodemailera.

Prednja skripta dizajnirana je za dinamički prikaz statusa upozorenja na web stranici pomoću običnog HTML-a i JavaScripta. Povremeno dohvaća status upozorenja iz pozadine i u skladu s tim ažurira web stranicu. Ovo je osobito korisno za praćenje u stvarnom vremenu u okruženjima u kojima različiti timovi moraju biti brzo obaviješteni o određenim vrstama upozorenja. Upotreba 'fetch()' za izradu web zahtjeva i 'setInterval()' za postavljanje stope osvježavanja osigurava da nadzorna ploča ostane ažurna bez ručne intervencije.

Dinamičko usmjeravanje e-pošte u Grafana upozorenjima

Node.js s Nodemailerom i Grafana Webhookom

const nodemailer = require('nodemailer');
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your-email@gmail.com',
    pass: 'your-password'
  }
});
app.post('/alert', (req, res) => {
  const { alertState, ruleId } = req.body;
  let mailOptions = {
    from: 'your-email@gmail.com',
    to: '',
    subject: 'Grafana Alert Notification',
    text: `Alert Details: ${JSON.stringify(req.body)}`
  };
  if (alertState === 'error') {
    mailOptions.to = 'contact-point1@example.com';
  } else if (alertState === 'ok') {
    mailOptions.to = 'contact-point2@example.com';
  }
  transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      console.log('Error sending email', error);
      res.status(500).send('Email send failed');
    } else {
      console.log('Email sent:', info.response);
      res.send('Email sent successfully');
    }
  });
});
app.listen(port, () => console.log(`Server running on port ${port}`));

Vizualizacija sučelja za status upozorenja Grafana

JavaScript s HTML-om

<html>
<head>
<title>Grafana Alert Dashboard</title>
</head>
<body>
<div id="alertStatus"></div>
<script>
const fetchData = async () => {
  const response = await fetch('/alert/status');
  const data = await response.json();
  document.getElementById('alertStatus').innerHTML = `Current Alert Status: ${data.status}`;
};
fetchData();
setInterval(fetchData, 10000); // Update every 10 seconds
</script>
</body>
</html>

Napredno upravljanje uzbunama u Grafani

U naprednim Grafana konfiguracijama, upravljanje upozorenjima na temelju više uvjeta i slanje obavijesti različitim krajnjim točkama može značajno poboljšati operativnu učinkovitost. Korištenjem Grafaninog fleksibilnog okvira upozorenja, korisnici mogu postaviti složena pravila koja različito reagiraju ovisno o određenim obrascima podataka ili stanjima sustava. Ova fleksibilnost je ključna za sustave koji zahtijevaju različite razine ozbiljnosti odgovora ili odjele koji trebaju specifične informacije. Grafana omogućuje kreiranje višestrukih kanala obavijesti, koji se mogu usmjeriti na različite e-mail adrese ili druge sustave obavijesti kao što su Slack, PagerDuty ili SMS.

Postavljanje takvih konfiguracija uključuje definiranje uvjeta upozorenja unutar Grafane i korištenje vanjskih skripti ili Grafana API-ja za poboljšanje funkcionalnosti. Na primjer, integracijom Grafane s rješenjima za skriptiranje kao što je Node.js, kao što je prikazano, korisnici mogu programirati prilagođenu logiku za rukovanje različitim stanjima upozorenja. Ova metoda pruža nijansiraniji pristup upravljanju upozorenjima, osiguravajući da pravi ljudi dobiju prave informacije u pravo vrijeme, potencijalno prije nego što problem eskalira.

  1. Kako mogu kreirati upozorenje u Grafani?
  2. Upozorenja možete kreirati izravno s nadzorne ploče Grafana tako da odaberete ploču na kojoj želite upozoriti, zatim kliknete na karticu "Upozorenje" i postavite uvjete koji bi trebali pokrenuti upozorenje.
  3. Može li Grafana slati upozorenja većem broju primatelja?
  4. Da, Grafana može slati upozorenja većem broju primatelja konfiguriranjem više kanala obavijesti i njihovim povezivanjem s vašim pravilima upozorenja.
  5. Je li moguće prilagoditi Grafana upozorenja na temelju ozbiljnosti?
  6. Da, možete prilagoditi upozorenja na temelju ozbiljnosti korištenjem različitih uvjeta unutar pravila upozorenja i njihovim usmjeravanjem na odgovarajuće kanale.
  7. Mogu li integrirati vanjske API-je s Grafanom za složenija upozorenja?
  8. Da, Grafana podržava integraciju s vanjskim API-jima, što omogućuje složenije mehanizme upozorenja i prilagođenu logiku obavijesti.
  9. Kako mogu osigurati da se Grafana upozorenja uvijek šalju, čak i tijekom prekida rada poslužitelja?
  10. Kako biste osigurali slanje upozorenja tijekom zastoja poslužitelja, razmislite o smještaju svoje Grafana instance i njezine baze podataka na poslužiteljima visoke dostupnosti ili upotrijebite Grafana Cloud, koji nudi robusna jamstva neprekidnog rada.

Mogućnost prilagodbe obavijesti o upozorenjima u Grafani različitim primateljima na temelju stanja upozorenja nudi značajne prednosti za nadzor sustava i odgovor na incidente. Upotrebom skriptiranja u Node.js i integracijom Grafaninih fleksibilnih mogućnosti upozorenja, administratori mogu osigurati da se kritične informacije odmah proslijede odgovarajućim dionicima, čime se poboljšava operativna učinkovitost i odziv.