11 dicembre 2020

Centos: la fine di un epoca

 CentOS, la distro di Linux che molti hanno usato per costruire i propri server, è agli sgoccioli, almeno nella forma in cui l'avevamo imparata a conoscere nell'ultima decina di anni.

Red Hat, l'azienda che dal 2014 sostiene l'iniziativa, e ha investito parecchio in quella che era a tutti gli effetti la versione gratuita di Red Had Enterprise Linux (RHEL), la versione aziendale e a pagamento, ha pubblicato una serie di annunci in cui spiega che il ruolo di Centos cambierà nel prossimo futuro.


 Invece di essere la versione Community e gratuita di RHEL, Centos diventerà il banco di prova per le modifiche a RHEL. In pratica una inversione di ruoli, con Centos nel ruolo di "beta" di RHEL, con il nome di "Centos Stream".

Per tutti quelli che la sceglievano per motivi di affidabilità e continuità, garantita dal "fratello maggiore", questo drastico cambio di rotta significa guardare altrove.

La mossa ha creato non poco scompiglio nella comunità degli estimatori, utilizzatori e contribuenti di questo sistema che una decina di anni fa era la versione di Linux più diffusa al mondo.

In particolare, il co-fondatore di Centos, Gregory Kurtzer, ha prontamente rilanciato la sfida, con un fork, dichiarando di voler avviare un nuovo progetto di Linux gratuito, che ha battezzato Rocky Linux, in onore di Rocky McGaugh, suo partner nell'avventura Centos.

Per voi che utilizzate CentOS 7, non c'è da preoccuparsi nell'immediato futuro: Red Hat ha dichiarato che non sono previste variazioni al calendario e la versione 7 verrà manutenuta ufficialmente almeno fino al 2024.

Fonti e riferimenti:

26 novembre 2020

Nagios e monitoraggio Windows

Un post veramente lungo, dedicato agli amministratori di rete. Da leggere solo in caso di bisogno!

Nagios è un complesso sistema di monitoraggio di risorse informatiche, cioè un programma che interroga o riceve messaggi sullo stato dei computer e dispositivi sulla rete e le aggrega in un unico posto.

La sola visualizzazione sarebbe utile, ma insufficiente. La vera forza dei sistemi di monitoraggio è quella di avvisare il responsabile di sistema di eventuali malfunzionamenti o stress dei dispositivi monitorati, cosa che normalmente avviene tramite email.

Chiaramente è meglio avere il sistema di monitoraggio su una macchina diversa da quelle che si vogliono controllare, perché, normalmente, non si guastano contemporaneamente. Inoltre sarà improbabile che il monitoraggio interferisca con altri processi produttivi, ma rimarrà un "osservatore esterno", distaccato e imparziale. 

Nagios è disponibile in versione a pagamento, denominata 'Nagios XI' e nella versione gratuita, 'Nagios Core', che è la versione di cui mi sto segnando alcuni appunti.

Premetto subito che, se installare Nagios Core non è complesso, questo non si può dire per la sua configurazione. Infatti, la semplicità di configurazione la potete avere in cambio della licenza della versione a pagamento.

Nagios è pensato per essere installato su Linux, ma, evidentemente, è attrezzato per dialogare via rete con svariati dispositivi, usando protocolli e linguaggi diversi.

Nel 2016 ...

Nel 2016 avevo installato Nagios Core su Centos7 per monitorare dei server Windows, utilizzando NSClient++, un 'agente' gratuito per Windows, che vorrebbe parlare con Nagios attraverso il protocollo NRPE (Nagios Remote Plugin Executor).   

Quattro anni dopo le cose sono abbastanza cambiate.

NSClient++ è ancora disponibile, ma l'ultima versione risale al 2018.

NRPE è sconsigliato o 'deprecated', e riceve solo aggiornamenti per la sicurezza. Nonostante questo troverete sul web diverse pagine recenti che vi guidano nell'installazione di NRPE e NSClient.

As of NRPE version 4.0.1, this project is deprecated.

Qual'è la strada attualmente consigliata per il monitoraggio di macchine Windows da Nagios Core?

Nel 2020

Dalle indicazioni di Nagios e dallo stato di sviluppo delle varie librerie su GitHub, ho capito che il sistema più aggiornato si chiama NCPA, o Nagios Cross-Platform Agent.

La documentazione Nagios è molto chiara:

NSClient++ is one of many agents that can be used to monitor Windows devices. [...] However, for ease of use and greater functionality, Nagios Enterprises recommends using a multi-platform agent called NCPA

Installando NCPA su Windows, Nagios ha due possibilità:

  1. interrogare direttamente le macchine in modalità 'attiva', 
  2. ricevere in maniera 'passiva', dei bollettini periodici, utilizzando il protocollo NRDP, o Nagios Remote Data Processor.

Vediamo un po' in dettaglio alcuni passaggi e collegamenti a pagine web con istruzioni o specifiche dettagliate.

Lato Nagios: installazione Nagios

E' tutto abbastanza regolare, la cosa importante è seguire una guida specifica per la salsa e revisone di Linux che avete scelto. Molti scelgono Centos o Debian, nel mio caso ho usato Ubuntu 18 LTS.
 
Vedi:
Dopo Nagios è necessario installare i suoi plugin.
Vedi:   

Lato Windows: installazione NCPA

Nulla di più semplice. Scaricate l'ultimo installer e seguite il 'wizard'. 
Segnatevi la chiave di sicurezza (il 'token') che avete scelto per far comunicare le due parti, dovrete usarla nella configurazione di Nagios.

Lato Nagios: installazione client/plugin NCPA

Dovrete aggiungere a Nagios il plugin o client, in python, per parlare in NCPA.  
Si chiama 'check_ncpa.py' e si scarica a parte.
 
Dopo l'installazione, verificate il funzionamento del plugin:
  1. portatevi nella cartella del plugin
  2. eseguite:
    ./check_ncpa.py -H <indirizzo server> -t <mytoken> -M 'system/agent_version' 
    Se funziona potete chiedere a NCPA l'elenco di tutte le voci che può inviare:
  3. ./check_ncpa.py -H <indirizzo server> -t mytoken --list

Lato Windows: configurazione NCPA attivo

Istruzioni per la configurazione di NCPA attivo: i default dovrebbero andare bene nella maggior parte dei casi. Segnatevi la chiave di sicurezza (API token) che vi servirà nella configurazione di Nagios.

Ricordatevi di riavviare i servizi NCPA a conclusione delle modifiche dei file di configurazione

Lato Nagios: configurazione Nagios + NCPA

Qui cominciano i dolori. Dovete armarvi di pazienza, e imparare a muovervi tra i file e le cartelle di Nagios. Dovete imparare cosa sono i 'template' o modelli, che vi faranno risparmiare un po' di ripetizioni (voce 'use' dei file di configurazione).

I passaggi, a grandi linee, sono:

  1. Configurazione generale di Nagios. File nagios.cfg. Abilitare il monitoraggio Windows.
  2. Configurazione dei comandi, in objects/commands.cfg. Aggiunta del comando ncpa
  3. Configurazione dei server (host) e delle voci di monitoraggio (services) per ciascun server. File objects/windows.cfg

Se tutto va bene, ad un certo punto, nella schermata di Nagios dovreste vedere delle bellissime righe verdi in corrispondenza del vostro host e relativi servizi, magari con delle informazioni realistiche sull'occupazione disco e carico CPU.


In bocca al lupo!  

ISS control center

Lato Nagios: installazione NRDP

Se volete il monitoraggio passivo, dovrete scaricare anche il plugin per NRDP. Si scarica e si installa a parte. 
 
Sorgenti e istruzioni di installazione: https://github.com/NagiosEnterprises/nrdp
 
Segnatevi la chiave di sicurezza (token) utilizzata. Vi servirà per la configurazione in Windows.

Verificate che la pagina web di NRDP sia attiva, e che il token sia corretto.

Lato Windows: configurazione NRDP passivo

  • Istruzioni per la configurazione dei controlli passivi (in inglese). 
    • Cartella /etc
    • Troverete un file preconfigurato e uno di esempio.
    • Importante: impostare l'URL di destinazione dei messaggi (server Nagios/nrpd)
    • vedi (in inglese) https://www.nagios.org/ncpa/help/2.2/passive.html 
    • Riavviate i servizi NCPA a conclusione delle modifiche dei file di configurazione 


Lato Nagios: configurazione NRDP passivo

Se è andato tutto bene finora,  i messaggi di Windows dovrebbero arrivare a Nagios. Ma Nagios non sa cosa farsene.
Per verificare, controllate il log di Nagios per vedere se segnala i messaggi di provenienza ignota:

grep 'Error: Got' /usr/local/nagios/var/nagios.log 
 
Se trovate le segnalazioni, siamo a cavallo.
Per far 'digerire' questi messaggi, dobbiamo aggiungere alla configurazione di Nagios:

Riferimenti 

Sorgenti ed eseguibili per Nagios:
Sorgenti ed eseguibili di NCPA. Alla data del post, la versione era la 2.2.2 di giugno 2020.
Descrizione del plugin NCPA per i controlli in modalità attiva, in particolare per Windows:
Spiegazione complessiva dell'utilizzo di NCPA in modalità passiva:
Traccia dettagliata di alcune operazioni di configurazione descritte sopra:

Per coloro che vogliono assolutamente continuare ad usare NSClient++, la documentazione:

09 novembre 2020

WikiData e Label

WikiData è il database RDF che ormai da qualche anno agisce come deposito per i dati "universali" di Wikipedia. 

Ad esempio, è ragionevole che ci sia una unica fonte interna che fornisca il dato sulla popolazione di Parigi, invece di affidarsi alle capacità dei volenterosi volontari che dovrebbero riportarla come numero in cento traduzioni diverse dell'articolo sulla capitale della Francia.

Recentemente mi sono avvicinato a questo mondo, e ho provato a creare qualche domanda o 'query' come si dice in gergo. Per questo c'è uno spazio apposito, chiamato Wikidata Query Service.

Sono rimasto affascinato dalle potenzialità di questo sistema e in generale dal paradigma RDF, ma mi hanno sorpreso subito alcune stranezze, che mi segno qui per motivi di cronaca.

Se voglio sapere quante città si chiamano 'Pavia' nel mondo (nel mondo Wikidata, inteso), devo cercare l'etichetta (o 'label') 'Pavia'. Questo non è intuitivo come si potrebbe pensare.

Query trovata su StackOverflow, in risposta alla domanda di un utente perplesso:

SELECT distinct ?item ?itemLabel ?itemDescription
WHERE{  
  ?item ?label "Pavia"@en.  
  ?article schema:about ?item .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }    
}

 Ma cos'è 

SERVICE wikibase:label 

? Mistero. Nel tutorial di SPARQL per WikiData, ci viene spiegato che si tratta di una 'magia'.

Senza questa magia, bisogna scrivere:

SELECT DISTINCT ?item
WHERE
{
  ?item  wdt:P31/wdt:P279* wd:Q486972 .
  ?item rdfs:label "Pavia"@en .
}

... dove

wdt:P31/wdt:P279* wd:Q486972

significa: un "insediamento umano" o sua sottoclasse più specializzata.

Non sono l'unico che si chiede in cosa consista la 'magia' dei label, come potete leggere in quest'altra domanda su StackOverflow. 

A quanto pare si tratta di una questione di ottimizzazioni e di efficienza.

Se troverò risposte, sarete i primi a saperlo ...



29 ottobre 2020

VPN Wireguard

 A volte anche per gli informatici è difficile stare al passo con l'evoluzione tecnologica. Ma quando una novità, che non è una novità, inizia a diventare diffusa e dirompente, non può passare inosservata.

Oggi vi segnalo WireGuard, che sta diventando lo standard per le Reti Virtuali Private o VPN.

Qui trovate una descrizione su Wikipedia, e qui il sito ufficiale.

Una VPN serve per creare un canale di comunicazione protetto tra il nostro PC e un server su Internet. In questi tempi di smartworking, di furti e ricatti informatici e importanza della privacy, la VPN diventa uno strumento indispensabile per accedere a dati e informazioni che non vogliamo condividere con il mondo intero.

Alla ricerca di una soluzione che sostituisse la vecchia VPN aziendale, ho scoperto Wireguard, un progetto nato nel 2016, ma che ha cominciato a diffondersi seriamente a partire dal 2018.


Logo of WireGuard

Il solo dato della quantità ridotta di codice scritto, mi è bastato per capire che si tratta di un progetto veramente innovativo e moderno. A detta del creatore, Jason A. Donenfeld, Wireguard contiene circa 4mila righe di codice, contro le 400mila e passa del suo predecessore Open Source più diffuso, cioè OpenVPN.

La sua disponibilità su tutti i sistemi operativi più diffusi, Windows, Linux, MacOS, IOS e Android, mi ha ulteriormente convinto che si trattasse di una valida alternativa.

Il tempo materiale per installare un server e un paio di client per le prove, cioè meno di un'ora, hanno sancito il suo ingresso definitivo nell'arsenale degli strumenti informatici personali e aziendali che raccomanderei a tutti.

Quasi dimenticavo: il server di prova gira su un Raspberry!

Markdown e Wiki

 Questo blog vive su Internet, e quindi per voi lettori è una pagina web, scritta in HTML, dove la M sta per Markup, ossia la sintassi che serve per abbellire il testo, creare i collegamenti (la H di HyperText) e identificare i componenti di una pagina web.

La sintassi complessa e lunga da digitare a manina fa in modo che spesso le pagine in HTML, come in questo blog, vengano composte con altri sistemi, e non digitando esplicitamente le etichette HTML, come in <h3>sottotitolo</h3> o <b>grassetto</b>.

Per questo motivo, un certo John Gruber ha proposto un sistema per formattare o abbellire il testo che potesse essere digitato mentre si scrive. Si chiama markdown, dove il 'down' indica la semplificazione verso il basso, rispetto al markup.

 

Con il markdown, ad esempio, il grassetto si indica con degli *asterischi*, il corsivo con delle barre diagonali //, e i titoli con degli uguale === sottotitolo === , con dei !!! punti esclamativi o dei cancelletti, in base alla variante utilizzata.

L'idea è sembrata geniale, tanto che il markdown viene usato dappertutto su internet: nei forum, nei wiki, nei siti di domande e risposte.

Purtroppo Gruber non si è cimentato in una standardizzazione delle sue proposte, che erano un po' ambigue per alcuni versi, e mancavano della ricchezza espressiva richiesta in molti documenti.

Per questo motivo, il markdown non è uno standard, e le varianti si sprecano, spesso incompatibili fra loro. Vi sono diversi candidati per uno standard, o per volume di adozione (standard de facto) o per ricerca di consenso. Ad esempio, su StackOverflow, recentemente si è deciso di passare al CommonMark. Su GithHub regna sovrano il markdown di GitHub, comunemente descritto come GitHub Flavoured Markdown, o 'gh'. Wikipedia ha la sua variante, usata da milioni di Wikipediani.

Oggi ho scoperto una nuova salsa o implementazione che vi segnalo, che a sua volta viene utilizzata per creare dei Wiki su GitHub.

Si chiama Discount, è scritta nel linguaggio C, e trovate qui il sito e la documentazione.

Qui un wiki realizzato con Discount, Make e GitHub: la documentazione del progetto musl.

18 ottobre 2020

Lo ricomprerei: copriwater IKEA anni 2000

Dopo almeno 15 anni di onorato servizio ha ceduto uno dei nostri oggetti IKEA più usati in assoluto: il copriwater!

E' stato l'asse più longevo di sempre, a mio avviso, soprattutto per le cerniere in plastica, a prova di qualunque prodotto corrosivo usato da chi l'ha amorevolmente pulito in questi anni.

Tutti gli altri si sono corrosi e rotti proprio sulle cerniere, solitamente in acciaio cromato. Alcuni dopo pochi mesi di utilizzo. Anche in questo caso si sono rotte le cerniere, ma per stress meccanico. Non voglio indagare sulle cause. 😕


E' uno dei pochi copriwater sganciabili che abbia mai visto (non che sia un esperto del settore 😄), quindi semplice da pulire a fondo. Grazie ad un attento design proprio delle cerniere, ha una parte che rimane attaccata alla tazza e l'asse che si stacca, semplicemente sollevandolo dal verticale. 

E' un prodotto sicuramente "over-engineered" come dicono in inglese. Con questo termine si indica un prodotto in cui i progettisti hanno aggiunto funzionalità e complicazioni che non hanno fondate giustificazioni commerciali. Non riesco ad immaginare le ore di progettazione e di industrializzazione del prodotto, gli stampi per la plastica e i test impiegati dalla casa svedese per assicurarsi la perfetta funzionalità dell'assemblaggio e del prodotto finale.

Sarà per questo motivo, o per altri a me sconosciuti, IKEA non lo produce più e la nuova linea ha le cerniere in metallo come tutte le altre marche.

Intanto che cerco un degno sostituto, ho provveduto alla riparazione, ricostruendo delle cerniere in legno. Non è stato semplice, ma con un po' di manodopera e di aiuto da parte della tribù, ci sono riuscito. 

Se siete curiosi, potete vedere i particolari in questa galleria di immagini.

-----

Note a posteriori: esistono aziende che fanno copriwater sganciabili e con cerniere non metalliche. Peccato che abbia trovato per ora solo produttori USA, con misure incompatibili (interasse fori USA 5''1/2 o 14cm, ITA 16cm). Vedi ad esempio:

08 luglio 2020

US Robotics 5462

In ogni famiglia con un certo numero di figli, c'è quello 'uscito male'.

La US Robotics non fa eccezione.

Guarda caso, l'access point Wifi che ho comprato anni fa, è proprio uno di questi.

Il modello è il 5462, (qui la pagina di US Robotics) che veniva venduto insieme ad una chiavetta WiFi, che invece ha funzionato abbastanza bene.

Questo baracchino, che è proprio una baracca, ha un hardware talmente brutto che non è stato nemmeno preso in considerazione da parte degli sviluppatori open source, per i progetti OpenWRT e DDWRT, che consentono di "personalizzare" la propria centralina WiFi.

Qui trovate la descrizione e le specifiche del chipset, che è un Intersil ISL3893, in questo forum, bollato come vecchio e pieno di difetti: "wireless driver full of bugs and not worth to be further developed".

In questi giorni lo sto usando come Access Point della rete "ospiti", chiamiamola così, perché la Vodafone Station Revolution non mi dà la possibilità di configurare gli orari di accesso, e quindi limitare la navigazione ai miei ragazzi.

Il problema più grave è che continua a perdere l'ora, e non è in grado di sincronizzarsi con alcun server esterno. Spesso lo trovo bloccato, entro e scopro che l'AP è tornato nel gennaio del 1970! Ovvio che nel 1970 non c'era WiFi e non può funzionare...

Delle tre opzioni presentate per l'aggiornamento dell'ora, l'unica che funziona è l'aggiornamento con inserimento manuale. Non funziona NTP, non funziona 'prendi l'ora dal computer', e evidentemente, il sistema non riesce a ricordarsi l'ora neanche da un giorno con l'altro...

Insomma, un pezzo di hw da dimenticare, che perde il tempo e fa perdere tempo!