开源日志系统ELKbeats平台搭建

平台简介

开源实时日志分析平台

  1. 基于Java8环境
  1. 基于Centos7 64位平台
  2. 基于ELK 5.1.1 版本

ELK官网
ELK官网文档
ELK中文手册

平台的搭建过程可以参考:开源实时日志分析ELK平台部署
Beats平台相关介绍:ELK beats平台介绍(11th)

构成部分

  1. Beats:
    负责收集系统数据,可以直接发送到es中,也可以通过logstash中转
  2. logstash:
    收集日志,为beats提供中转功能
  3. Elasticsearch:
    提供数据存储,服务端聚合计算功能
  4. Kibana:
    提供炫丽的可视化图形展示并且作为elasticsearch的搜索的小清新客户端

工作原理

开源日志系统ELKbeats平台搭建_第1张图片
工作原理

Logstash

是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用

安装

解压缩之后,进入bin目录,直接执行看看结果

./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

配置文件

自建一个配置目录:conf,创建一个配置文件 myConf.conf

input {
        stdin {}
}
output {
        stdout {
                codec => rubydebug
        }
        elasticsearch {
                hosts => ["192.168.139.58:9200"]
        }
}

这里注意:配置elasticsearch的服务器地址
执行方法

$  bin/logstash -f conf/myConf.conf

Elasticsearch

ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。像Solr4一样,是基于Lucene构建的。支持时间时间索引和全文检索。官网
这里使用的版本是5.1.1,运行之后默认端口9200

  1. 安装插件:elasticsearch-head
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server

修改配置文件Gruntfile.js,hostname修改为*

        connect: {
            server: {
                options: {
                    hostname: '*', 
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }

默认的运行端口为9100

  1. 修改elasticsearch的配置文件
    修改elasticsearch.yml文件,增加下面两句,目的是允许elasticsearch-head进行访问
http.cors.enabled: true 
http.cors.allow-origin: "*" 
  1. centos7上启动错误一
    错误信息如下:
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
        ... 6 more

解决方法:不能用root用户进行启动

  1. centos7上启动错误二
    错误信息如下:
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法:修改/etc/security/limits.conf文件,添加或修改如下行(用户名为lxm)

lxm hard nofile 65536
lxm soft nofile 65536
  1. centos7上启动错误三
    错误信息如下:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法:
临时生效的方法

sudo sysctl -w vm.max_map_count=262144

永久生效的方法:修改 /etc/sysctl.conf,增加如下的设置

vm.max_map_count=262144

执行命令让设置生效

sysctl -a
  1. 集群中发现的错误
    elasticsearch中节点都启动但是无法形成集群问题

kibana

修改配置文件config/kibana.yml

server.port: 5601
server.host: "192.168.139.58"
elasticsearch.url: "http://192.168.139.58:9200"

启动kibana

$ bin/kibana

Beats配置:packetbeat

需要在被监控机器上安装,演示packetbeat,其他类似

  1. 修改配置文件 packetbeat.yml,这里直接连接elasticsearch,不通过Logstash
output.elasticsearch:
   hosts: ["192.168.139.58:9200"]
  1. 配置elasticsearch模板
curl -XPUT 'http://192.168.139.58:9200/_template/packetbeat' -d@/home/lxm/packetbeat-5.1.1-linux-x86_64/packetbeat.template.json
  1. 安装beats-dashboards
$  git clone https://github.com/elastic/packetbeat-dashboards
$  cd packetbeat-dashboards/
# 将dashboard的模板配置数据存进elasticsarch里面
$  ./load.sh -url http://192.168.139.58:9200
  1. 启动packetbeat
$ sudo ./packetbeat -e -c packetbeat.yml
  1. 在Kibana中查看仪表盘


    开源日志系统ELKbeats平台搭建_第2张图片
    选择仪表盘设置

你可能感兴趣的:(开源日志系统ELKbeats平台搭建)