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

  • 相关阅读:
    python使用Flask作为MockServer的方法
    Springboot提示数据库连接问题Connection is not available
    python解析FreeMind和XMind思维导图
    java操作对比两个字符串,将差异数据提取出来
    CronExpression表达式详解和案例
    Jquery.Datatables dom表格定位 (转)
    Flask 之 WebSocket
    基于WebSocket的简易聊天室
    Flask 之 宏
    Flask 之 蓝图
  • 原文地址:https://www.cnblogs.com/zhoading/p/13439291.html
Copyright © 2011-2022 走看看