k8s日志收集配置
容器日志样例
172.101.32.1 - - [03/Jun/2019:17:14:10 +0800] "POST /ajaxVideoQueues!queryAllUser.action?rnd=1559553110429 HTTP/1.0" 200 65 "http://www.wsjy.gszq.com:81/sysNotice!sysList.action" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" "192.168.200.252"
ELK配置
日志处理pipeline
# 注意 \\[ ,中括号前的两个转义反斜杠
[root@elk100 pipe]# cat nginx_pipeline.json
{
"description": "Nginx log pipeline",
"processors": [
{
"grok" :{
"field": "message",
"patterns" : ["%{IP:clientip} - - \\[%{HTTPDATE:timestamp}\\] \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) \"(?:%{URI:referrer}|-)\" %{QS:agent} %{QS:xforwardedfor}]
} },
{
"date": {
"field": "timestamp",
"formats": ["dd/MMM/YYYY:HH:mm:ss Z"]
}
}
],
"on_failure" : [{
"set" : {
"field" : "error.message",
"value" : "{{ _ingest.on_failure_message }}"
}
}]
}
[root@elk100 pipe]# curl -H 'Content-Type: application/json' -XPUT 'http://10.101.70.100:9200/_ingest/pipeline/nginx_pipeline' -d@nginx_pipeline.json
{"acknowledged":true}
模板配置
在Kibana的 Dev Tools中执行
PUT _template/nginx_log
{
"index_patterns": "nginx_log*",
"settings": {
"refresh_interval": "5s",
"number_of_shards": 1
},
"mappings": {
"_doc": {
"properties": {
"id": {"type": "integer"},
"clientip": {"type": "ip"},
"timestamp": {"type": "date",
"format": "dd/MMM/yyyy:HH:mm:ss Z"
},
"method": {"type": "keyword"},
"request": {"type": "text"},
"httpversion": {"type": "integer"},
"response": {"type": "integer"},
"bytes": {"type": "integer"},
"referrer": {"type": "text"},
"xforwardedfor": {"type": "text"}
}
}
},
"aliases": {}
}
}
k8s容器编排文件
采用每个POD应用启动一个 filebeat 容器来收集应用日志的方案。
fiebeat 镜像下载: https://cloud.docker.com/u/bugbeta/repository/list
[root@node1 filebeat]# cat filebeat-test.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: filebeat-test
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: filebeat-test
spec:
containers:
- image: bugbeta/filebeat:6.8.0
name: filebeat
volumeMounts:
- name: app-logs
mountPath: /log
- name: filebeat-config
mountPath: /etc/filebeat/
- image: nginx:1.7.9
name : app
ports:
- containerPort: 80
volumeMounts:
- name: app-logs
mountPath: /var/log/nginx
volumes:
- name: app-logs
emptyDir: {}
- name: filebeat-config
configMap:
name: filebeat-config
nodeSelector:
name: "node1"
---
apiVersion: v1
kind: Service
metadata:
name: filebeat-test
labels:
app: filebeat-test
spec:
type: NodePort
ports:
- port: 80
nodePort: 30085
protocol: TCP
name: http
selector:
k8s-app: filebeat-test
---
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-config
data:
filebeat.yml: |
filebeat.prospectors:
- type: log
paths:
- "/log/*"
setup.template.name: "nginx_log"
setup.template.pattern: "nginx_log*" output.elasticsearch:
hosts: ["10.101.70.100:9200"]
index: "nginx_log"
pipeline: "nginx_pipeline"
k8s日志收集配置的更多相关文章
- k8s日志收集方案
k8s日志收集方案 三种收集方案的优缺点: 下面我们就实践第二种日志收集方案: 一.安装ELK 下面直接采用yum的方式安装ELK(源码包安装参考:https://www.cnblogs.com/De ...
- k8s 日志收集之 EFK
如今越来越多的应用部署在容器之中,如何收集日志也是一个很重要的问题.服务出问题了,排查问题需要给开发看日志.服务一般会在多个不同的 pod 中,一个一个的登进去看也的确不方便.业务数据统计也需要日志. ...
- k8s日志收集及存档
k8s日志收集架构图 利用阿里开源的工具log-pilot,往kafka内写日志,然后吐一份至es,另外一份用flume消费kafka数据落盘
- K8S学习笔记之k8s日志收集实战
0x00 简介 本文主要介绍在k8s中收集应用的日志方案,应用运行中日志,一般情况下都需要收集存储到一个集中的日志管理系统中,可以方便对日志进行分析统计,监控,甚至用于机器学习,智能分析应用系统问题, ...
- springmvc项目 logback.xml配置 logstash日志收集
配置logback,需要一个转接的Appender,可以通过Maven依赖加到项目中: <dependency> <groupId>com.cwbase</groupId ...
- kubernets轻量 contain log 日志收集技巧
首先这里要收集的日志是容器的日志,而不是集群状态的日志 要完成的三个点,收集,监控,报警,收集是基础,监控和报警可以基于收集的日志来作,这篇主要实现收集 不想看字的可以直接看代码,一共没几行,尽量用调 ...
- elk 日志收集 filebeat 集群搭建 php业务服务日志 nginx日志 json 7.12版本 ELK 解决方案
难的不是技术,难的是业务.熟悉业务流程才是最难的. 其实搜索进来的每一个人的需求不一样,希望你能从我的这篇文章里面收获到. 建议还是看官方文档,更全面一些. 一.背景 1,收集nginx acces ...
- 日志收集系统elk
目录 elk简介 官方帮助 rsyslog rsyslog日志采集介绍与使用 综合实验 案例一: 单机ELK部署 案例二. JAVA环境配置,部署 filebeat+Elasticsearch apa ...
- 关于K8s集群器日志收集的总结
本文介绍了kubernetes官方提供的日志收集方法,并介绍了Fluentd日志收集器并与其他产品做了比较.最后介绍了好雨云帮如何对k8s进行改造并使用ZeroMQ以消息的形式将日志传输到统一的日志处 ...
随机推荐
- 关于layui.laypage.render 刷新首页没有分页问题
前言: 最近写项目遇到一个问题,就是使用vue里的layui.laypage.render 分页时,刷新首页会只有一页,但后台传来的数据是有50多页的,所有的数据也都一一对应,调了好久debug,终于 ...
- 堆————数据流的第k个大的元素
解题思路 一般地,堆和堆排序——解决 "贪心算法及其类似问题" 的利器. # 思路:我们可以用一个小根堆来做,并且限制堆的大小为k,初始化时把nums的每个数都push到堆中,如果 ...
- pickle模块 no attribute 'dumps'
今天写了一个pickle.py的文件练习pickle模块,代码如下: import pickle dic = {"linga": ('football',)} dic2 = {&q ...
- 2019-03-28 Python SQL 的注释
SQL Server 多行注释 : ctrl + k + c SQL Server 单行注释: -- Python 单行注释:# Python多行注释:''' '''
- 使用PoolingHttpClientConnectionManager解决httpclient的多线程请求问题
直接上代码 1.主程序 public class TestMain { public static void main(String[] args) throws NSQException, Time ...
- Docker 命令行和后台參数
Docker官方为了让用户高速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的用法. Docker 命令行 以下对Docker的命令清单进行简单的介绍,具体内容在兴许章节具 ...
- Math类概述及其成员方法
Math 类包括用于运行基本数学运算的方法,如初等指数.对数.平方根和三角函数,这个类寻常开发中用的不多,可是在某些需求上会用到,比方求二个用户年龄的相差多少岁,这会用到Math类中的方法!如今把Ma ...
- Spring25大面试题
1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发人员攻克了开发中基础性的问题 ...
- WPF silverlight获取子控件(获取DataTemplate里的子控件)
public static class VisualTreeExtensions { /// <summary> /// 获取父节点控件 /// </summary> /// ...
- NOIP2017提高组模拟赛 8(总结)
NOIP2017提高组模拟赛 8(总结) 第一题 路径 在二维坐标平面里有N个整数点,Bessie要访问这N个点.刚开始Bessie在点(0,0)处. 每一步,Bessie可以走到上.下.左.右四个点 ...