zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Spring RestController @RequestParam 中的 required=false 参数
    unity中动画状态机(Animator)介绍
    unity音效
    unity2019中播放动画循环
    unity2019自定义天空盒
    unity脚本物体移动,旋转,属性可见性
    选择排序
    es 深度分页查询
    windows关闭防火墙和病毒程序软件步骤
    信息整理
  • 原文地址:https://www.cnblogs.com/Python-K8S/p/14335361.html
Copyright © 2011-2022 走看看