docker虚拟化下的ELK日志体系

docker虚拟化下的ELK日志体系

这个是未使用docker虚拟化的ELK技术文档,如果有需要的小伙伴请参考https://blog.csdn.net/qq_43891456/article/details/102234103

先简单的介绍一下ELK体系
在这里插入图片描述在这里插入图片描述
ELK的应用场景

我们一般获取日志文件直接从服务的日志目录里面获取,但是如果我们的服务体系比较大的情况下,这样的获取方式效率低,重复性高,面临的问题包括日志量太大如何归档,文本搜索太慢,如何集中化管理日志文件,这时候我们的ELK服务完全能解决我的这些问题,可以实现图像化查看日志,日志汇总,集中化管理

我们用到的方案

Filebeat(采集)–>Logstash(聚合、处理)–>ElasticSearch(存储)–>Kibana(展示)

ELK组件组成

  1. filebeat:和logstash一样属于日志收集处理工具,与logstash相比,filebeat更加轻量,占用资源更少,进行日志收集交给logstash进行处理
  2. logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用,logstash通过iter模块进行日志过滤变成指定的格式交给es
  3. elasticsearch日志存储和搜索引擎,它的特点有:分布式,高性能,高可用,可伸缩的实时搜索和分析引擎 ,es进行存储然后给每个字段加入索引方便查找
  4. kibana也是一个开源和免费的工具,kibana可以为logstash和elasticsearch提供的日志分析友好的web界面,

日志系统的三个基本组件:

  1. 采集端:agent(采集日志数据,封装数据源,将数据源中的数据发送给collector)
  2. 聚合端:collector(按一定规则进行数据处理,接收多个agent的数据,并进行汇总后导入后端的host中)
  3. 存储端:store(日志存储系统,应该具有可扩展性和可靠性,如HDFS、ES等)

实验环境

只需要一台还有docker环境的服务器,

官方文档
https://elk-docker.readthedocs.io/

On Linux, you can increase the limits by running the following command as root:

sysctl -w vm.max_map_count=262144

To set this value permanently, update the vm.max_map_count setting in /etc/sysctl.conf.添加 

vm.max_map_count=262144

To verify after rebooting, run sysctl vm.max_map_count.

下载ELK环境:只能在docker容器中使用。

[root@localhost ~]# docker pull sebp/elk
  • 1

生成elk容器并开始端口映射

[root@localhost vm]# docker run  -p 5601:5601 -p 9200:9200 -p 5044:5044 -itd  -e ES_HEAP_SIZE="2g" -e LS_HEAP_SIZE="1g" --name elk sebp/elk
30f4c18fc6e724b1c8cda814e64cec00257807aedac1943f596ec17e9905214a
  • 1
  • 2

5601:kibana端口
9200:ES端口
5044:logstash端口

访问kibana

[root@localhost ~]# firefox 192.168.43.234:5601
  • 1

在这里插入图片描述
这个目录表示容器的日志存放位置(/var/lib/docker/containers//.log)

[root@bogon ~]# cat /var/lib/docker/containers/0cecca93cb61657de8838efef07ec84fb326049b5aa04c1c44bbd326155ba87a/0cecca93cb61657de8838efef07ec84fb326049b5aa04c1c44bbd326155ba87a-json.log
  • 1

采集日志需要安装Filebeat
在这里插入图片描述在这里插入图片描述在这里插入图片描述
下载中

[root@bogon ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-x86_64.rpm
  • 1

在这里插入图片描述
rpm方式安装

[root@localhost ~]# rpm -vi filebeat-7.2.0-x86_64.rpm
  • 1

filebeat配置文件,并修改ES、kibana、logseach的IP端口,IP地址写安装ELK的主机地址:

[root@bogon ~]# vim /etc/filebeat/filebeat.yml
24   enabled: true	(修改)
28     - /var/lib/docker/containers/*/*.log	(添加)
29     - /var/log/messages/*.log		(添加)
126   host: "192.168.43.234:5601" 	(添加)本地IP
152   hosts: ["192.168.43.234:9200"]	(修改)本地IP
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述在这里插入图片描述在这里插入图片描述
启用和配置elasticsearch模块

[root@bogon ~]# filebeat modules enable elasticsearch
  • 1

开启Filebeat

[root@bogon ~]# filebeat setup
[root@bogon ~]# systemctl start filebeat
  • 1
  • 2

在这里插入图片描述
然后去http://192.168.43.234:5601/app/kibana#/home/tutorial/elasticsearchLogs?_g=()页面验证进行最后的安装

在这里插入图片描述
进入页面,验证效果
在这里插入图片描述

[root@bogon ~]# docker  run  busybox sh -c 'while true; do echo "This is a log maessage from container busybox bu lds!!"; sleep 10; done;'
  • 1

在这里插入图片描述在这里插入图片描述

原文地址:https://www.cnblogs.com/Python-K8S/p/14335361.html