Vedo molte persone che usano Monit in combinazione con Runit. Non è ridondante? Qual è il punto di usare anche runit? È perché è più affidabile quando si tratta di servizi (in quanto non si basa su pidfile)?
Grazie!
Vedo molte persone che usano Monit in combinazione con Runit. Non è ridondante? Qual è il punto di usare anche runit? È perché è più affidabile quando si tratta di servizi (in quanto non si basa su pidfile)?
Grazie!
Risposte:
Non avevo mai sentito parlare di runit , eppure sono un utente pesante di Monit ...
Guardando runit
, vedo che è un sostituto di init. Direi che la maggior parte dei sistemi aziendali si attacca al loro init Sys V predefinito o Upstart . Non credo sia una pratica comune cambiarlo.
Tuttavia, la relazione qui potrebbe essere che runit fornisce un modo conveniente di generare Monit e assicurarsi che rimanga in esecuzione. Forse simile all'esecuzione di Monit da inittab. È essenzialmente "guardare l'osservatore" o monitorare il tuo sistema di monitoraggio.
In pratica, uso Monit come demone e non ho avuto problemi con il crash o l'uccisione. Forse il fascino di runit
è che offre una protezione aggiuntiva.
Per quanto riguarda Monit, funziona bene con la corrispondenza del modello del nome del processo anziché con i file PID .
runit è adatto per il controllo dei servizi e della registrazione e si attacca anche a unix-way: combina facilmente parti semplici di cui hai bisogno. Può fare alcuni controlli ed elaborazione degli eventi di avvio / arresto del servizio, ma dovrai scrivere tutto questo da solo. Nota: runit non funziona se il servizio non può essere eseguito in primo piano.
monit è ok per il controllo dei servizi (ma non buono come runit perché dovrai gestire daemon e logging da solo) e funziona anche bene con i processi di auto-demonizzazione se espongono il pidfile corretto. D'altra parte è davvero ottimo per guardare i servizi: elaborazione di eventi, controllo di perdite di memoria e così via. Inoltre ha una bella dashboard per gli stati del servizio di navigazione (sia a riga di comando che basata su web) e una dashboard commerciale m / monit per ottenere dati da diversi server.
In questo modo usando runit + monit diventa il seguente: