This repository was archived by the owner on Sep 8, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 166
Integrations
Peter Bourgon edited this page Mar 28, 2018
·
8 revisions
For the time being, these integrations assume a separate OK Log installation running outside of the system or cluster in question.
logspout provides a quick and easy way to forward all Docker logs on a given host to an OK Log ingester.
$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock \
gliderlabs/logspout raw+tcp://ingest.mycorp.co:7651
You can use a simple Docker run command to generate some test logs.
$ docker run -d --rm ubuntu:latest sh -c 'while true; do date; sleep 1; done'
logspout also works well when deployed as a DaemonSet. Here's a sample manifest that captures all cluster (system) and application (user pod) logs, and forwards them to an OK Log ingester.
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: logspout
spec:
template:
metadata:
labels:
name: logspout
spec:
hostPID: true
hostIPC: true
hostNetwork: true
containers:
- resources:
requests:
cpu: 0.15
securityContext:
privileged: true
env:
- name: ROUTE_URIS
value: raw+tcp://ingest.mycorp.co:7651
image: gliderlabs/logspout
name: logspout
volumeMounts:
- name: log
mountPath: /var/run/docker.sock
volumes:
- name: log
hostPath:
path: /var/run/docker.sock
And here is an example StatefulSet and Service definition for OK Log itself, thanks to @jcftang.
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: oklog
labels:
app: oklog
spec:
replicas: 1
serviceName: "oklog"
selector:
matchLabels:
app: oklog
template:
metadata:
name: oklog
labels:
app: oklog
spec:
containers:
- name: oklog
image: zvelo/oklog:latest
imagePullPolicy: Always
ports:
- name: api
containerPort: 7650
- name: ingest-fast
containerPort: 7651
- name: ingest-durable
containerPort: 7652
- name: ingest-bulk
containerPort: 7653
- name: cluster
containerPort: 7659
args:
- ingeststore
- -store.segment-replication-factor
- "1"
- -store.segment-retain
- 30m
- -store.segment-purge
- 5m
- -store.path
- /data/store
- -ingest.path
- /data/ingest
volumeMounts:
- name: oklog
mountPath: /data
volumeClaimTemplates:
- metadata:
name: oklog
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: gp2
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
labels:
app: oklog
name: oklog
spec:
loadBalancerSourceRanges:
- 192.168.0.1/32
externalTrafficPolicy: Cluster
ports:
- name: api-80
port: 80
targetPort: 7650
protocol: TCP
- name: api-default
port: 7650
targetPort: 7650
protocol: TCP
- name: ingest-fast
port: 7651
targetPort: 7651
- name: ingest-durable
port: 7652
targetPort: 7652
- name: ingest-bulk
port: 7653
targetPort: 7653
- name: cluster
port: 7659
targetPort: 7659
selector:
app: oklog
sessionAffinity: None
type: LoadBalancer
You can use counter-pod.yaml manifest to generate some test logs.
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: ubuntu:14.04
args: [bash, -c,
'for ((i = 0; ; i++)); do echo "$i: $(date)"; sleep 1; done']
Also, @jhaynie has created an OK Log Helm chart.