来源: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和应用日志上报实战的更多相关文章

  1. 使用filebeat收集k8s上pod里的容器日志配置文件模板

    具体使用有待商榷 filebeat.inputs: - type: container paths: - /var/log/containers/*.log processors: - add_kub ...

  2. 利用ELK分析Nginx日志生产实战(高清多图)

    本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...

  3. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装e ...

  4. 在k8s上部署日志系统elfk

    日志系统elfk 前言 经过上周的技术预研,在本周一通过开会研究,根据公司的现有业务流量和技术栈,决定选择的日志系统方案为:elasticsearch(es)+logstash(lo)+filebea ...

  5. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

  6. linux下利用elk+redis 搭建日志分析平台教程

    linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm   elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...

  7. ELK快速搭建日志平台

    1.  抛砖引入 <Elasticsearch> <Logstash> <Filebeat> <Filebeat模块与配置> <Kibana> ...

  8. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  9. 【ELK】5.spring boot日志集成ELK,搭建日志系统

    阅读前必看: ELK在docker下搭建步骤 spring boot集成es,CRUD操作完整版 ============================================== 本章集成 ...

随机推荐

  1. 时间复杂度O(n)与空间复杂度O(1)

    把输入规模看成x轴,所花时间/空间看成y轴.O(n)就是 y = x, y随x的增长而线性增长.一条斜线O(1)就是 y = 1,不管x如何变,y不变.一条与x平行的线 举个简单的例子,要从0加到n, ...

  2. myeclipes如何调试web项目

    你可以右击项目,然后选中那个debug as,然后选择open debug dialog,在project中选择要运行的项目,sever中选择服务器,然后单击debug就ok了,,

  3. ADO:连接,执行语句与关闭(sql server数据库)

    一,身份验证: sql server数据库连接身份验证有两种:windows身份验证和SQL Server身份验证 windows验证:是使用windows的安全子系统对用户连接进行有效性验证.(个人 ...

  4. JAVA堆内存和栈内存初步了解

    一.堆内存和栈内存 程序运行时内存分配有三种:静态存储分配,栈式存储分配,堆式存储分配 1.静态存储分配: 在程序编译时就可以确定数据目标在运行时所需要的内存,因此在编译时就为其分配固定大小的内存. ...

  5. FFMPEG(一) 从V4L2捕获摄像头数据

    系列相关博文: FFMPEG(一) 从V4L2捕获摄像头数据 FFMPEG(二) v4l2 数据格式装换 FFMPEG(三) v4l2 数据编码H264 最近在学习FFMPEG,发现网上的很多例子都是 ...

  6. ACM学习历程—UESTC 1222 Sudoku(矩阵)(2015CCPC H)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目大意就是构造一个行列和每个角的2*2都是1234的4*4矩阵. 用dfs暴力搜索,不过需要每一步进 ...

  7. bzoj 1023 [SHOI2008]cactus仙人掌图 ( poj 3567 Cactus Reloaded )——仙人掌直径模板

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1023 http://poj.org/problem?id=3567 因为lyd在讲课,所以有 ...

  8. a标签中href="javacript:;" href="javacript:void(0);" href="#"区别

    在使用<a>标签时,经常会绑定其他事件比如onclick,这时候我们会给<a>标签的href属性赋值为“#”,“javacript:;”,“javacript:void(0); ...

  9. Poj 1316 Self Numbers(水题)

    一.Description In 1949 the Indian mathematician D.R. Kaprekar discovered a class of numbers called se ...

  10. C#某月的第一天和最后一天

    1.本月的第一天===>DateTime.Now.AddDays(1 - DateTime.Now.Day);//当前日期减去当前日期和本月一号相差天数 2.本月的最后一天===>Date ...