用ELK工具收集rancher的容器日志

发表于:2023-11-28 09:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:西风未眠    来源:51CTO博客

  前言
  rancher1.6部署的docker集群,在rancher的界面上也能看到日志:
  但是rancher上看到的日志容量有限,只要稍微早一点的日志,就无法查看了,需要手动到服务器上使用docker logs查看日志,不太方便,因此搭建一个elk来收集rancher上部署的docker容器日志。 rancher上部署的docker容器,日志位置在/var/lib/docker/containers/containerID/目录下的*-json.log文件里,因此需要收集这个文件的内容。
  部署规划
  1、服务器规划
  2、相关版本 服务器版本:centos7.3 docker版本:1.13.1 rancher-server版本:1.16.24 elk、filebeat版本:6.5.1 jdk版本:1.8
  环境准备
  1、按照《从0开始搭建ELK及采集日志的简单应用》在10.0.0.101上面部署好jdk、elasticsearch、logstash、kibana服务;
  2、在10.0.0.103上部署好rancher-server,并将10.0.0.102作为rancher-node加入到rancher上: 
  3、部署如下测试服务: 
  4、检查上述服务的LogDriver,保证是json-file格式(这里不配置,服务器上的container目录下可能不会生成json-log文件): 
  5、查看服务器上是否已经生成json-log(rancher上部署的docker容器,日志文件在/var/lib/docker/containers下面),例如gateway服务: 
  日志采集
  在10.0.0.102上部署filebeat(用的版本包:filebeat-6.5.1-linux-x86_64.tar.gz) 1、创建专用用户,解压安装包:
  [root@test102 ~]# useradd elk;echo 12345678|passwd elk --stdin    #创建elk用户,密码设置为12345678
  [root@test102 ~]# tar xf filebeat-6.5.1-linux-x86_64.tar.gz -C /usr/local/
  [root@test102 ~]# cd /usr/local/filebeat-6.5.1-linux-x86_64/
  2、修改配置文件,修改/usr/local/filebeat-6.5.1-linux-x86_64/filebeat.yml下面几个地方:
  #=========================== Filebeat inputs =============================
  filebeat.inputs:
  - type: log
    # Change to true to enable this input configuration.
    enabled: true   #注意:这里默认是false,要改成true,
    paths:      #配置要采集的日志路径
      - /var/lib/docker/containers/*/*json.log
  #============================== Kibana =====================================
  setup.kibana:
    host: "10.0.0.101:5601"
  #-------------------------- Elasticsearch output ------------------------------
  output.elasticsearch:
    hosts: ["10.0.0.101:9200"]
    username: "elk"
    password: "12345678"
  3、启动服务:
  [root@test102 filebeat-6.5.1-linux-x86_64]# ./filebeat  -c filebeat.yml &
  kibana查看日志
  在kibana上面去查看nginx的访问日志和gateway的服务日志,两个docker容器的IP不同,可以根据容器IP地址来过滤日志,nginx、LB、gateway的容器IP分别是: 
  1、查看gateway容器日志 在kibana界面过滤gateway的容器IP地址10.42.243.216,可以看到日志内容如下: 
  2、查看nginx的访问日志 注意:nginx在部署的时候,没有将端口暴露出来,而是通过LB单独映射的端口,因此在查看nginx日志的时候,不能用nginx本身的容器IP10.42.221.23去查看,而是要用LB的容器IP10.42.116.220去查看日志: 
  至此,ELK收集rancher的容器日志,就做好了。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号