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原理

未来计划

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

原文地址:https://www.cnblogs.com/Rightsec/p/10306523.html