9

Sono un po 'confuso su come impostare la segnalazione degli errori in kubernetes, quindi gli errori sono visibili in "Segnalazione errori" di Google Cloud Console/Stackdriver?Come impostare la segnalazione degli errori in Stackdriver dai pod kubernetes?

Secondo la documentazione https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine abbiamo bisogno di abilitare fluentd' 'plug ingresso avanti' e poi inviare i dati di eccezione da parte dei nostri app. Penso che questo approccio avrebbe funzionato se avessimo eseguito l'installazione di noi stessi, ma è già preinstallato su ogni nodo in un pod che esegue gcr.io/google_containers/fluentd-gcp immagine docker.

Come abilitare l'ingresso in avanti su tali pod e assicurarsi che la porta http sia disponibile per ogni pod sui nodi? Dobbiamo anche assicurarci che questa configurazione sia utilizzata di default quando aggiungiamo più nodi al nostro cluster.

Qualsiasi aiuto sarebbe apprezzato, potrebbe essere sto guardando tutto questo da un punto sbagliato?

+0

Usi GKE o GCE? –

+1

Sono il product manager per Stackdriver Error Reporting. Attualmente, la funzione è in beta e non supportiamo ufficialmente ancora Kubernetes. Cercheremo di fornire la nostra migliore risposta qui una volta che avremo una soluzione da condividere. – Steren

+1

Grazie per la risposta. Usiamo GKE - vogliamo inviare segnalazione degli errori dai nostri java pod a Stackdriver Error Reporting. @Steren, grazie, non vedo l'ora. – s3ncha

risposta

14

L'idea di base è di avviare un pod separato che riceve registri strutturati su TCP e lo inoltra al Cloud Logging, simile a un agent fluentd in esecuzione locale. Vedi sotto per i passaggi che ho usato.

(Purtroppo, il supporto di registrazione che è costruito in Docker e kubernetes non può essere utilizzato - si allinei solo in avanti individuali di testo da output/error come voci di registro separati che impedisce Segnalazione errori di vedere tracce di stack completo.)

Creare un'immagine finestra mobile per un fluentd spedizioniere utilizzando un Dockerfile come segue:

FROM gcr.io/google_containers/fluentd-gcp:1.18 

COPY fluentd-forwarder.conf /etc/google-fluentd/google-fluentd.conf 

Dove fluentd-forwarder.conf contiene quanto segue:

<source> 
    type forward 
    port 24224 
</source> 

<match **> 
    type google_cloud 
    buffer_chunk_limit 2M 
    buffer_queue_limit 24 
    flush_interval 5s 
    max_retry_wait 30 
    disable_retry_limit 
</match> 

Poi costruire e spingere l'immagine:

$ docker build -t gcr.io/###your project id###/fluentd-forwarder:v1 . 
$ gcloud docker push gcr.io/###your project id###/fluentd-forwarder:v1 

è necessario un controller di replica (fluentd-forwarder-controller.yaml):

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: fluentd-forwarder 
spec: 
    replicas: 1 
    template: 
    metadata: 
     name: fluentd-forwarder 
     labels: 
     app: fluentd-forwarder 
    spec: 
     containers: 
     - name: fluentd-forwarder 
     image: gcr.io/###your project id###/fluentd-forwarder:v1 
     env: 
     - name: FLUENTD_ARGS 
      value: -qq 
     ports: 
     - containerPort: 24224 

è necessario anche un servizio (fluentd-forwarder-service.yaml):

apiVersion: v1 
kind: Service 
metadata: 
    name: fluentd-forwarder 
spec: 
    selector: 
    app: fluentd-forwarder 
    ports: 
    - protocol: TCP 
    port: 24224 

Poi creare il controller e il servizio di replica:

$ kubectl create -f fluentd-forwarder-controller.yaml 
$ kubectl create -f fluentd-forwarder-service.yaml 

Infine, nella vostra applicazione, invece di utilizzare 'localhost' e 24224 per la connessione al agente fluentd come descritto a https://cloud.google.com/error-reporting/docs/setting-up-on-compute-engine, utilizzare i valori delle variabili Evironment FLUENTD_FORWARDER_SERVICE_HOST e FLUENTD_FORWARDER_SERVICE_PORT.

+0

grazie per il tuo contributo Boris! questo è praticamente quello che abbiamo finito :) – s3ncha

+0

Prego. I tuoi errori si presentano come previsto? Si prega di inviare un feedback se ne avete - utilizzare il "!" icona in alto a destra della console quando si visualizza una pagina di segnalazione degli errori e il team la riceverà direttamente. Grazie! –

+0

La configurazione del client fluentd nell'applicazione può essere modellata in seguito: https://cloud.google.com/error-reporting/docs/setup/ec2 – orourkedd

Problemi correlati