用ELK工具收集rancher1.6上容器日志

前言

rancher1.6部署的docker集群,在rancher的界面上也能看到日志:

但是rancher上看到的日志容量有限,只要稍微早一点的日志,就无法查看了,需要手动到服务器上使用docker logs查看日志,不太方便,因此搭建一个elk来收集rancher上部署的docker容器日志。
rancher上部署的docker容器,日志位置在/var/lib/docker/containers/containerID/目录下的*-json.log文件里,因此需要收集这个文件的内容。

部署规划

1、服务器规划

服务器 角色 部署服务
10.0.0.101 elk工具 jdk、elasticsearch、logstash、kibana
10.0.0.102 rancher-node rancher-agent、filebeat
10.0.0.103 rancher-server rancher-server

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、创建专用用户,解压安装包:

[[email protected] ~]# useradd elk;echo 12345678|passwd elk --stdin    #创建elk用户,密码设置为12345678
[[email protected] ~]# tar xf filebeat-6.5.1-linux-x86_64.tar.gz -C /usr/local/
[[email protected] ~]# 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、启动服务:

[[email protected] 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的容器日志,就做好了。

原文地址:http://blog.51cto.com/10950710/2324311

时间: 2024-08-08 14:43:56

用ELK工具收集rancher1.6上容器日志的相关文章

Linux服务器上创建日志服务器和FTP服务器

参考地址: http://www.111cn.net/sys/CentOS/81133.htm https://www.cnblogs.com/laoxiajiadeyun/p/9943742.html https://blog.51cto.com/liqingbiao/2119953 https://www.cnblogs.com/hasayaki/archive/2013/01/24/2874889.html 在 Linux 上配置一个 syslog 服务器 syslog服务器可以用作一个网

Kubernetes实战之部署ELK Stack收集平台日志

主要内容 1 ELK概念 2 K8S需要收集哪些日志 3 ELK Stack日志方案 4 容器中的日志怎么收集 5 K8S平台中应用日志收集 准备环境 一套正常运行的k8s集群,kubeadm安装部署或者二进制部署即可 ip地址 角色 备注 192.168.73.136 nfs 192.168.73.138 k8s-master 192.168.73.139 k8s-node01 192.168.73.140 k8s-node02 1 ELK 概念 ELK是Elasticsearch.Logst

Nginx容器日志收集方案fluentd+elasticsearch+kilbana

容器技术在发展到今天已经是相当的成熟,但容器不同于虚拟机,我们在使用容器的同时也有很多相关的技术问题需要解决,比如:容器性能监控,数据持久化,日志监控与分析等.我们不能像平时使用虚拟机一样来管理容器,本文我将给大家带来fluentd+elasticsearch+kilbana容器日志收集方案. 我们将通过容器的fluentd日志驱动将系统内产生的日志发送给fluentd服务端,再过来fluentd服务端处理所有容器发送过来的日志,再转发到elasticsearch,最后通过kilbana来展示和

ELK+kafka收集 Nginx与tomcat日志

ELK日志收集 ELK原理与介绍为什么用到ELK:一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办.如何多维度查询.需要集中化的日志管理,所有服务器上的日志收集汇总.常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问.一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定

ELK如何收集并用grok格式化MySQL的slow日志?

前言 需求说明 用ELK收集MySQL的慢查询日志信息,并且使用grok插件将日志信息格式化为json格式. 部署安排 test101--10.0.0.101--部署MySQL.filebeattest102--10.0.0.102--部署elasticsearch.kibanatest103--10.0.0.103--部署logstash 实验环境版本 系统版本:centos7.3MySQL版本: 本次测试两个版本MySQL1.yum安装的mariadb(Server version: 5.5

Kubernetes运维之使用ELK Stack收集K8S平台日志

kubernetes运维之使用elk Stack收集k8s平台日志目录: 收集哪些日志 elk Stack日志方案 容器中的日志怎么收集 k8S平台中应用日志收集 一.收集哪些日志 ? k8s系统的组件日志 比如kubectl get cs下面的组件 master节点上的controller-manager,scheduler,apiservernode节点上的kubelet,kube-proxy? k8s Cluster里面部署的应用程序日志 标准输出 日志文件elk Stack日志方案,改怎

日志系统之基于flume收集docker容器日志

最近我在日志收集的功能中加入了对docker容器日志的支持.这篇文章简单谈谈策略选择和处理方式. 关于docker的容器日志 docker 我就不多说了,这两年火得发烫.最近我也正在把日志系统的一些组件往docker里部署.很显然,组件跑在容器里之后很多东西都会受到容器的制约,比如日志文件就是其中之一. 当一个组件部署到docker中时,你可以通过如下命令在标准输出流(命令行)中查看这个组件的日志: docker logs ${containerName} 日志形如: 但这种方式并不能让你实时获

Tomcat容器日志收集方案fluentd+elasticsearch+kilbana

在上一遍博文中我们介绍了Nginx容器访问日志收集的方案,我们使用EFK的架构来完成对容器日志内应用日志的收集,如果不知道什么是EFK架构,那么请访问以下链接获取相关的帮助 Nginx容器日志收集方案fluentd+elasticsearch+kilbana 如果你已经认真阅读了上面的链接,并撑握了其用法,那么再来看本博文(针对于初学者),下面假设我们已经搭建好了上一讲所需要的基础环境,我们接下来就直接开始步入正题. 在步入正题之前我们首先需要确认我们需要完成的目标与效果,同样我们在启动Tomc

Oracle 通过ADR工具 收集ORA-600错误信息

 问题描述: 2014-06-10 在点检数据库预警文件时,出现Ora -00600 错误,并且Rman L1 备份失败,查询相关资料,得知是Bug:9835218.于是,提SR寻求Oracle 官方技术支持. Oracle回复如下: Your Service Request has been submitted as anORA-600/ORA-7445 issue based on the problem type you chose when logging the SR. Additio