利用 ELK 搭建 Docker 容器化应用日志中心

利用 ELK 搭建 Docker 容器化应用日志中心

概述

应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析。典型的比如SpringBoot应用的日志收集。

本文即将阐述如何利用ELK日志中心来收集容器化应用程序所产生的日志,并且可以用可视化的方式对日志进行查询与分析,其架构如下图所示:

架构图

镜像准备

  • ElasticSearch镜像
  • Logstash镜像
  • Kibana镜像
  • Nginx镜像(作为容器化应用来生产日志)

开启Linux系统Rsyslog服务

修改Rsyslog服务配置文件:
vim /etc/rsyslog.conf

开启下面三个参数:

$ModLoad imtcp
$InputTCPServerRun 514

*.* @@localhost:4560

开启3个参数

意图很简单:让Rsyslog加载imtcp模块并监听514端口,然后将Rsyslog中收集的数据转发到本地4560端口!

然后重启Rsyslog服务:

systemctl restart rsyslog

查看rsyslog启动状态:

netstat -tnl

部署ElasticSearch服务

docker run -d  -p 9200:9200 -v ~/elasticsearch/data:/usr/share/elasticsearch/data --name elasticsearch elasticsearch

部署Logstash服务

添加 ~/logstash/logstash.conf 配置文件如下:

input {
 syslog {
   type => "rsyslog"
   port => 4560
 }
}

output {
 elasticsearch {
   hosts => [ "elasticsearch:9200" ]
 }
}

配置中我们让Logstash从本地的Rsyslog服务中取出应用日志数据,然后转发到ElasticSearch数据库中!

配置完成以后,可以通过如下命令来启动Logstash容器:

docker run -d -p 4560:4560 -v ~/logstash/logstash.conf:/etc/logstash.conf --link elasticsearch:elasticsearch --name logstash logstash logstash -f /etc/logstash.conf

部署Kibana服务

docker run -d -p 5601:5601 --link elasticsearch:elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 --name kibana kibana

启动nginx容器来生产日志

docker run -d -p 90:80 --log-driver syslog --log-opt syslog-address=tcp://localhost:514 --log-opt tag="nginx" --name nginx nginx

很明显Docker容器中的Nginx应用日志转发到本地syslog服务中,然后由syslog服务将数据转给Logstash进行收集。

至此,日志中心搭建完毕,目前一共四个容器在工作:

实验验证

  • 浏览器打开 localhost:90 来打开Nginx界面,并刷新几次,让后台产生GET请求的日志
  • 打开 Kibana 可视化界面:localhost:5601

  • 收集 Nginx 应用日志

  • 查询应用日志

在查询框中输入program=nginx可查询出特定日志

原文地址:https://www.cnblogs.com/Dev0ps/p/9388934.html

时间: 2024-08-08 13:55:04

利用 ELK 搭建 Docker 容器化应用日志中心的相关文章

CentOS7下使用Docker容器化.net Core 2.2

原文:CentOS7下使用Docker容器化.net Core 2.2 一.使用 yum 安装(CentOS 7下) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 二.安装 Docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Dock

一看就懂-Docker容器化

一.Docker简介 1.1 什么是docker docker的英文意思是 码头工人,意思就是搬运东西的意思,其实这和docker的特点是一样的,docker提供的就是一种容器化搬运东西(我们的软件.程序)的过程.docker自己本来是运行在操作系统上一个程序软件,它会提供一个容器环境,使我们的程序独立地运行在容器中,所以说,官方给docker起的这个名字也真是应景. 就连图标也是这么生动形象,富有诗意,让人浮想联翩....(这是去幼儿园的车,还没有拐进大学城) 试想下边这样一个场景:当我们把我

Gitlab+Harbor+Jenkins pipeline实现利用tag部署docker容器

环境 测试部署主机IP:192.168.1.1 Jenkins主机IP:192.168.1.2 Harbor主机IP:192.168.1.3 Gitlab主机IP:192.168.0.10 系统信息: 系统:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Docker版本:18.09 docker-compose版本:1.23.1 有道笔记原文,为了防止复制粘贴出来的代码格式有误~~~~ 所有主机的Docker安装方式 wget -O /etc/yum.repo

初探 ELK - 每天5分钟玩转 Docker 容器技术(89)

在开源的日志管理方案中,最出名的莫过于 ELK 了.ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch一个近乎实时查询的全文搜索引擎.Elasticsearch 的设计目标就是要能够处理和搜索巨量的日志数据. Logstash读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如 Elasticsearch)进行索引或存储.Logstash 支持丰富的 Input 和 Output 类型,能够处理各种应用的日志. Kiba

Docker 容器日志的那些事儿

如果时光可以倒流,现实世界的每一步都可以分解到最小,记录下来,就是日志,万物即日志. 面对历史,审视日志,可以选择忘却,也可以选择铭记:经历过的,可以选择珍藏,同样也可以让它尘封. Docker容器又何尝不是?日志就像一根时间轴,你在或者不在,他都在那.有人对其善意,有人却对其随意.如若不信,可以回忆,自己是否善待Docker容器的日志. 1.传统应用的日志 如若不是被过去伤得太深,踏入一个新的世界,应该还是会怀念过往的吧.新世界的"诱惑"与崭新的节奏,相信依旧无法掩盖旧世界的铅印.数

Docker容器日志管理介绍

Docker容器日志分为2类: Docker引擎日志(Docker本身运行的日志). 容器日志,各个容器内产生的日志. Docker引擎日志Centos系统下Docker引擎log一般给systemd管理,可通过 journalctl -u docker.service 命令查看. 容器日志一.查看日志命令docker logs 容器ID 显示当前运行容器的log,输出Linux下的STDOUT(标准输出).STDERR(标准错误输出),docker logs 显示的内容包含STDOUT和STD

深度解析容器化技术在广发证券交易系统的应用【转】

原文链接:http://geek.csdn.net/news/detail/94850 本文是docker落地比较好的实践案例,文中很多地方多可以学习一下,以下是摘录: 为什么要容器化 对传统的垂直行业来讲,Docker也是最近几年才出来的技术,技术理念非常先进,因此采用Docker容器化技术对我们而言需要综合的评估,但是我们为什么要去做呢?首先,从行业现状来说,证券行业一方面量化交易.高频交易.实时风控要求高,其次,行业创新非常多,创新业务也很频繁,另外,监管方面,证监会证监局对我们要求交易事

Docker 容器整合 Spring Boot 应用

在本文中,我们将重点介绍如何对 Spring Boot 应用程序进行 Docker 容器化以在独立的环境(即容器)中运行它. 此外,我们还会展示如何创建容器的集成,它们彼此依赖并在虚拟专用网络中彼此链接.我们还能看到如何通过单个命令进行统一管理. 那么我们先来创建一个运行在 Alpine Linux 的基于 Java 的轻量级基础映像. 基础镜像构建 我们将使用 Docker 独有的编译文件格式: Dockerfile. Dockerfile 是一个面向行的批处理文件,包含建立一个镜像的命令.将

PPT下载 | 亿级用户万台服务器背后,vivo云服务容器化如何破茧化蝶?

2018年数人云Meetup第一站,联合vivo在深圳举办 Building Microservice 系列活动第一期.本次技术沙龙vivo.中兴通讯.华为.数人云共同派出技术大咖,为开发者们带来有关微服务.容器化.配置中心.服务网格等领域的实战与干货分享. 数人云Meetup每月一期,欢迎大家来面基.学习.本文为vivo云计算架构师袁乐林分享的"vivo云服务容器化实践"现场演讲实录. 今天讲的内容主要是介绍技术背景,产品的技术架构,我们关键技术的实践,前车之鉴,以及对下一代云服务架