K8S上的ELK和应用日志上报实战
来源:DevOps
ID:Idevops168
本次实战的基础结构如下图所示:

一共有两个Pod:ELK和web应用;
ELK的Pod会暴露两个服务,一个暴露logstash的5044端口,给filebeat用,另一个暴露kibana的5601端口,给搜索日志的用户访问的时候用;
web应用暴露一个服务,给用户通过浏览器访问;
实战步骤简介
部署ELK的pod和服务;
部署web应用的pod和服务;
web应用的pod从一个扩展为三个;
体验ELK;
部署ELK
我们从ELK Sever开始部署吧:
1. ssh登录到可以执行kubectl命令的机器上去;
2. 创建elk的部署脚本elkhost.yaml,内容如下:

如上所示,暴露了两个端口:kibana的5601和logstash的5044;
3. 在elkhost.yaml所在目录执行命令kubectl create -f elkhost.yaml,即可创建elk对应的pod,如下:

4. 将kibana的5601端口以NodePort的方式对外暴露,这样外部就可以通过节点IP地址来访问kibana服务了,创建部署脚本elkkibana-svc.yaml,kibana的服务通过node节点的30001端口对外暴露,内容如下:

5. 将logstash的5044端口以ClusterIP的方式对外暴露,这样其他pod的filebeat就可以通过服务名加5044端口来访问logstash服务了,创建部署脚本elkhost-svc.yaml,logstash的服务通过5044端口对K8S内部的pod暴露,内容如下:

6. 在elkhost-svc.yaml所在目录执行命令kubectl create -f elkhost-svc.yaml && kubectl create -f elkkibana-svc.yaml,即可创建elkhost和elkkibana这两个服务,如下:

7. 执行命令查看elkhost的pod部署在K8S的哪个node节点上:

如上所示,Node: willzhao-vostro-3267/192.168.31.89显示了这个pod部署的节点IP是192.168.31.89;
8. 打开浏览器,输入192.168.31.89:30001,即可访问到Kibana服务,如下图:

部署应用
ELK Sever已经OK,接下来部署web应用:
1. 创建elkwebdemo的部署脚本elkwebdemo.yaml,内容如下:

2. 在elkwebdemo.yaml所在目录执行命令kubectl create -f elkwebdemo.yaml,即可创建elk对应的pod,如下:

3. 创建elk对外服务的部署脚本elkwebdemo-svc.yaml,web的服务通过node节点的30002端口对外暴露,内容如下:

5. 在elkwebdemo-svc.yaml所在目录执行命令kubectl create -f elkwebdemo-svc.yaml,即可创建elkwebdemo对应的pod,如下:

6. 执行命令查看elkwebdemo的pod部署在K8S的哪个node节点上:

如上所示,Node: willzhao-vostro-3267/192.168.31.89显示了这个pod部署的节点IP是192.168.31.89;
7. 打开浏览器,输入http://192.168.31.89:30002/hello/tom,即可访问到web服务,如下图:

设置kibana
再次打开kibana页面,如下图所示,点击红框中的“Discover”,发现已经搜集到了上报的日志,如绿框所示:

如下图设置:

继续设置,如下图:

再此点击左上角的”Discover”,既可开始搜索web应用日志,如下图:

web应用扩容
现在我们模拟生产环境的在线扩容:
1. 将web应用从一个扩展到三个,执行以下命令:

2. 可以看到web应用对应的pod已经扩展了,如下所示:

3. 为了能多上报一些日志,在浏览器上多刷新几次这个地址:http://192.168.31.89:30002/hello/tom
4. 回到kibana页面,如下图,点击红框中的“host”,展开的信息显示,这些日志来自三个host:

5. 打开K8S的dashboard页面看一下容器信息,如下图,可以见到三个web容器的hostname和kibana中的host是一样的:

K8S上的ELK和应用日志上报实战的更多相关文章
- 使用filebeat收集k8s上pod里的容器日志配置文件模板
具体使用有待商榷 filebeat.inputs: - type: container paths: - /var/log/containers/*.log processors: - add_kub ...
- 利用ELK分析Nginx日志生产实战(高清多图)
本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装e ...
- 在k8s上部署日志系统elfk
日志系统elfk 前言 经过上周的技术预研,在本周一通过开会研究,根据公司的现有业务流量和技术栈,决定选择的日志系统方案为:elasticsearch(es)+logstash(lo)+filebea ...
- ELK+kafka构建日志收集系统
ELK+kafka构建日志收集系统 原文 http://lx.wxqrcode.com/index.php/post/101.html 背景: 最近线上上了ELK,但是只用了一台Redis在 ...
- linux下利用elk+redis 搭建日志分析平台教程
linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...
- ELK快速搭建日志平台
1. 抛砖引入 <Elasticsearch> <Logstash> <Filebeat> <Filebeat模块与配置> <Kibana> ...
- ELK+Kafka 企业日志收集平台(一)
背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...
- 【ELK】5.spring boot日志集成ELK,搭建日志系统
阅读前必看: ELK在docker下搭建步骤 spring boot集成es,CRUD操作完整版 ============================================== 本章集成 ...
随机推荐
- Linux-awk command
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- 前端多媒体(7)—— 在浏览器中实现rtmp推流
示例:https://young-cowboy.github.io/gallery/rtmp_client/index.html 在国内的直播场景中通常使用,rtmp协议作为推流协议.RTMP是Rea ...
- FFMPEG 最简滤镜filter使用实例(实现视频缩放,裁剪,水印等)
FFMPEG官网给出了FFMPEG 滤镜使用的实例,它是将视频中的像素点替换成字符,然后从终端输出.我在该实例的基础上稍微的做了修改,使它能够保存滤镜处理过后的文件.在上代码之前先明白几个概念: Fi ...
- oracle隐含参数的查看与修改
v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的. 1. 可以通过如下方式查询当前实例的所有隐含参数: col name for a30 ...
- 洛谷【P1142】轰炸
我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...
- EventLoop 与 Channel 的关联
Netty 中, 每个 Channel 都有且仅有一个 EventLoop 与之关联, 它们的关联过程如下: 从上图中我们可以看到, 当调用了 AbstractChannel#AbstractUnsa ...
- 又来一波!Android精品源码分享
今天又汇总了几个不错的源码给大家!希望能帮到需要的小伙伴~话不多少,直接上源码! 1.Android精品源码:拖动条控件实现源码 此次分享的源码是一个不错的Android控件,建议大家可以细致的看下. ...
- Java 决策制定
有两种类型的决策在Java中的语句,它们分别是: if 语句 switch 语句 if 语句: if语句由一个布尔表达式后跟一个或多个语句. 语法: if语句的语法是: if(Boolean_expr ...
- ueditor1.4.3jsp版成功上传图片后却回显不出来与在线管理显示不出图片的解决方案
这是因为路径问题,可以在jsp/config.json这个文件去改路径 通过“imageUrlPrefix”与“imagePathFormat”这两个属性去拼凑路径. “imageUrlPrefix” ...
- 大内存电脑在vbox安装linux报错
问题描述: 1.机器:Linux主机,特别是主机为大内存,比如: 4G内存的使用pae内核的Ubuntu系统的thinkpad电脑. 2.情况:使用VirtualBox安装Linux系统时,比如:通过 ...