zoukankan      html  css  js  c++  java
  • 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是一样的:

     

  • 相关阅读:
    模拟登陆江西理工大学教务系统
    python3爬虫 -----华东交大校园新闻爬取与数据分析
    以selenium模拟登陆12306
    PAT (Basic Level) Practice (中文)1076 Wifi密码 (15 分)
    PAT (Basic Level) Practice (中文)1047 编程团体赛 (20 分)
    PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)
    PAT (Basic Level) Practice (中文)1016 部分A+B (15 分)
    PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)
    PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)
    PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)
  • 原文地址:https://www.cnblogs.com/magedu/p/10640762.html
Copyright © 2011-2022 走看看