云上的天涯

导航

elk日志平台搭建小记

最近抽出点时间,搭建了新版本的elk日志平台

elastaicsearch 和logstash,kibana和filebeat都是5.6版本的

中间使用redis做缓存,版本为3.2

使用的系统为centos 7.4

JAVA环境首先要安装和设定好

全部在官网下载RPM安装包,直接安装就可以使用

下面说下配置,和重要的地方

1,elasticsearch

配置方面,并不麻烦,单机的话用以下配置就可以跑起来

配置文件是/etc/elasticsearch/elasticsearch.yml

配置如下,注释的就不再写了

cluster.name: elasticsearch
node.name: node-1
path.data: /data/elasticsearch/data/
path.logs: /data/elasticsearch/logs/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.17.3.14"]
discovery.zen.minimum_master_nodes: 1
action.destructive_requires_name: true

红色部分设置为false吧,否则无法启动。

2, logstash

安装完后默认配置文件路径在/etc/logstash/下,一般自定义配置文件放在conf.d下,默认的配置文件不要动

我安装logstash后出现一点问题,就是启动时候提示找不到JAVA的执行命令,我已经做了全局声明,但是还是不行,现在说下解决方法

先卸载掉logstash,然后把java的执行命令软链接到/usr/bin下面

然后再重新安装,然后生成启动脚本,在centos7下面是这样生成的

/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

在centos6下面是这样生成的

/usr/share/logstash/bin/system-install /etc/logstash/startup.options sysv

然后我们就可以启动logstash了

我们可以把系统的messages日志输出到elasticsearch里面。配置如下

input {
        file {
                type => "flow"
                path => "/var/log/messages"
        }
}


output {
  stdout {
     codec => rubydebug
  }
  if [type] == "flow" {
    elasticsearch {
          index => "flows-%{+YYYY.MM.dd}"
          hosts => "172.17.3.14:9200"
       }
   }
}

需要注意的是,input和output的type的值要一致

红色部分是定向到标准输出,为了调试方便,正式用的话可以不用。

通过redis,获取数据,并把数据输出到elasticsearch里

input {
  redis {
    host => "172.17.3.14"
    port => "6379"
    type => "nginx_access"
    db => "0"
    data_type => "list"
    key => "ucenterfront"
  }
}

output {
    stdout {
     codec => rubydebug
  }
    if [type] == "nginx_access" {
      elasticsearch {
      hosts => "172.17.3.14:9200"
      index => "ucenter-front-%{+YYYY.MM.dd}"
      }
    }
}

需要注意的是:input里面的key的值要和filebeat里定义的key值一致

type上下自然也要一致,out定义的index的值的红色部分可以和上面的key的值一致,也可以不一致,这个没有多大影响,在kibana建立索引时候,填index的值就可以。

另外特别需要注意的,input里面的type的值一定要与filebeat里的document_type的值一致,我就刚开始不一致,logstash里就没有数据。

其他的就没有特别需要注意的了,默认就行。

3,filebeat的安装

安装后配置文件在/etc/filebeat下面

 

filebeat.prospectors:
- input_type: log
  paths:
    - /data/logs/nginx/*.log
  document_type: nginx_access
  scan_frequency: 1s
#----------------------------- Redis output --------------------------------
output.redis:
  hosts: ["172.17.3.14:6379"]
  key: "ucenterfront"
  db: 0
  db_topology: 1
  timeout: 5
  reconnect_interval: 1

 

上面的document_type要和logstash里的type一致

修改发送时间间隔为1秒

4,安装kibana

直接安装,配置文件在/etc/kibana/kibana.yml

server.host: "172.17.3.14"
elasticsearch.url: "http://localhost:9200"

配置很简单,监听那个地址就在server后面写那个地址

下面的那个是elasticsearch的地址

至此,搭建完毕。

 

posted on 2018-04-28 13:18  云上的天涯  阅读(254)  评论(0编辑  收藏  举报