码迷,mamicode.com
首页 > 其他好文 > 详细

elk安装配置

时间:2021-01-21 10:41:46      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:自定义   line   错误   elk安装   端口   delete   actor   手动   文件描述符   

安装参考脚本

linux 搭建 filebeat + redis + elk_真的愿意去努力,人生最坏的结果,也不过是大器晚成。-CSDN博客
######elk配置文档##########
filebeat.yml
filebeat.inputs:
- type: log
enabled: True #True表示收集
#pasths配置收集日志的路径,支持配置多条路径,及多目录
paths:
- /opt/app/nacos-1.3.2/nacos/bin/logs/*.log
#tags 标记;可以用来区分日志,这是一个列表可以写多个标记
tags: ["nacos"]
#fileds创建新的字段,默认是二级字段,可以自定义多个key: value
fields:
app: test_71_nacos-1.3.2
#让新建的字段变成顶级字段,减少不必要的资源开销
fields_under_root: true
#让filebeat采集最新的日志变化,忽略掉之前旧日志
tail_files: true
####下边这几项可以不用
#filebeat依靠文件描述符识别文件,当发生重命名或移动,filebeat依然采集的原文件。
close_renamed: false
#等待再次检查文件的时间,默认是10s
max_backoff: 1s
#此选项指定等待时间的增加速度,1表示禁用回算算法
backoff_factor: 1
# ================================== Outputs ===================================
#-------------------------- reids output ------------------------------
output.redis:
hosts: ["192.168.50.88:17693"] #输出到redis的ip端口号
password: "9tN6GFGK60Jk8BNkBJM611GwA66uDFeG"
key: "filebeat" #输出到redis中的key,这个key是一个列表,llen key查看长度 lrange key 0 -1 查看列表所有的值
timeout: 30 #连接redis超时时间,默认为5s

拓展
filbeat也可以采集jar堆栈日志
堆栈日志的格式:多行日志内容为一条日志
- type: log
enabled: True
paths:
- /opt/app/nacos-1.3.2/nacos/bin/logs/*.log
multiline:
#自定义每条日志的开头
pattern: ‘\# Time: \d{4}-\d{2}-\d{2}‘
#定义模式是否被否定,默认值为false
negate: true
#与模式不匹配的连续行将追加到匹配的上一行
match: after
####################使用nohup方式在后台运行filebeat时。要手动执行exit,不然filebeat进程会随环境关闭而死掉。
logstash.yml
input {
redis {
host => "185.167.15.72"
port => "17695"
password => "9tN6GFGK60Jk8BNkBJM611GwA66uDFeG"
data_type => "list"
key => "filebeat" #从redis中导入的key,与filebeat输出对应
type => "redis-input"
db => 0 #导入key的数据库,默认为0
}
}

filter {
#判断redis字符串在不在自己定义的新字段中,用于区分日志类型,做对应的处理
if ‘redis‘ in [app] {
###聚合redis日志###
grok {
#自定义匹配日志内容,默认一条日志从上到下只会匹配一次对的。且只会匹配一个字段,如需要匹配多个字段,需进行严格匹配
patterns_dir => ["/opt/elk/patterns_time"]
#grok提供很多自带的正则,可供使用
match => { "message" => "%{LOGTIME:log_time}" }
#(?<自定义的>要匹配的内容)
match => { "message" => "(?<log_time>%{TIMESTAMP_ISO8601}).*session (?<session>.*\S$)"}
}
date {
#修改采集时间为日志里的时间
match => ["log_time", "yyyy-MM-dd HH:mm","dd MMM yyyy HH:mm:ss.SSS" ]
locale => "en"}
mutate {
#转换字段类型,用于聚合操作
convert => { "session" => "string" }
#删除无用字段
remove_field => ["log_time"]
}

}
#将logstash时间转化中国时间,logstash默认为utc时间,比中国时间慢8个小时(修改的是采集时间,对日志时间没有影响)
ruby {
code => "event.set(‘timestamp‘, event.get(‘@timestamp‘).time.localtime + 8*60*60)"
}
ruby {
code => "event.set(‘@timestamp‘,event.get(‘timestamp‘))"
}
mutate {
remove_field => ["timestamp"]
}
}


output {
#用于调试
#stdout{ codec => rubydebug }
########创建线上环境索引########
if ‘online_82‘ in [app] {
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
#输出到es中的索引
index => "online_82_%{+YYYY.MM.dd}" #The index to write data to.
user => "elastic"
password => "dtyn!@$" }
#对应filebeat中[tags],用对应索引进行判断
if [tags][0] == ‘count‘ {
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
index => "online_82_redis_count" #The index to write data to.
user => "elastic"
password => "dtyn!@$" }

}
}
}

转换logstash时间的目的是为了利用时间在es中建立索引

 

elasticsearch 采用默认配置(参考脚本)

es加密配置单机版
1.elasticsearch.yml中添加如下内容
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
2.进入bin目录执行 ./elasticsearch-setup-passwords interactive 设置密码,修改密码也是一样。
kibana配置
1.不使用timestamp字段过滤时
注:kibana默认使用检测到浏览器的时区(我的为东八区),而上面将logstash设置为东八区,这样kibana中的时间会比东八区快8小时(因为kibana默认会在logstash时区上+8h),所以需要进入
Management->stack management->高级设置->ateFormat:tz设置为 Etc/utc
建立索引
Management->stack management->索引模式->创建索引->不选择时间过滤
1.使用timestamp字段过滤时
什么也不用改(使用timestamp字段过滤时,kibana会自动转化为logstash中的时区)

查看日志内容
tags.keyword : 或app.keyword : 或log.file.path.keyword :
注:
1.当启动filebeat后,redis会存在对应的key,当logstash拉取完毕之后,redis中这个key会消失(用于排错)
2.在logstash中如果不进行判断,那么每条日志都会挨个匹配定义的mach字段,直到匹配成功的第一个mach
3.当修改elk配置,在感觉修改没有错误但是仍然不能启动的情况下,删除对应的data目录(可能是脏数据影响)

清除es索引

#/bin/bash
date=`date -d "7 days ago" +%Y.%m.%d`
curl -XDELETE -u ‘elastic:dtyn!@$‘ http://localhost:9200/*{$date}

elk安装配置

标签:自定义   line   错误   elk安装   端口   delete   actor   手动   文件描述符   

原文地址:https://www.cnblogs.com/meyer-index/p/14304227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!