博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes平台中日志收集
阅读量:5886 次
发布时间:2019-06-19

本文共 3012 字,大约阅读时间需要 10 分钟。

收集哪些日志

K8S系统的组件日志

K8S Cluster里面部署的应用程序日志

日志方案

Kubernetes平台中日志收集

容器中的日志怎么收集

方案一:Node上部署一个日志收集程序

1、DaemonSet方式部署日志收集程序 --这个在每个节点上会有一个pod监听
2、对本节点(node上的)/var/log和 /var/lib/docker/containers/
两个目录下的日志进行采集

1)/var/log/containers

2)如下图:
Kubernetes平台中日志收集

方案二:Pod中附加专用日志收集的容器--使用这个方案

每个运行应用程序的Pod中增加一个日志
收集容器,使用emtyDir共享日志目录让
日志收集程序读取到。

方案三:应用程序直接推送日志

超出Kubernetes范围,需要在程序中实现的

验证方案二

1、[root@docker ~]# mkdir logs

2、[root@docker ~]# cd logs/

部署elk

1、官方地址:
操作文档:

2、部署在192.168.1.25上

1)安装jdk
版本需要在Java 8发行版中安装Java版本1.80.131或稍后版本,不然运行失败
下载:

2) [root@docker ~]# cat /etc/yum.repos.d/elastic.repo

[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=
gpgcheck=1
gpgkey=
enabled=1
autorefresh=1
type=rpm-md

3)[root@docker ~]# yum install logstash kibana elasticsearch -y

4)修改如下:

[root@docker ~]# cat /etc/kibana/kibana.yml | grep -v '^#'| grep -v '^$'
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: ""

5)systemctl start kibana

6)[root@docker ~]# cat /etc/elasticsearch/elasticsearch.yml | grep -v '^#'| grep -v '^$'

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.1.25
http.port: 9200

7)需要解析到java

ln -sf /usr/local/jdk1.8.0_191/bin/java /usr/local/bin/java

8)启动:systemctl start elasticsearch

9)访问:

10)

Kubernetes平台中日志收集

11)

Kubernetes平台中日志收集

12)

Kubernetes平台中日志收集

13)[root@docker local]# cat /etc/logstash/conf.d/k8s_syslog.conf

input {
#filebeat客户端
beats {
port => 5044
}
}

#筛选

filter {

}

output {

#输出到es
elasticsearch {
hosts => [""]
index => "k8s-syslog-%{+YYYY.MM.dd}"
}
#控制台输出,方便调试
stdout { codec => rubydebug }
}

14)这一步是调试

[root@docker local]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/k8s_syslog.conf

15)启动

systemctl start logstash

3、到master01上部署filebeat

[root@docker logs]# vi k8s-logs.yaml 说明

fields_under_root:如果该选项设置为true,则新增fields成为顶级目录

1)

Kubernetes平台中日志收集

2)

Kubernetes平台中日志收集

image: lizhenliang/filebeat:6.4.2 下载docker.hub上的要等很久

3)创建

kubectl apply -f k8s-logs.yaml
4)查看
Kubernetes平台中日志收集

5)再每个node上都安装一个pod,这就是DaemonSet的作用

4、访问:查看是否有索引

Kubernetes平台中日志收集

5、再新建索引

Kubernetes平台中日志收集

Kubernetes平台中日志收集

6、搭建nginx的环境让其产生日志

192.168.1.13
[root@docker php-demo]# ls
deployment.yaml ingress.yaml mysql.yaml.bak namespace.yaml registry-pull-secret.yaml service.yaml
[root@docker php-demo]# kubectl apply -f .
1)删除deployment.yaml 因为要让registry-pull-secret.yaml授权访问后,再更新
[root@docker php-demo]# kubectl delete -f deployment.yaml
[root@docker php-demo]# kubectl apply -f deployment.yaml

2)查看下pods,svc,ingress

Kubernetes平台中日志收集

3)必须要有ingress控制器,才能编辑ingress 规则

因为ingress-controller 相当于nginx ,ingress.yaml相当于nginx上的转发的规则

Kubernetes平台中日志收集

若是有问题:重新apply

/root/demo/ingress/mandatory.yaml 这个文件就是生成ingress-controller

4)查看ingress-控制器分配在了哪个node上,相当于nginx的服务器IP,这样就可以在hosts绑定域名

Kubernetes平台中日志收集

192.168.1.24 php.ctnrs.com

5 ) 访问下:

6)更新创建filebeat的pod

首先创建filebeat的配置文件,这个是存在Configmap下的

Kubernetes平台中日志收集

再创建filebeat的pod

[root@docker logs]# vi nginx-deployment.yaml

定义pod1:php-demo 若是已创建的话,再更新需要滚动更新(保障容器都在提供服务,一个个滚动替换)完成

定义pod2:filebeat
挂载:emptyDir: {} 这个表示2个容器都是共享的,这样filebeat就可以读到nginx的日志文件了

Kubernetes平台中日志收集

7)执行

Kubernetes平台中日志收集

8)验证

这里的是k8s的监控检查
Kubernetes平台中日志收集

9)修改logstash的文件

分开写,比如nginx就输入到nginx里,k8s就输入到k8s里的日志
Kubernetes平台中日志收集

10)重启logstash

systemctl restart logstash

11)在kibana上添加索引

Kubernetes平台中日志收集

Kubernetes平台中日志收集

Kubernetes平台中日志收集

下面是部署java的日志

1、
Kubernetes平台中日志收集

2、和php-demo的一致

Kubernetes平台中日志收集

3、再次查看kibana 有没有索引生成即可

转载于:https://blog.51cto.com/jacksoner/2339765

你可能感兴趣的文章
应用程序日志中总是说MS DTC无法正确处理DC 升级/降级事件,是什么意思
查看>>
mybatis数据处理的几种方式
查看>>
作业2
查看>>
远程主机探测技术FAQ集 - 扫描篇
查看>>
C++中调用python函数
查看>>
Nomad添加acl认证
查看>>
“TI门外汉”网路知识笔记一 OSI参考模型
查看>>
你不需要jQuery(五)
查看>>
DatanodeDescriptor说明
查看>>
ServlertContext
查看>>
Python WOL/WakeOnLan/网络唤醒数据包发送工具
查看>>
sizeof(long)
查看>>
pxe网络启动和GHOST网克
查看>>
2.5-saltstack配置apache
查看>>
django数据库中的时间格式与页面渲染出来的时间格式不一致的处理
查看>>
增强myEclipse的提示功能
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
详解消息队列的设计与使用
查看>>