NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

0. Introduzione

Non ho trovato alcun articolo su NetXMS su Habr, nonostante abbia cercato a lungo. Solo per questa ragione ho deciso di scrivere questa opera, per dare attenzione a questo sistema.

È sia un tutorial che un manuale, e una panoramica superficiale delle funzionalità del sistema.

Questo articolo contiene un'analisi superficiale e una descrizione delle capacità del sistema. Non mi sono addentrato a fondo nelle sue funzionalità per vari motivi. Inoltre, descrivere tutte le caratteristiche richiederebbe più di un articolo.

Poiché ho lavorato principalmente con Zabbix, menzionerò spesso questo sistema per confrontarlo con il soggetto in questione. Inoltre, sembra che tutto venga confrontato con qualcosa di universalmente riconosciuto.

1. Cosa e perché?

Un sistema di monitoraggio, come si evince dalla definizione, è un sistema che consente di avere informazioni attuali su un nodo della rete, macchina, router o ciò che si desidera.

Perché è necessario — è altrettanto evidente. Per rimanere aggiornati su ciò che accade.

Spesso, un sistema di monitoraggio può fornire informazioni molto dettagliate sullo stato dell'infrastruttura nel suo insieme e su parti specifiche. Inoltre, se si impostano avvisi (senza di cui qualsiasi monitoraggio perde di valore), otteniamo uno strumento potente che consente non solo di reagire tempestivamente a situazioni di emergenza già verificatesi, ma che nella maggior parte dei casi offre anche la possibilità di prevenire tali emergenze.

2. Perché NetXMS?

Un po' di off-topic per coloro che amano le lunghe letture.Quando ero giovane e inesperto… Così di solito iniziano tutte le favole, giusto? In ogni caso, quando ero un massimalista, ho studiato la questione del monitoraggio dell'infrastruttura, e il risultato di quelle "ricerche" è stata la conclusione che non c'era niente di meglio di Zabbix. E in quel momento mi è piaciuto davvero, perché può fare molte cose, ha molte funzionalità, e il suo funzionamento può essere ampliato con script personalizzati, quindi si potrebbe dire che può fare praticamente tutto, se si hanno le giuste capacità. Ma Zabbix è uno strumento piuttosto complesso. Per riuscire a comprendere almeno le basi, mi ci sono volute quasi due settimane. E questa è solo la fase di implementazione. Poi ci sono volute altre settimane per configurare il monitoraggio di tutto ciò che mi serviva allora. E come monitorare lo stato delle porte sui router, ho letto e riletto, mi sono spaventato e ho deciso che non ne avevo poi così tanto bisogno… No, davvero, è spaventoso per una mente non preparata subito dopo l'università…

E così, dopo alcuni anni, cresciuto e maturo, ho deciso che era tempo di rinfrescare le mie conoscenze sui sistemi di monitoraggio. Finalmente, ho voluto implementare un monitoraggio di rete adeguato e stabile, poiché questa problematica è diventata rilevante a causa della crescita dei segmenti, della connessione della filiale e di altre piccole cose. Tutto fluisce, tutto cambia. Così ho iniziato a testare vari strumenti. Installavo un sistema, lo provavo, poi passavo a un altro. E ovunque c'era qualcosa che mancava, qualcosa che non mi soddisfaceva. A volte l'interfaccia era scomoda, altre volte la configurazione era una tortura, o ancora ci mancava qualcos'altro. E qui mi è capitato NetXMS. A proposito: dove con Zabbix ho impiegato due settimane, con NetXMS tutto è decollato in poche ore. Forse ha influito l'esperienza con Zabbix, o forse è tutto merito di NetXMS... è difficile dirlo.

NetXMS si è rivelato un sistema piuttosto semplice da installare e configurare. Ha versioni del server e della console di amministrazione sia per Windows che per Linux, grafici integrati e un 'browser' incorporato che consente di connettersi agli stessi router tramite protocollo httphttps dalla console di amministrazione. L'interfaccia è intuitiva e dispone anche di un agente per ogni sistema operativo. Insomma, questo sistema si è rivelato semplice e comodo. A prima vista.

La documentazione, a proposito, è valutabile 8 su 10. Le informazioni fondamentali sono incluse, ma per approfondire le sottigliezze è necessario dedicarci un po' di tempo.

Principali vantaggi segnalati dallo sviluppatoreMonitoraggio approfondito della rete
Rilevamento automatico, visualizzazione e ricerca dei componenti connessi a livello 2 e 3
Robusta compatibilità con SNMPv3
Rilevamento attivo tramite 'sonde' di scansione
Rilevamento passivo basato su informazioni provenienti dai dispositivi monitorati — ARP e tabelle di routing, interfacce
Monitoraggio delle applicazioni e dei server
Tutte le metriche principali che ci si aspetta: CPU, filesystem, input/output, memoria, traffico
Bridge JMX per il monitoraggio di applicazioni Java
Estensioni per applicazioni specifiche: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo e molte altre
API di integrazione per le proprie applicazioni
Destinato a grandi reti
Un server può monitorare centinaia di metriche su migliaia di dispositivi
Supporto completo per il monitoring distribuito e la scalabilità orizzontale
Monitoring di sottoreti IP sovrapposte
Controllo accessi flessibile per operatori e clienti

3. Approfondiamo

Come installare il sistema — c'è un intero manuale per l'amministratore, disponibile su sito dello sviluppatore, e non c'è niente di complicato, quindi non mi fermerò qui. La parte più difficile nell'installazione è collegare il sistema al database… Qui la differenza sarà solo nella scelta del DBMS e del sistema operativo del server. Ho scelto Windows (passo dopo passo, inserire i dati, fatto) e MSSQL, dato che era già presente.

3.1. Attivare il riconoscimento automatico

Il riconoscimento automatico dei nodi di rete può essere attivato durante l'installazione. Se non è stato fatto per qualche motivo, può sempre essere attivato in «Configuration-Network Discovery» o cliccando sull'icona con lo stesso nome. Nella area di lavoro appariranno le proprietà di rilevamento. Bisogna attivarlo, passando alla modalità passiva o attiva, e definire altre proprietà, come le sottoreti da interrogare. Si possono anche applicare filtri, scegliendo tra quelli predefiniti nel sistema o scrivendo script personalizzati. A dirla tutta, non ho avuto bisogno dei filtri. Ma la configurazione sembra piuttosto amichevole e comprensibile.

Qui è possibile anche specificare la community SNMP predefinita e le relative credenziali (leggi autorizzazione).

3.2. Aggiunta di nodi

Con l'auto-rilevamento attivato, i nodi finali (PC, stampanti) saranno aggiunti e distribuiti automaticamente tra le sottoreti. Risulta un po' più complicato con l'hardware di rete attivo.

Iniziare è semplice: attivare SNMP sull'hardware di rete e configurare la community. Se nei dettagli di auto-rilevamento dei nodi di rete non è stata modificata la community SNMP predefinita, il sistema utilizzerà la community public, anche se questa impostazione può essere cambiata per ciascun nodo nelle proprietà del nodo aggiunto.

Per comodità, è possibile raggruppare i dispositivi in base a qualsiasi criterio desiderato; a tale scopo, si possono creare contenitori nell'albero della sezione Infrastructure Services e collegarvi nodi dalla Entrie Network.

Dopo aver attivato e configurato SNMP sui router e aggiunti alla lista dell'hardware monitorato, il sistema si collegherà automaticamente, interrogherà i dispositivi, identificherà di cosa si tratta, applicherà i modelli, inizierà a raccogliere dati e mostrerà il pannello frontale per ciascun router. Automaticamente. Di default. Quando ho configurato Zabbix, potevo solo sognare una cosa simile.

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

Ho aggiunto manualmente tutti i miei dispositivi di rete, poiché non sono stati rilevati per qualche motivo. Qui è tutto semplice. Creiamo un contenitore in Infrastructure Services con un nome a piacere (ad esempio, switches), e Clic destro-crea-nodo, specificare il nome visualizzato del nodo, il suo indirizzo IP e sarebbe meglio selezionare l'opzione «disattivare l'uso dell'agente NetXMS», poiché non può comunque essere installato sull'hardware di rete, e pacchetti aggiuntivi sono superflui.

Browser integrato. È sufficiente fare clic destro sul router desiderato e aprire l'interfaccia web del dispositivo. Mi sembra più comodo rispetto a dover ogni volta cercare il relativo IP nelle mie note. Anche se, va detto, il browser non è granché.

3.3. Creazione della mappa di rete

Prima di tutto, è necessario creare una mappa di rete come oggetto. Come al solito — nella sezione Mappa delle reti, tasto destro, creare, selezionare il tipo di mappa, impostare i parametri, e il sistema farà tutto da solo.

I tipi di mappe sono i seguenti:

  1. Personalizzata. Questa mappa è destinata a essere creata manualmente secondo le preferenze dell'utente.
  2. Topologia di livello 2. Questa mappa consente di realizzare automaticamente tutto per l'utente, basandosi sul livello 2 del modello OSI (essenzialmente, costruisce la mappa utilizzando gli indirizzi MAC dei dispositivi).
  3. Topologia IP, nota anche come Livello 3. È la stessa cosa di quanto visto con Livello 2, solo che la mappa viene costruita sulla base del livello 3 del modello OSI (indirizzi IP).

Quando si sceglie di creare manualmente la mappa, bisogna trascinare i nodi dall'albero sul livello della mappa, collegarli e così via. Una normale attività di disegno.

In due casi diversi è necessario selezionare un punto di partenza da cui il sistema inizierà a costruire la mappa. Ad esempio, il nodo di un router. Il sistema legge i dati sui dispositivi connessi e le porte a cui sono collegati, quindi legge i dati dal router successivo, li compara e così via. Dopo aver analizzato tutti i dispositivi, NetXMS disegnerà automaticamente le connessioni tra i dispositivi della rete indicando le porte a cui sono collegati. È anche possibile indicare che il sistema includa nella mappa anche i dispositivi finali (stampanti, PC, server) semplicemente facendo clic sull'apposita opzione nelle proprietà della mappa.Clic destro — proprietà — proprietà mappa. In questo punto è possibile anche impostare il 'raggio di rilevamento' se si desidera o se necessario.

Un piccolo consiglio. Attiva l'opzione Always fit layout to screen, in modo da non dover ogni volta scorrere lo spazio di lavoro e utilizzare lo zoom quando aggiorni la mappa della rete.

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

Con una topologia di rete distribuita, è possibile sovrapporre oggetti su una mappa geografica. Inoltre, si può utilizzare, ad esempio, una foto di un rack con l'attrezzatura nel server come sfondo, sovrapponendovi gli oggetti necessari. In questo modo è possibile determinare rapidamente lo stato di qualsiasi dispositivo nel rack. A mio avviso, è uno strumento estremamente utile al fine di trasmettere il lavoro a un successore o per spiegare la situazione a un collega appena arrivato. È chiaro, conveniente e ovvio.

3.4. Agenti

Gli agenti esistono sia per Windows che per Linux. Il principio di funzionamento è lo stesso degli agenti di Zabbix: si installa sulla macchina da cui raccogliere le metriche e invia i dati al server di monitoraggio. L'agente può essere installato sia prima che dopo l'aggiunta della nodalità nel sistema. Dopo che l'agente è apparso sulla nodalità, il sistema inizierà a ricevere dati da esso dopo un certo periodo, applicando il modello standard. È possibile aggiungere parametri monitorati sia per una singola nodalità che collegando uno o più modelli predefiniti. Si consiglia ovviamente di lavorare con i modelli, poiché questa configurazione è più flessibile.

La lista dei parametri monitorati per gli agenti è piuttosto ampia. È possibile visualizzare l'elenco completo su Wiki NetXMS

Non appena il sistema determina che un agente è in funzione su un nodo, allega immediatamente questo nodo a uno dei modelli predefiniti — Windows, Linux, HP-UX, Generic UNIX, AIX, a seconda del sistema operativo del nodo.

Modello standard per gli host Windows:

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

Per aggiungere un parametro di monitoraggio a un nodo specifico, fare clic su «Parametro di raccolta dati PKM«, poi su «PKM nell'area di lavoro — Nuovo parametro«, e selezionare il necessario dall'elenco. Qui è possibile anche configurare i trigger per il parametro monitorato.

È importante notare che gli agenti, proprio come in Zabbix, possono avviare script personalizzati.

Come installare?Questo è un argomento off-topic, poiché ognuno... ehm... come vuole.

La questione è se distribuire gli agenti solo sui server o su tutte le macchine della rete. Se si tratta di pochi server, la cosa più semplice è farlo manualmente. Se sono molti, si possono usare le politiche di dominio, KIX, PoSh, qualsiasi cosa. Gli agenti hanno la chiave /SILENT, che consente di "inserirli" in modo trasparente per l'utente (se parliamo di distribuzione su tutte le macchine della rete). Preferisco gli script, perché è possibile impostare una condizione e creare un flag, a differenza delle politiche che installeranno il programma ogni volta che si accende il PC. Dunque, scriviamo uno script del tipo "controlla la presenza del file flag, se non esiste – avvia l'installer con la chiave /SILENT e dopo l'installazione riuscita crea il file flag". Profitto.

3.5. Trigger

I trigger possono essere configurati per rispondere a determinati eventi nei dati raccolti. Ad esempio, il superamento di un certo valore di ping-pong verso il router. Si può anche impostare il modo di avvisare per ogni trigger (per alcuni basta un'icona nella console, mentre altri inviano avvisi ovunque possibile). La reazione all'evento è scelta tra quelle preimpostate in Action Configuration.

Per creare un trigger: accedere alla Configurazione della Raccolta Dati della node o del template, fare doppio clic sul parametro desiderato (se non è presente, prima è necessario crearlo), e nelle proprietà passare alla scheda Soglie, quindi fare clic sul pulsante aggiungi.

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

«Funzione» — quale o quali valori utilizzare per calcolare la condizione. Può assumere i seguenti valori (il numero di valori utilizzati per il controllo è indicato nel campo Campioni):
— Ultimo valore rilevato: ultimo/i valore/i ricevuto/i
— Valore medio: valore medio degli ultimi
— Deviazione media: deviazione media
— Differenza con il valore precedente: differenza con il valore precedente
— Errore nella raccolta dati: errore nel ricevimento dei dati
— Somma dei valori: somma dei valori
— Script: valore ottenuto dall'esecuzione di uno script personalizzato

«Operazione» — condizione di attivazione del trigger. Può assumere i seguenti valori (il valore è indicato nel campo corrispondente Valore):
— <: minore di: meno di
— <=: minore o uguale a: meno o uguale
— == uguale a: equivalente
— >=: maggiore o uguale a: maggiore o uguale
— >: maggiore di: maggiore di
— !=: non uguale a: non equivalente
— come: approssimativamente uguale a
— non come: non approssimativamente uguale a
Non sono sicuro di come funzionino gli ultimi due parametri. Pertanto, non farò nemmeno ipotesi sui limiti che possono essere integrati.

Insomma, tutto è come in Zabbix, solo che non è necessario digitare manualmente le formule, temendo di commettere errori o refusi. Per il ripristino del trigger (evento di disattivazione), il sistema inserisce automaticamente il valore. (In Zabbix devi di nuovo digitare senza fare errori di battitura).

3.6. Modelli

Clic destro - crea modello, inserisci il nome del modello. Clic destro - Configurazione della raccolta dati.

Un po' di teoriaLe informazioni raccolte possono provenire da diverse fonti. Queste possono essere l'agente NetXMS, che opera sulla macchina, può essere un «richiesta semplice» o «Interno», inviata dal server stesso (ad esempio, lo stesso ping), «SNMP«, «checkpoint SNMP«, «Push«, «Contatori delle prestazioni di Windows«, «SM-CLP», oppure una «scriptpersonalizzata». Per ogni tipo di informazione, è possibile scegliere il tipo che il sistema si aspetterà al ricevimento. Ad esempio, il ping restituirà un valore intero (integer), la quantità di spazio libero su disco in byte sarà anch'essa un intero, mentre la temperatura sarà già un valore reale, quindi real).

Per raccogliere informazioni tramite SNMP in NetXMS esiste un enorme elenco di parametri predefiniti, il che significa che non è necessario inserire un OID specifico, ma è possibile trovarlo nell'albero MIB, il che è davvero abbastanza problematico… Tuttavia, alla fine è necessario consultare la documentazione del produttore e cercare i valori IOD per ciascun dispositivo singolarmente. Si può perdere molto tempo nella configurazione della lettura delle informazioni dai dispositivi, incontrando il messaggio del sistema. «UNSUPPORTED», e alla fine risulterà che questo specifico dispositivo semplicemente non è in grado di fornire le informazioni richieste. Qui non resta che studiare i manuali e sperare.

Ad esempio, per raccogliere informazioni sul tempo di risposta del nodi (ping), è necessario aggiungere un nuovo parametro (Clic destro - nuovo parametro), nel campo Origin selezionare Internal, premere il pulsante Seleziona e scegliere Ping Time. C'è anche una funzione di ricerca, che in Zabbix avrei solo sognato. Ha anche senso modificare il periodo di interrogazione del nodo (di default è impostato a 60 secondi, quindi se il router smette di rispondere subito dopo essere stato interrogato dal sistema di monitoraggio, passerà quasi un'intera minuto prima che il sistema capisca che c'è qualcosa che non va e attivi l'allerta).

Elenco dei dati interni che possono essere elaborati:

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

Dopo aver aggiunto tutte le impostazioni necessarie al modello, è necessario fare clic su tasto destro - applica e selezionare tutti i nodi ai quali questo modello deve essere applicato (ctrl+clic sinistro). E tutto. Dopo questo, nel albero sotto il modello apparirà un ramo, che, una volta aperto, mostrerà tutti i nodi a cui è stato applicato questo modello.

Quando si scollega un nodo dal modello, i dati raccolti continuano a essere raccolti; per annullarne la raccolta, è necessario accedere alla Configurazione della Raccolta Dati per ogni nodo e rimuovere tutto manualmente, oppure prima eliminare i parametri dal modello e solo dopo rimuovere i nodi. Non so perché sia fatto in questo modo, ma, secondo me, è una cosa molto strana. Ma... È così che è.

Nel modello è possibile selezionare i dati da raccogliere e copiarli in un altro modello. In massa. E non è necessario copiare e incollare manualmente da un modello all'altro... Comincio già a odiare Zabbix..

3.7. Cruscotti

Stranamente, il Wiki di NetXMS contiene solo un link a youtube riguardo a questo: Creare un Cruscotto, non c'è nemmeno un elenco e una descrizione degli elementi che possono essere aggiunti al Cruscotto. In linea di massima, è tutto piuttosto intuitivo. Etichetta — è semplicemente... beh... è un'Etichetta... Non so nemmeno come tradurlo. Insomma, un campo con una dicitura, usato per identificare e delimitare gli elementi, dato che gli elementi stessi dei nomi non contengono. Grafico a Linee — è un grafico lineare. Grafico a Barre — è un diagramma. Visualizzatore Alarm — è un elenco di avvisi per il nodo/i selezionato/i. Insomma, i nomi parlano da soli.

Successivamente, è necessario aprire le proprietà del dashboard e configurare le visualizzazioni. Ci interessa la scheda Elementi del Dashboard. Numero di colonne — è il numero di colonne, di elementi, che saranno disposti in orizzontale. Ogni oggetto ha le proprie proprietà, e consiglio di deselezionare l'opzione Layout-Prendi spazio verticale eccessivo, per ridurre al minimo la dimensione di ogni elemento.

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

3.8. Configurazione Azioni

(Configurazione-Azioni di Configurazione)
Fondamentalmente, sono azioni in risposta all'attivazione dei trigger.

NetXMS come sistema di monitoraggio per chi è pigro… e qualche confronto con Zabbix

NetXMS può inviare e-mail, sms, messaggi xmpp, in risposta all'attivazione di un trigger. È tutto piuttosto semplice: basta compilare i campi necessari.

È anche possibile:

— Inviare una notifica a un altro server NetXMS
— Eseguire un comando sul server di amministrazione NetXMS
— Eseguire un comando sul nodo utilizzando l'agente NetXMS
— Eseguire uno script NXSL (NSXL è un linguaggio di programmazione) scripting per NetXMS)

Dopo aver creato l'azione, è possibile impostare il tempo di ritardo nell'esecuzione e applicare una macro per l'esecuzione. Il tempo di ritardo è necessario per non disturbare l'operatore nel caso in cui il problema si risolva da solo (ad esempio, il tempo di risposta a un ping era maggiore del valore impostato, ma al successivo controllo potrebbe tornare nella norma, quindi perché disturbare per questioni così banali?).

3.9. Suddivisione dei diritti di accesso

Per ogni oggetto è possibile impostare i propri diritti di accesso. Per ogni oggetto all'interno di un altro oggetto è possibile anche impostare diritti di accesso. Questo consente di distribuire in modo molto flessibile responsabilità e possibilità di monitoraggio per diversi gruppi di utenti. Questo è tutto ciò che avevo da dire.

4. Conclusione

Vorrei smentire il titolo del mio stesso articolo. NetXMS non è per chi è pigro. I programmatori non hanno messo l'accento sulla funzionalità, come fanno altri, ma, oltre a tutto, si sono occupati anche dell'interfaccia.

Facciamo così. Ho usato Zabbix e NetXMS. Pertanto, scriverò semplicemente le mie impressioni su questi due sistemi.

Quindi.

NetXMS mi sembra un sistema estremamente amichevole per l'utente. Beh... per l'amministratore... sì, per l'amministratore. Ha quello che si chiama un'interfaccia intuitiva, ed è davvero ottima. Non è necessario scrivere formule, né leggere una montagna di documentazione per attivare il controllo dei ping sullo switch o altre cose semplici. Tuttavia, in Zabbix, la stessa operazione semplice non è molto diversa da qualcosa di realmente complesso; se hai padroneggiato questa, riuscirai a gestire anche le altre. In NetXMS ci sono suggerimenti, la maggior parte delle opzioni può essere trovata nell'interfaccia, selezionata con il mouse e configurata. In Zabbix, devi scoprire se il sistema può fare questo o quello, e se sì, come si scrive e quali parametri restituisce. Zabbix vince nella comunità e nelle tonnellate di modelli disponibili per ogni evenienza... se in quel mare di spazzatura riesci a trovare ciò che ti serve... D'altro canto, anche NetXMS ha molti fan e aggiunte create per questo sistema. Inoltre, il sistema stesso è in grado di monitorare le applicazioni più popolari di default, come indicato sulla pagina principale del progetto.

Il principale vantaggio di NetXMS rispetto a Zabbix, per me, è la possibilità di eseguire uno script su un nodo problematico in risposta all'attivazione di un trigger. Se la temperatura della CPU supera la soglia, spegnerà automaticamente l'host. Dopo, ci occuperemo di capire qual è il problema. Forse anche in Zabbix esiste questa possibilità, ma io non sono riuscito a trovarla. Così come nel monitoraggio delle porte sui router. Qui invece è automatico... Beh, è semplice… basta imparare il linguaggio di scripting e il gioco è fatto...

I diritti di accesso in NetXMS consentono di delimitare in modo molto flessibile le possibilità dei diversi utenti del sistema. Ma per configurare tutto questo bisogna davvero lavorare.

In generale, i sistemi sono piuttosto simili e le loro funzionalità sembrano almeno comparabili a prima vista. Anche se si sente che Zabbix può fare di più, ma queste capacità sono nascoste profondamente sotto il cofano e per un semplice admin mortale sono inaccessibili. NetXMS invece appare semplice e chiaro, amichevole e piacevole.

Zabbix ha una documentazione eccellente, wiki, guide pratiche, F.A.Q., best practice, oltre a vari forum, ecc., dove è possibile trovare risposte a praticamente tutte le domande. E se non c'è, si può sempre fare la propria.

In sintesi, vorrei raccomandare NetXMS per chi è alle prime armi o per chi non ha bisogno di un monitoraggio dettagliato di tutto. Sono certo che approfondendo le funzionalità, si possano ottenere osservazioni molto dettagliate.

Tuttavia, il principale vantaggio che vedo è un'interfaccia molto piacevole e una facilità di configurazione.

5. Materiali utilizzati

canale YouTube Tomas Kirnak
Wiki di NetXMS
Ricerca Google

Fonte: habr.com

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster