mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			101 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
 | 
						|
 | 
						|
<!-- BEGIN STRIP_FOR_RELEASE -->
 | 
						|
 | 
						|

 | 
						|

 | 
						|

 | 
						|
 | 
						|
<h1>PLEASE NOTE: This document applies to the HEAD of the source
 | 
						|
tree only. If you are using a released version of Kubernetes, you almost
 | 
						|
certainly want the docs that go with that version.</h1>
 | 
						|
 | 
						|
<strong>Documentation for specific releases can be found at
 | 
						|
[releases.k8s.io](http://releases.k8s.io).</strong>
 | 
						|
 | 
						|

 | 
						|

 | 
						|

 | 
						|
 | 
						|
<!-- END STRIP_FOR_RELEASE -->
 | 
						|
 | 
						|
<!-- END MUNGE: UNVERSIONED_WARNING -->
 | 
						|
# Logging
 | 
						|
 | 
						|
## Logging by Kubernetes Components
 | 
						|
Kubernetes components, such as kubelet and apiserver, use the [glog](https://godoc.org/github.com/golang/glog) logging library.  Developer conventions for logging severity are described in [docs/devel/logging.md](../devel/logging.md).
 | 
						|
 | 
						|
## Examining the logs of running containers
 | 
						|
The logs of a running container may be fetched using the command `kubectl logs`. For example, given
 | 
						|
this pod specification which has a container which writes out some text to standard
 | 
						|
output every second [counter-pod.yaml](../../examples/blog-logging/counter-pod.yaml):
 | 
						|
```
 | 
						|
 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']
 | 
						|
```
 | 
						|
we can run the pod:
 | 
						|
```
 | 
						|
 $ kubectl create -f counter-pod.yaml
 | 
						|
 pods/counter
 | 
						|
```
 | 
						|
and then fetch the logs:
 | 
						|
```
 | 
						|
$ kubectl logs counter
 | 
						|
0: Tue Jun  2 21:37:31 UTC 2015
 | 
						|
1: Tue Jun  2 21:37:32 UTC 2015
 | 
						|
2: Tue Jun  2 21:37:33 UTC 2015
 | 
						|
3: Tue Jun  2 21:37:34 UTC 2015
 | 
						|
4: Tue Jun  2 21:37:35 UTC 2015
 | 
						|
5: Tue Jun  2 21:37:36 UTC 2015
 | 
						|
...
 | 
						|
```
 | 
						|
If a pod has more than one container then you need to specify which container's log files should
 | 
						|
be fetched e.g.
 | 
						|
```
 | 
						|
$ kubectl logs kube-dns-v3-7r1l9 etcd
 | 
						|
2015/06/23 00:43:10 etcdserver: start to snapshot (applied: 30003, lastsnap: 20002)
 | 
						|
2015/06/23 00:43:10 etcdserver: compacted log at index 30003
 | 
						|
2015/06/23 00:43:10 etcdserver: saved snapshot at index 30003
 | 
						|
2015/06/23 02:05:42 etcdserver: start to snapshot (applied: 40004, lastsnap: 30003)
 | 
						|
2015/06/23 02:05:42 etcdserver: compacted log at index 40004
 | 
						|
2015/06/23 02:05:42 etcdserver: saved snapshot at index 40004
 | 
						|
2015/06/23 03:28:31 etcdserver: start to snapshot (applied: 50005, lastsnap: 40004)
 | 
						|
2015/06/23 03:28:31 etcdserver: compacted log at index 50005
 | 
						|
2015/06/23 03:28:31 etcdserver: saved snapshot at index 50005
 | 
						|
2015/06/23 03:28:56 filePurge: successfully removed file default.etcd/member/wal/0000000000000000-0000000000000000.wal
 | 
						|
2015/06/23 04:51:03 etcdserver: start to snapshot (applied: 60006, lastsnap: 50005)
 | 
						|
2015/06/23 04:51:03 etcdserver: compacted log at index 60006
 | 
						|
2015/06/23 04:51:03 etcdserver: saved snapshot at index 60006
 | 
						|
...
 | 
						|
```
 | 
						|
 | 
						|
## Cluster level logging to Google Cloud Logging
 | 
						|
The getting started guide [Cluster Level Logging to Google Cloud Logging](../getting-started-guides/logging.md)
 | 
						|
explains how container logs are ingested into [Google Cloud Logging](https://cloud.google.com/logging/docs/)
 | 
						|
and shows how to query the ingested logs.
 | 
						|
 | 
						|
## Cluster level logging with Elasticsearch and Kibana
 | 
						|
The getting started guide [Cluster Level Logging with Elasticsearch and Kibana](../getting-started-guides/logging-elasticsearch.md)
 | 
						|
describes how to ingest cluster level logs into Elasticsearch and view them using Kibana.
 | 
						|
 | 
						|
## Ingesting Application Log Files
 | 
						|
Cluster level logging only collects the standard output and standard error output of the applications
 | 
						|
running in containers. The guide [Collecting log files within containers with Fluentd](../../contrib/logging/fluentd-sidecar-gcp/README.md) explains how the log files of applications can also be ingested into Google Cloud logging.
 | 
						|
 | 
						|
## Known issues
 | 
						|
 | 
						|
Kubernetes does log rotation for kubernetes components and docker containers. The command `kubectl logs` currently only read the latest logs, not all historical ones.
 | 
						|
 | 
						|
 | 
						|
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
 | 
						|
[]()
 | 
						|
<!-- END MUNGE: GENERATED_ANALYTICS -->
 |