zoukankan      html  css  js  c++  java
  • ELK 搭建

    ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
    Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
    Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
    Kibana: web化接口用作查寻和可视化日志;

    5601 kibana
    5044 Logstash
    9200 es

    操作0,分别搭建

    解决 x-pack 问题(安全的)
    echo "network.host: 0.0.0.0
    xpack:
    ml.enabled: false
    monitoring.enabled: false
    security.enabled: false
    watcher.enabled: false
    " >>elasticsearch.yml

    分别 pull 镜像

    docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.3
    docker pull docker.elastic.co/logstash/logstash:6.4.3
    docker pull docker.elastic.co/kibana/kibana:6.4.3

    创建文件

    运行

    docker run --rm -it -p 9200:9200 -p 9300:9300 -v "$PWD"/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.4.3
    docker run --rm -it -v "$PWD"/logstash/pipeline/:/usr/share/logstash/pipeline/ -v "$PWD"/logstash/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:6.4.3 # 在输入中:输入的日志文件使用/usr/share/logstash/pipeline/logs/test.log,只需将日志文件放入pipeline/logs/下,或者手动映射进容器即可。另外输入文件路径支持模糊匹配。在过滤器中定义了去掉消息中的换号符号,以及定义了消息格式。这里的消息格式自定义方法参阅:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.html
    docker run --rm -it -p 5601:5601 -v "$PWD"/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.4.3

    创建文件

    echo "config:
    reload:
    automatic: true
    interval: 3s
    xpack:
    management.enabled: false
    monitoring.enabled: false
    "> logstash/config/logstash.yml

    echo "- pipeline.id: test
    path.config: "/usr/share/logstash/pipeline/logstash-test.conf"
    "> logstash/config/pipelines.yml

    echo "input {
    file {
    path => ["/usr/share/logstash/pipeline/logs/test.log"]
    start_position => "beginning"
    }
    }

    filter {
    mutate {
    gsub => ["message", " ", ""]
    }
    dissect {
    mapping => {"message" => "%{date} %{+date} [%{task} %{+task}] [%{type}] %{class} - %{info}"}
    }
    }

    output {
    elasticsearch { hosts => ["127.0.0.1:9200"] }
    stdout { codec => rubydebug }
    } "> logstash/pipeline/logstash-test.conf.yml

    mkdir -p kibana/config
    echo "server.host: "0.0.0.0"
    elasticsearch.url: http://127.0.0.1:9200
    xpack:
    apm.ui.enabled: false
    graph.enabled: false
    ml.enabled: false
    monitoring.enabled: false
    reporting.enabled: false
    security.enabled: false
    grokdebugger.enabled: false
    searchprofiler.enabled: false
    ">kibana/config/kibana.yml

    问题

    启动es报错

    操作1,现成版

    下载镜像

    运行容器
    docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m -it --name elk sebp/elk

    运行成功

    进入交互模式

    FAQ

    1. [2019-04-08T10:39:19,982][ERROR][o.e.b.Bootstrap ] [bh2HKsP] node validation exception
      [1] bootstrap checks failed
      [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
      [2019-04-08T10:39:20,005][INFO ][o.e.n.Node ] [bh2HKsP] stopping ...
      [2019-04-08T10:39:20,059][INFO ][o.e.n.Node ] [bh2HKsP] stopped
      [2019-04-08T10:39:20,059][INFO ][o.e.n.Node ] [bh2HKsP] closing ...
      [2019-04-08T10:39:20,077][INFO ][o.e.n.Node ] [bh2HKsP] closed

    解决:调整参数即可

    1. sysctl: setting key "vm.max_map_count": Read-only file system
      解决:https://blog.csdn.net/Gamer_gyt/article/details/52960941

    修改宿主机本身的配置文件,然后重新启动镜像,也能解决问题,退出容器,返回到宿主机
    修改vm.max_map_count 可以通过命令行修改,但是在机器重启时会失效,所以通过修改配置文件来解决问题
    命令行修改办法:

    sudo sysctl -w vm.max_map_count=655360

    并用以下命令查看是否修改成功

    sysctl -a | grep “vm.max_map_count”

    修改配置文件:

    sudo vim /etc/sysctl.conf

    加入:

    vm.max_map_count=262144

    保存即可

    接下来解决

    max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

    这个问题

    sudo vim /etc/security/limits.conf

    加入以下两行:

    redhat hard nofile 65536
    redhat soft nofile 65536
    1
    2
    redhat这里为用户名

    然后重启启动elasticsearch即可

    参考

    【原生推荐】在 CentOS7 安装 ELK
    http://www.cnblogs.com/cheesebar/p/9126171.html
    【docker 推荐】基于Docker的ELK日志平台搭建
    https://www.cnblogs.com/devinzhang/p/6962404.html

    【docker 推荐,10分钟搭建 ok】使用Docker安装ELK系列(超简单)
    https://www.cnblogs.com/hackyo/p/9951684.html

    【9.5分,拿来即用】Docker ElK安装部署使用教程
    https://www.cnblogs.com/soar1688/p/6849183.html

    Go!!!
  • 相关阅读:
    C# 不用添加WebService引用,调用WebService方法
    贪心 & 动态规划
    trie树 讲解 (转载)
    poj 2151 Check the difficulty of problems (检查问题的难度)
    poj 2513 Colored Sticks 彩色棒
    poj1442 Black Box 栈和优先队列
    啦啦啦
    poj 1265 Area(pick定理)
    poj 2418 Hardwood Species (trie树)
    poj 1836 Alignment 排队
  • 原文地址:https://www.cnblogs.com/shliujing/p/ELK-da-jian.html
Copyright © 2011-2022 走看看