最近抽出点时间,搭建了新版本的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-
path.data: /data/elasticsearch/data/
path.logs: /data/elasticsearch/logs/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port:
discovery.zen.ping.unicast.hosts: ["172.17.3.14"]
discovery.zen.minimum_master_nodes:
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 => ""
type => "nginx_access"
db => ""
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的地址
至此,搭建完毕。