• Docker安装及安装单机版ELK日志收集系统


    Docker安装单机版ELK日志收集系统

    概述

    现在Elasticsearch是比较火的, 很多公司都在用. 而Docker也正如火如荼, 所以我就使用了Docker来安装ELK, 这里会详细介绍下安装的细节以及需要注意的地方. 先来强调一下, Elasticsearch和Kibana必须用相同版本, 这个可以避免很多坑。

    日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

    开源实时日志分析ELK平台由ElasticSearch、Logstash和Kiabana三个开源工具组成:

    1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。在elasticsearch中,所有节点的数据是均等的。

    2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

    3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

    ELK工作原理展示图:

     

    如上图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。

    ELK环境部署

    CentOS7.8系统上安装docker,并用docker安装ELK单机日志手机系统平台。

    一、准备工作

    1,系统环境

    系统:CentOS7.8

    防火墙:关闭

    Centos7防火墙关闭方法与Centos6的有所区别

    CentOS6关闭防火墙使用以下命令:

    CentOS7中关闭防火墙使用以下命令:

    selinux:关闭

    selinux关闭方式有两种,一种是临时关闭,另一种是永久关闭。

    临时关闭方式:

    永久关闭方式:

    编辑配置文件/etc/selinux/config

    首先执行yum update –y升级操作系统到最新版本,

    [root@docker-srv ~]#cat /etc/redhat-release

    CentOS Linux release 7.8.2003 (Core)

    配置安装docker-ce19.03.11的yum源,

    yum install –y yum-utils device-mapper-persistent-data lvm2

    yum-config-manager

    --add-repo

    https://download.docker.com/linux/centos/docker-ce.repo

    执行yum install docker-ce-19.03.11* -y

    验证安装

    安装完成后,运行下面的命令,验证是否安装成功。

    docker version 

     

    docker info

     

     配置docker加速器

    vi /etc/docker/daemon.json

     

    systemctl daemon-reload

    systemctl restart docker

    systemctl enable docker

    docker安装到此结束!

    1,接下来用docker安装ELK,拉取镜像:

    首先安装elasticsearch

    docker pull elasticsearch:7.6.2

    敲完命令后回车, 只需要等镜像下载完就成了. 一共791MB, 耐心等待.

    2,启动ES

    安装完成以后当然需要去启动了, 启动也很方便, 只需要一行命令即可.

    docker run --name es1 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.6.2

    启动后可以先查看一下,名称自定义!

     

    3. 测试安装

    我们可以去检查ES是否安装完成, 可以输入命令:

    curl http://localhost:9200

     

    注意: 需要关闭防火墙或放行9200端口

    安装Kibana

    Kibana是一个开源的分析和可视化平台, 被设计用于和Elasticsearch一起工作. 我们可以通过Kibana来搜索, 查看, 并和存储在Elasticsearch索引中的数据进行交互, 并轻松地执行高级数据分析, 以各种图标, 表格和地图的形式可视化数据.

    Kibana使得理解大量数据变得很容易. 它简单的, 基于浏览器的界面使你能够快速创建和共享动态仪表板, 实时显示Elasticsearch查询的变化.

    1. 拉取镜像

    同样适用docker安装Kibana命令如下:

    docker pull kibana:7.6.2

    这个比较大, 有1.01GB, 耐心等待…

    2. 启动Kibana

    安装完成以后需要启动Kibana容器, 我们需要使用--link参数将Kibana连接到Elasticsearch容器, 命令如下:

    docker run --name kibana --link es1:elasticsearch -p 5601:5601 -d kibana:7.6.2

    其中, --link es:elasticsearch中的es是Docker中Elasticsearch容器名, 你也可以替换成对应的容器ID.

    3. 配置汉化

    默认情况下, Kibana界面是英文的, 不过Kibana 7中官方加入了中文的选项, 汉化包位置: /usr/share/kibana/x-pack/plugins/translations/translations/zh-CN.json

    我们需要进入Kibana容器, 编辑/usr/share/kibana/config/kibana.yml文件, 在末尾添加i18n.locale: zh-CN即可. 注意冒号后一定要有空格!

    docker exec -it kibana /bin/bash

    cd config/

    vi kibana.yml

    exit

     

    然后重启Kibana

    docker restart kibana

    4. 测试安装

    启动以后可以打开浏览器输入http://你的IP:5601就可以打开Kibana的界面了. 上图

     

    ES的其他设置

    在使用Elasticsearch时, 我们还需要进行一些设置. 例如解决跨域访问和中文分词.

    1. 解决跨域访问

    首先进入到ES容器中, 然后进入到指定目录修改elasticsearch.yml文件

    docker exec -it es /bin/bash

    cd config/

    vi elasticsearch.yml

    在elasticsearch.yml的文件末尾加上

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    修改配置后重启容器即可

    docker restart es1

    2. 安装IK中文分词器

    ES自带的分词器对中文分词不友好, 所以我们下载开源的IK分词器来解决这个问题. 首先进入到plugins目录中下载分词器, 下载完成后解压, 再重启ES即可. 具体步骤如下:

    docker exec -it es /bin/bash

    cd plugins/

    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip

    exit

    Elasticsearch的版本和IK分词器的版本需要保持一致, 不然在重启的时候会失败. 可以点击查看所有版本, 选择合适的版本右键复制链接地址即可.

    然后重启容器, 可以在Kibana界面的dev tools中验证是否安装成功

    安装elasticsearch head插件监控管理

    docker pull mobz/elasticsearch-head:5

    docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

    在浏览器中打开elasticsearch-head页面,填入ElasticSearch地址

     

    安装filebeat+logstash进行日志过滤

    在客户端机器上面安装filebeat

    配置yum源

    cat /etc/yum.repos.d/filebeat.repo

    [filebeat]

    name=Elasticsearch repository for 7.x packages

    baseurl=https://artifacts.elastic.co/packages/7.x/yum

    gpgcheck=0

    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

    enabled=1

    autorefresh=1

    type=rpm-md

    执行yum makecache && yum install filebeat* -y

    vi /etc/filebeat/filebeat.yml

     

     

    systemctl restart filebeat

    docker pull logstash:7.6.2

    docker run -itd --name logstash -p 5044:5044 -v /etc/logstash/config:/usr/share/logstash/config -v /etc/logstash/pipeline:/usr/share/logstash/pipeline logstash:7.6.2

    cat /etc/logstash/config/logstash.conf

     

    最后提醒:线上环境要求持续提供服务,即使在服务器出现问题时,及时修复及时提供服务,比如异常断电宕机,或者重启机器后,所以需要配置docker及各个服务器开机自动启动!

    Docker容器启动时加入--restart=always 就ok啦!

    白驹过隙,当看到比你优秀的人比你还努力的时候,你也会越来越优秀,相信越努力越幸运!

  • 相关阅读:
    有关Backgroundworker
    DataGridView风格设置
    Dev控件GridControl实现CheckBox列和ComBox列
    ALTER PROFILE DEFAULT LIMIT PASS_LIFE_TIME UNLIMITED
    PowerDesigner的Additional Checkes 中使用统配符
    PowerDesigner生成sql脚本时去掉双引号并把字段名设为大写
    PowerDesigner中的域(Domain)的概念及应用
    Oracle Sql中输入特殊字符 转义字符
    机械键盘 按一次字母有时候出来2个
    IE内嵌google chrome frame解决浏览器兼容问题
  • 原文地址:https://www.cnblogs.com/knownfreestyle/p/13224703.html
Copyright © 2020-2023  润新知