Based on user feedback, we're happy to announce our super easy Kubernetes integration. No more wrestling with fluentd configs, fiddling with Elasticsearch knobs or following 30-step guides cutting and pasting other people's configs.
kubectl create secret generic logdna-agent-key --from-literal=logdna-agent-key=<YOUR LOGDNA API KEY>
kubectl create -f https://raw.githubusercontent.com/logdna/logdna-agent/master/logdna-agent-ds.yaml
We're looking for some feedback on how we can improve this integration. We currently extract Kubernetes metadata: pod name, container name, container id, namespace.Feel free to try it out. Happy to answer any questions!
I have used the docker integration of logdna beforehand, before moving to Kubernetes.
The integration was done using docker compose per docker compose environment.
The logs which contained `err` were marked red as errors in logdna and I could trigger an alarm.
The same containers in Kubernetes with the same logs seem to marked as `info` now. I am not sure, why this is and how I can get the same behavior as before. Is there a way to tell Kubernetes about stderr/stdout? Or how would I trigger logdna to treat a log as error instead of info?
As I have understood,you do not set any namespace for the secret/daemonset, which is fine with me.
But this way, I could install multiple agents (for each namespace).
So a better documentation about the best practice installation for multiple namespaces would be nice.
Yeah, we now set our agent up w/o namespaces. During our beta, we originally had it set up inside `kube-system` but 2 of our testers mentioned that the pod wouldn't install unless it was in `default`. So we moved it out of `kube-system` but we still weren't sure what caused the issue since it worked fine on our cluster. We were using Kubernetes v1.4 so it could've been an older version issue.
How do you guys handle multi-line log entries? This is the hardest part with existing setups, and would really help us trace exceptions as they occur in real-time.
We have thought about this before and doing something like: if a line starts with tab or a fixed number of spaces a few times in a row, treat it as 1 line with \n's and store it as such. It would help with alerting and filtering alerts. Just not 100% sure if this will screw up anything.
e.g. output from my dev cluster:
~CK/elk/templates git:(master) kc cluster-info
Kubernetes master is running at https://192.168.16.16:8443
Elasticsearch is running at https://192.168.16.16:8443/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging
Heapster is running at https://192.168.16.16:8443/api/v1/proxy/namespaces/kube-system/services/heapster
KubeDNS is running at https://192.168.16.16:8443/api/v1/proxy/namespaces/kube-system/services/kube-dns
monitoring-grafana is running at https://192.168.16.16:8443/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana
I think people want easy management of this, but I do wonder how successful this particular integration will be with such low-hanging self-managed alternatives. Where I think LogDNA will have a win is that you probably also have things running outside k8s that LogDNA helps integrate. So if you want all your k8s and non-k8s logs aggregated, and don't want to mess with it, then you might go with LogDNA.