最近抽出点时间,搭建了新版本的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的地址
至此,搭建完毕。