2015-02-23 10 views
5

Sto sviluppando un'interfaccia utente in cui ho bisogno di mostrare i registri live (stdout e stderr) di lavori in esecuzione in uno slave mesos. Sto scoprendo un modo in cui sarò in grado di generare un URL che indicherà i log del mesos per il lavoro. C'è un modo per fare lo stesso? Fondamentalmente, ho bisogno di conoscere l'id slave, l'id dell'esecutore, l'id principale ecc. Per generare l'URL. C'è un modo per trovare queste informazioni?Come generare l'URL che mostra i registri live in mesos per un lavoro

risposta

0

Mesos offre un'interfaccia REST dove ottieni le informazioni che desideri. Visita con il vostro browser http://<MESOS_MASTER_IP>:5050/help (usando la porta di default) per controllare le opzioni che si hanno per eseguire una query (per esempio, è possibile ottenere le informazioni di cui avete bisogno da http://<MESOS_MASTER_IP>:5050/master/state.json). Controllare this link per vedere un esempio di utilizzarlo.

+1

Ciao, grazie per la tua risposta rapida! Sono in grado di ottenere tutte le informazioni tranne l'id del contenitore da /master/state.json .. C'è un modo per ottenere l'id del contenitore? –

+1

Si prega di condividere su come hai recuperato id contenitore. – abhijeet

1

L'URL sandbox è di la forma http:// $slave_url:5050/read.json?$work_dir/work/slaves/$slave_id/frameworks/$framework_id/executors/$executor_id/runs/$container_id/stdout, e si può anche utilizzare il browse.json endpoint di navigare intorno all'interno della sandbox.

In alternativa, è possibile utilizzare il comando mesos tail $task_id CLI per accedere a questi registri.

per maggiori dettagli, consultare il seguente mailing list thread: http://search-hadoop.com/m/RFt15skyLE/Accessing+stdout%252Fstderr+of+a+task+programmattically

1

Come utilizzare l'approccio inverso. È necessario presentare i registri live da stderr e stdout. Che ne dici di conservarli al di fuori del mesos slave, ad es. Ricerca elastica? Otterrai quasi aggiornamenti in tempo reale, vecchi registri disponibili dopo, belle opzioni di ricerca.

Dalla versione 0.27.0 Mesos supporta ContainerLogger. È possibile scrivere la propria implementazione di ContainerLogger che trasferirà i registri al repository dei registri centrali (Graylog, Logstash, e.t.c) e quindi esporlo nella propria interfaccia utente.

+0

Grazie, penso che la tua risposta sia la migliore finora. Mi fa schifo che Mesos non lo fornisca automaticamente, però. –

+1

Almeno c'è stata una prova a [MesosCon hackaton] (https://github.com/joyent/mesoscon-eu-2015-hackathon/blob/master/log-forwarding.md) ma non sono sicuro che venga produzione pronta. Puoi trovare più persone interessate a questa funzione nella [Mailing list degli utenti di Mesos] (https://mail-archives.apache.org/mod_mbox/mesos-user/201409.mbox/ <[email protected]om>). – janisz

Problemi correlati