• ELK


    一、ELK简介

    Elk是指elasticsearch,logstash,kibana三件套,我们一般使用它们做日志分析 ELK+redis关系

    rsyslog 启动---->logstash
    elasticsearch---logstash---->kibana
    elasticsearch---logstash---->redis

    实时文件存储,每个字段都可被索引

    分布式实时分析搜索引擎

    Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

    Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

    Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

    X-pack 监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装在X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据。

    二、ELK安装部署

    2.1准备环境
    yum update
    Java 1.8 环境
    yum -y install java
    java -version
    yum -y install lrzsz
    2.2安装elasticsearch
    2.2.1官网选择版本下载安装

    官网

    rz elastic
    mkdir /data/server #
    目录建设规范
    tar -zxvf  解压包 /data/server/
    mv elastic /data/server # 放到标准目录里
    useradd elastic # 新建elastic用户
    chown -R elastic.elastic /data/server/elasticserver/
    ll # 查看所属用户
    ps aux | grep elastic 
    su elastic
    ./bin/elasticsearch
    
    vim /etc/security/limit
    elastic soft memlock unlimited
    elastic hard memlock unlimited
    * soft nofile 655366
    * hard nofile 100002
    vim /etc/sysctl.conf
        vm.max_map_count=362144
    sysctl -p 
    vim config/elasticsearch/yml
        bootstrap.memory_lock: true
        network.host: 192.168.234.129
        http.port: 9200
        node.max_local_storage_nodes: 256
    rm -rf data/nodes/0/node.lock # 若锁住错误
    vim config/jvm.options
        -Xms1g
        -Xmx1g    
    ulimit -n
    ulimit -s 655355

    2.2.2 启动elasticsearch

    /data/server/elasticsearch-5.6.8/bin/elasticsearch
    netstat -pantu | grep "9200"
    tips

    1.关闭防火墙

    永久关闭selinux
    修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
    setenforce 0 #即时生效
    systemctl stop firewalld.service

    2.elastic需要专用的用户启动

    useradd elastic # 新建elastic用户
    chown -R elastic.elastic /data/server/elasticserver/

    3.Java地址问题

    ps aux |grep java
    pkill -9 java

    4.要求改变data

    出现data错误时
    ps aux |grep log
    kill log 进程
    kill -9

    5.若遇见lock 锁住

    vim config/elasticsearch/yml
    node.max_local_storage_nodes: 256
    rm -rf data/nodes/0/node.lock # 若锁住错误

    6.系统内存不足需要elastic优化

    vim config/jvm.options
        -Xms1g
        -Xmx1g    
    ulimit -n
    ulimit -s 655355

    7.主机优化

    vim /etc/sysctl.conf
        vm.max_map_count=362144
    sysctl -p

    8.FATAL Port 5601 is already in use. Another instance of Kibana may be running!

    fuser -n tcp 5601
    kill -9 56948

    3.安装配置logstash

    Logstash 是Elasticsearch 数据管道

    Logstash :input output 可选:filter

    3.1上传文件并且安装
    tar -zxvf logstash
    mv logstash /data/server/
    vim /etc/rsyslog.conf
        $ModLoad imudp
        $UDPServerRun 514
        $ModLoad imtcp
        $InputTCPServerRun 514
        *.* @192.168.23.166:5000
    
    vim /data/server/conf/syslog.conf
    input{
            tcp{
            port => 5000
             type => syslog
               }
            udp{
            port => 5000
            type =>syslog
            }
    }
    output{
            elasticsearch {
                   hosts =>["192.168.23.166:9200"]
                   index => "zhj"
                        }
            stdout {}
    }
    3.2启动
    systemctl start rsyslog
    su elastic
    /data/server/elasticsearch-5.6.8/bin/elasticsearch
    exit
    /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf
    logger -p info "hello, remote rsyslog"#手工添加日志信息

    4.安装配置kibana

    4.1安装kibana
    vim /data/server/conf/syslog.conf
    input{
        tcp{
            port => 5000
            type => syslog
           }
        udp{
            port => 5000
            type =>syslog
        }
    }
    
    output{
        elasticsearch {
                hosts => ["192.168.23.166:9200"]
                index => "zhj-%{+YYYY.MM.dd}"
                    }
        stdout {
        codec => rubydebug
            }
    }
    
    su kibana
    vim /data/server/kibana-5.6.8-linux-x86_64/config/kibana.yml
        server.port: 5601
        server.host: "192.168.23.166"
        elasticsearch.url: "http://192.168.23.166:9200"
    :wq
    4.2启动
    /data/server/kibana-5.6.8-linux-x86_64/bin/kibana
    
    登录kibana
    http://192.168.23.166:5601
    查看索引:
    http://192.168.23.166:9200/_cat/indices?v
    tips

    1.kibana 不能实时抓日志

    修改主机服务时间
    date -s "2018-05-20 10:00:00"

    2.kibana在使用

    ps -ef|grep kibana
    
    ps -ef|grep 5601
    
    都找不到 
    
    尝试 使用 fuser -n tcp 5601
    
    kill -9  端口
    
    启动即可 ./kibana

    5.安装配置redis

    5.1安装redis
    将log日志放在redis上,然后redis将日志转到elastic上
    上传Redis-3.2.1.tar.gz包,解压到/data/server/
    yum -y install tcl* # redis 库依赖
    cd /data/server/redis-3.2.1
    make && make install
    vim /data/server/conf/syslog.conf
    input{
        tcp{
            port => 5000
            type => syslog
           }
        udp{
            port => 5000
            type =>syslog
        }
    }
    output {
        redis {
            host => "192.168.23.166"
            port => "6379"
            data_type => "list"
            key => "sys_log:redis"
        }
    }
    input {
        redis {
              host => "192.168.23.166"
              port => "6379"
              data_type => "list"
              key => "sys_log:redis"
              type => "redis-input"
        }
    }
    output {
        elasticsearch  {
            hosts => "192.168.23.166:9200"
            index => "zhj"
        }
     stdout {
               codec => rubydebug
        }
    }
    5.2启动
    连接客户端,查看日志
    配置中redis.conf文件中修改bind值为192.168.23.166
    systemctl start rsyslog
    su elastic
    /data/server/elasticsearch-5.6.8/bin/elasticsearch
    /data/server/redis-3.2.1/src/redis-server   /data/server/redis-3.2.1/redis.conf
    /data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf
    /data/server/redis-3.2.1/src/redis-cli -h 192.168.234.129
    #启动kibana
    /data/server/kibana-5.6.8-linux-x86_64/bin/kibana
    
    /data/server/redis-3.2.1/src/redis-cli -p 6379
    keys *

    6 x-pack 插件的安装

    6.1elasticsearch 安装x-pack
    /data/server/elasticsearch-5.6.8/bin/elasticsearch-plugin install x-pack

    一路 y

    6.2kibana 安装x-pack
    /data/server/kibana-5.6.8-linux-x86_64/bin/kibana-plugin install x-pack
    增加
    
    elastic
        user => "elastic"
        password => "changeme"

    6.3手动离线安装

    6.4破解graph 版本

    luyten java反编译
    参考

    1.自己的有道笔记

    2.各组件原理介绍请看 ELK原理

    未来计划

    找时间在优化下排版和配图吧...太糟糕了-.-||

  • 相关阅读:
    《学习要像加勒比海盗》读书摘录
    【转载】关于软件测试的几点思考
    黑客与画家 摘录
    基于Jenkins的持续集成CI
    重新开始,整装出发
    java重写equals方法需要注意的几点
    《Google软件测试之道》摘录
    Using sql azure for Elmah
    Invalid object name ‘sys.configurations’. (Microsoft SQL Server, Error: 208)
    Cannot install ubuntu or other linux flavours on citrix Xen server
  • 原文地址:https://www.cnblogs.com/Rightsec/p/10306523.html
Copyright © 2020-2023  润新知