zoukankan      html  css  js  c++  java
  • ELK日志管理

    1. ELK简介

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

    1ElasticSearch

      (弹性搜索)一个分布式搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,自动发现,索引自动分片,索引副本机制,多数据源,自动搜索负责等功能。

    2Logstash

      (日志存储)部署在产生日志的应用服务器上,用于收集日志。是一个开源工具,可以对日子进行收集,过滤,分析,并将其存储以后使用(比如搜索)。

    3Kibana

      (日志信息web 展示)是一个基于浏览器的ElasticSearch 的前段展示工具,也是一个开源和免费的工具,可以为ElasticSearch 和Logstash 提供的日志分析进行友好的Web 界面,可以汇总,分析,搜索重要的数据日志。

     

    Elastic 官网:https://www.elastic.co/cn/

     

    2. 安装elasticsearch

    准备node1 和node2

    1> node1 节点:

    1安装gpgkey

    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

    2配置源

    vim /etc/yum.repos.d/elasticsearch.repo
    [elasticsearch-2.x]
    name=Elasticsearch repository for 2.x packages
    baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
    gpgcheck=1
    gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    yum makecache

    3安装

    yum install elasticsearch nginx java -y
    java -version
    openjdk version "1.8.0_212"
    OpenJDK Runtime Environment (build 1.8.0_212-b04)
    OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

    4创建日志存储文件

    mkdir -p /data/es-data

    5编辑主配置文件

    vim /etc/elasticsearch/elasticsearch.yml
    cluster.name: my-application               #判别节点是否是统一集群
    node.name: node-1                          #节点名称,建议和主机名一致
    path.data: /data/es-data                   #数据存放的路径
    path.logs: /var/log/elasticsearch          #日志存放的路径
    bootstrap.memory_lock: true                #锁住内存,不被使用到交换分区
    network.host: 0.0.0.0                      #允许访问的ip
    http.port: 9200                            #端口

    6数据目录授权

    mkdir -p /data/es-data
    chown -R elasticsearch.elasticsearch /data/
    vim /etc/sysctl.conf
    vm.max_map_count=655360
    sysctl -p
    vim /etc/security/limits.conf
    * soft nofile 655350
    * hard nofile 655350
    * soft nproc 4096
    * hard nproc 4096

    7启动elasticsearch.service

    systemctl start elasticsearch.service
    systemctl enable elasticsearch.service
    netstat -anlp | egrep '(9200|9300)'

    8)通过web 界面查看elasticsearch 集群状态

    /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
    chown -R elasticsearch.elasticsearch /usr/share/elasticsearch//plugins
    systemctl restart elasticsearch.service

    9)授权

    /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
    chown -R elasticsearch.elasticsearch /usr/share/elasticsearch//plugins
    systemctl restart elasticsearch.service

    2> node2

    1) 编辑主配置文件

    vim /etc/elasticsearch/elasticsearch.yml
    cluster.name: my-application                         #判别节点是否是统一集群
    node.name: node-1                                    #节点名称,建议和主机名一致
    path.data: /data/es-data                             #数据存放的路径
    path.logs: /var/log/elasticsearch                    #日志存放的路径
    bootstrap.memory_lock: true                          #锁住内存,不被使用到交换分区
    network.host: 0.0.0.0                                #允许访问的ip
    http.port: 9200                                      #端口
    discovery.zen.ping.multicast.enabled: false          #关闭多播
    discovery.zen.ping.unicast.hosts: ["node1", "node2"] #写地址

    3> web 页面测试

    http://192.168.210.131:9200/_plugin/head/
    http://192.168.210.130:9200/_plugin/head/
    集群健康值: green (0 of 0)
    http://192.168.210.131:9200/_plugin/kopf/#!/cluster
    http://192.168.210.130:9200/_plugin/kopf/#!/cluster

    3. 安装logstach

    1> node1 node2 均执行:

    rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    vim /etc/yum.repos.d/logstash.repo
    [logstash-2.1]
    name=Logstash repository for 2.1.x packages
    baseurl=http://packages.elastic.co/logstash/2.1/centos
    gpgcheck=1
    gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    yum install -y logstash

    2> logstach 数据收集

    1) 命令行单行操作

    (1)格式:/opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{} }'

    在交互终端可以输入内容,ctrl+c 退出

    (2)格式:/opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } }'

    在交互终端可以输入内容,ctrl+c 退出

    ( 3 ) 格式: /opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearc{ hosts =>

    ["192.168.210.131:9200"] } }'

    在交互终端可以输入内容,ctrl+c 退出

    ( 4 ) 格式: /opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts =>

    ["192.168.210.131:9200"] } stdout { codec => rubydebug } }'

    在交互终端可以输入内容,ctrl+c 退出

    2> Logstach 的配置文件和文件编写

    配置手册地址:https://www.elastic.co/guide/en/logstash/current/configuration.html

    (1)使用logstash 启动一个配置文件,会在elasticsearch 中写一份

    vim /etc/logstash/conf.d/01-logstash.conf
    input { stdin { } }
    output {
    elasticsearch { hosts => ["192.168.210.131:9200"] }
    stdout { codec => rubydebug }
    }
    /opt/logstash/bin/logstash -f /etc/logstash/conf.d/01-logstash.conf

    (2)编写conf,从日志文件收取日志

    vim /etc/logstash/conf.d/system.conf
    input {
    file {
    path => "/var/log/messages"
    type => "systemlog"
    start_position => "beginning"
    }
    }
    output {
    elasticsearch {
    hosts => ["192.168.210.131:9200"]
    index => "system-%{+YYYY.MM.dd}"
    }
    }
    /opt/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf &

    (3)收集多个日志

    vim /etc/logstash/conf.d/all.conf
    input {
    file {
    path => "/var/log/messages"
    type => "system"
    start_position => "beginning"
    }
    file {
    path => "/var/log/elasticsearch/my-application.log"
    type => "es-error"
    start_position => "beginning"
    }
    }
    output {
    if [type] == "system" {
    elasticsearch {
    hosts => ["192.168.210.131:9200"]
    index => "system-%{+YYYY.MM.dd}"
    }
    }
    if [type] == "es-error" {
    elasticsearch {
    hosts => ["192.168.210.131:9200"]
    index => "es-error-%{+YYYY.MM.dd}"
    }
    }
    }
    /opt/logstash/bin/logstash -f /etc/logstash/conf.d/all.conf

    (4)模块总结

    stdin,stdout,syslog,tcp,udp,rubuydebug,multline

    目前项目中使用的是elasticsearch-1.5.1 版本,使用到的插件如下:

    1> hq 监控,管理elasticsearch 集群以及通过web 界面来进行查询操作

      项目地址:https://github.com/royrusso/elasticsearch-HQ

    2> analysis-ik ik 分词器,中文分词

      项目地址:https://github.com/medcl/elasticsearch-analysis-ik

    3> bigdesk 统计分析和图表化elasticsearch 集群状态信息

      项目地址:https://github.com/lukas-vlcek/bigdesk

    4> head 最实用的通过web 界面来查看elasticsearch 集群状态信息

      项目地址:https://github.com/mobz/elasticsearch-head

    5>  inquisitor 一个帮助调试查询语句细节的工具

      项目地址:https://github.com/polyfractal/elasticsearch-inquisitor

    6> marvel 超赞的一个通过json 查询的工具,可惜是收费项目,非开源

      项目地址:https://www.elastic.co/downloads/marvel

    7> sql 一款国人写的通过类似sql 语法进行查询的工具

      项目地址:https://github.com/NLPchina/elasticsearch-sql

    8> kopf 一个通过web 界面来管理和监控elasticsearch 集群状态信息

    4. kibaba 部署

    1>下载二进制安装包:

    wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz

    2>

    tar zxf kibana-4.3.1-linux-x64.tar.gz -C /opt/

    3>

    ln -s /opt/kibana-4.3.1-linux-x64 /opt/kibana

    4>

    cp /opt/kibana/config/kibana.yml kibana.yml.bak

    5>

    vim kibana.yml
    server.port: 5601 kibana                         #端口
    server.host: "0.0.0.0"                           #对外服务的主机
    elasticsearch.url: "http://192.168.56.11:9200"   #和elasticsearch 练习
    kibana.index: ".kibana                           #在elasticsearch 中添加.kibana 索引

    6> 安装屏风软件

    yum install -y screen

    7> 开启屏风窗口,并启动kibana 程序

    screen
    /opt/kibana/bin/kibana

      显示开启打开的屏风:screen -ls

      进入开启打开的屏风:screen -r id

      推出开启打开的屏风:crtl +a+d

      关闭开启打开的屏风:screen -X -S id quit

    8> 使用kibana-web

      http://192.168.16.95:5601

      创建索引,填入elasticserach 中设为type 的,注意要在后面+*

      点击discover 搜索显示内容,在选择last 选择查看的时间

      筛选message 关键字的日子

  • 相关阅读:
    学习方式的反省
    我又辞职了!
    mysql完全备份,增量备份及恢复脚本
    marquee.js jQuery 多功能无缝滚动插件
    ul与li应用样式及其兼容性
    闲谈 JavaScript 之事件绑定(转载自万戈)
    JavaScript 中万变不离其宗的 this 应用场景
    ScrollUp – 超轻量的可定制的回到顶部 jQuery 插件
    jQuery之Tab切换代码改进
    jQuery Unveil – 另一款非常轻量的延迟加载插件
  • 原文地址:https://www.cnblogs.com/ajunyu/p/11286897.html
Copyright © 2011-2022 走看看