zoukankan      html  css  js  c++  java
  • 搭建可视化日志分析平台ELK

    https://blog.csdn.net/wangkai_123456/article/details/84796903

     https://blog.csdn.net/qq942477618/article/details/52951011?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    https://blog.csdn.net/weixin_34727238/article/details/81200071

    https://www.cnblogs.com/lhxsoft/p/12206571.html

    https://www.elastic.co/cn/downloads/kibana

    https://www.kancloud.cn/hanxt/elk/158471

    ELK是什么

    E=ElasticSearch,一款基于Lucene的分布式搜索引擎;
    L=LogStash, 一款分布式日志收集系统,支持多输入源,并内置一些过滤操作,支持多输入元;
    K=Kibana, 一款配合ElasticSearch的web可视化界面,内置非常各种查询,聚合操作,并拥有漂亮的图形化展示功能。

    为什么要用ELK

    在实际应用中,我们的日志是非常重要的,它通常会记录一些比较重要的信息,如应用程序的log记录的error,warn级别的log,通常在量小的情况下,我们可以直接vi/vim/notepad++等定位原因,在量大的时候,这种方式就捉襟见肘了,而且我们还要各种聚合,或者基于多个异常关键词的搜索,并有且,或,交,并,差,补,排序等一些操作,而且相应速度必须给力,如果线上环境出了故障,能够立刻准确定位,ELK就是高手,在百万大军中取上将首级,犹如探囊取物,所以这时候ELK就非常适合了,当然除此之外,ELK也经常在运维工作中大放光彩,在应用级别的实时监控,非常适合一些重要核心服务的预警。

    ELK如何安装搭建

    环境:
    Linux系统:Centos7
    Java版本:JDK1.8
    ELK均为最新版本:
    在这里插入图片描述

    ElasticSearch 安装

    一、下载Elasticsearch源码

    https://www.elastic.co/cn/downloads/elasticsearch

    二、安装

    1、将下载的二进制包移动到/usr/local目录下,解压缩文件包
    tar zxvf elasticsearch-6.5.0.tar.gz

    三、Elasticsearch配置

    1、进入解压的logstash目录/usr/local/elasticsearch-6.5.0/config,修改配置文件elasticsearch.yml,主要修改 Paths 和 Network 两部分。

    2、配置操作系统vm.max_map_count参数,请使用root用户登录系统,执行以下命令
    sysctl -w vm.max_map_count=655360
    注:vm.max_map_count参数的值至少要设置大于等于262144

    四、新增运行Elasticsearch的用户

    1、创建elsearch用户组及elsearch用户
    groupadd elsearch
    useradd elsearch -g elsearch -p elasticsearch

    2、更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
    cd /usr/local/
    chown -R elsearch:elsearch elasticsearch-6.5.0

    cd /data
    chown -R elsearch:elsearch elasticsearch

    3、切换到elsearch用户再启动
    su elsearch
    cd /usr/local/elasticsearch-6.5.0/bin/
    ./elasticsearch -d

    五、检查Elasticsearch安装是否成功

    打开浏览器,输入地址 http://10.62.124.43:9200 出现以下内容则表示安装成功
    {
    “name” : “jYXkdwS”,
    “cluster_name” : “elasticsearch”,
    “cluster_uuid” : “cr_Rj_nxRnywb0warF7tFw”,
    “version” : {
    “number” : “6.5.0”,
    “build_flavor” : “default”,
    “build_type” : “tar”,
    “build_hash” : “816e6f6”,
    “build_date” : “2018-11-09T18:58:36.352602Z”,
    “build_snapshot” : false,
    “lucene_version” : “7.5.0”,
    “minimum_wire_compatibility_version” : “5.6.0”,
    “minimum_index_compatibility_version” : “5.0.0”
    },
    “tagline” : “You Know, for Search”
    }

    LogStash安装

    一、下载Logstash源码

    https://www.elastic.co/downloads/logstash

    二、安装

    1、将下载的二进制包移动到/usr/local目录下,解压缩文件包
    tar zxvf logstash-6.4.2.tar.gz

    三、logstash配置
    1、进入解压的logstash目录/usr/local/logstash-6.4.2/config,基于模板新建配置文件mongod-logstash.conf
    cp logstash-sample.conf mongod-logstash.conf

    2、input配置(一个服务器节点多个不同日志文件输出到多个不同的索引中)
    input {
    file {
    path => “/data/log_mongos/mongos.log”
    type => “26_mongoslog”
    }
    file {
    path => “/data/log/configsvr.log”
    type => “configsvr_26_mongodlog”
    }
    file {
    path => “/data/rs1/log/mongodb.log”
    type => “rs1_26_mongodlog”
    }
    beats {
    port => 5044
    }
    }

    3、filter配置
    filter {
    grok {
    match => [“message”,"%{TIMESTAMP_ISO8601:timestamp}s+%{MONGO3_SEVERITY:severity}s+%{MONGO3_COMPONENT:component}s+(?:[%{DATA:context}])?s+%{GREEDYDATA:body}"]
    }
    if [body] =~ “ms$” {
    grok {
    match => [“body”,"%{WORD:command_action}s+%{WORD:db_name}.$?%{WORD:collection_name}s+%{GREEDYDATA:command_content}s+%{NUMBER:spend_time:int}ms"]
    }
    }
    date {
    match => [ “timestamp”, “UNIX”, “YYYY-MM-dd HH:mm:ss”, “ISO8601”]
    remove_field => [ “timestamp” ]
    }
    }

    4、output配置
    output {
    if [type] == “26_mongoslog” {
    elasticsearch {
    user => logstash
    password => logstash
    hosts => [“https://es1:9200”,“https://es2:9200”]
    ssl => true
    ssl_certificate_verification => true
    cacert => “/usr/local/logstash-6.4.2/config/root-ca.pem”
    index => “logstash-26_mongoslog”
    }
    }
    if [type] == “configsvr_26_mongodlog” {
    elasticsearch {
    user => logstash
    password => logstash
    hosts => [“https://es1:9200”,“https://es2:9200”]
    ssl => true
    ssl_certificate_verification => true
    cacert => “/usr/local/logstash-6.4.2/config/root-ca.pem”
    index => “logstash-configsvr_26_mongodlog”
    }
    }
    if [type] == “rs1_26_mongodlog” {
    elasticsearch {
    user => logstash
    password => logstash
    hosts => [“https://es1:9200”,“https://es2:9200”]
    ssl => true
    ssl_certificate_verification => true
    cacert => “/usr/local/logstash-6.4.2/config/root-ca.pem”
    index => “logstash-rs1_26_mongodlog”
    }
    }
    }

    三、启动

    为了可以自动检测配置文件的变动和自动重新加载配置文件,需要在启动的时候使用以下命令:

    ./bin/logstash -f config/mongod-logstash.conf --config.reload.automatic
    
    • 1

    默认检测配置文件的间隔时间是3秒,可以通过以下命令改变

    --config.reload.interval <second>
    
    • 1

    如果已经运行了没有提供自动重启的logstash,可以发送一个挂起命令给logstash重新加载配置文件:

    kill -1 <pid>
    
    • 1

    Kibana安装

    一、下载Kibana源码

    https://www.elastic.co/cn/downloads/kibana

    二、安装

    1、将下载的二进制包移动到/usr/local目录下,解压缩文件包
    tar zxvf kibana-6.5.0-linux-x86_64.tar.gz

    三、Kibana配置

    1、进入解压的logstash目录/usr/local/kibana-6.5.0-linux-x86_64/config,修改配置文件kibana.yml
    #设置server.host
    server.host: “10.62.124.25”

    #设置elasticsearch.url
    elasticsearch.url: “http://10.62.124.25:9200”

    2、系统防火墙开放5601端口
    firewall-cmd --zone=public --add-port=5601/tcp --permanent
    firewall-cmd --reload

    四、启动Kibana

    cd /usr/local/kibana-6.5.0-linux-x86_64/bin
    nohup ./kibana & //后台启动

    至此,可视化日志查询分析系统平台ELK搭建完成!
    #停止kibana

    netstat -anltp|grep 5601
    kill -9 进程号
    
    • 1
    • 2

    附kibana启动后的一些警告信息记录以及解决方法

    1、发现的第一个警告信息

    server log [06:55:25.594] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey.
                       To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
    根据提示,在配置文件kibana.yml中添加【xpack.reporting.encryptionKey】属性:

    xpack.reporting.encryptionKey: “a_random_string”
    官方文档:https://www.elastic.co/guide/en/kibana/current/reporting-settings-kb.html

    2、发现的第二个警告信息
    server log [06:55:25.686] [warning][security] Generating a random key for xpack.security.encryptionKey.
                        To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
    根据提示,在配置文件kibana.yml中添加【xpack.security.encryptionKey】属性:

    xpack.security.encryptionKey: “something_at_least_32_characters”
    官方文档:https://www.elastic.co/guide/en/kibana/6.x/using-kibana-with-security.html

  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/zhoading/p/13439291.html
Copyright © 2011-2022 走看看