- 软件下载地址:https://www.elastic.co/cn/products
- 单机版日志配置
先配置logstash文件;
具体配置内容:
input {
file{
path => ["E:/log/icl.log"] #文件地址
type => "icl" #给该log定义类型
start_position => "beginning" #文件读取位置
}
}
filter { #对文件过滤
grok { #过滤的正则
match => {"message" => "%{TIMESTAMP_ISO8601:LogerDate}\:%{LOGLEVEL:LoggerEvel}\s%{USERNAME:LogerExec}\s(?<LoggerJava>.*(\=\=\>|\<\=\=|-))\s(?<LoggerDetails>.*)"}
}
date { #对日志里面的字段配置LogerDate格式
match => ["LogerDate", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
}
output {
stdout {
codec => rubydebug #采集的日志输出到控制台
}
elasticsearch { #将日志传输给elasticsearch
hosts => "192.168.80.236:9200" #ElasticSearch host, can be array.
index => "logstash-%{+YYYY.MM.dd}" #The index to write data to.
}
}
elasticsearch.yml中的IP配置;
kibana.yml配置
启动类:
logstash启动的时候要关联配置的文件
logstash.bat -f E:\ELK\logstash-6.2.3\config\log4j_to_es.conf
因为logstash读取文件会有记录,所以记录下来。
elasticsearch的启动文件
kibana.bat的启动文件
kibana的访问地址:http://192.168.73.131:5601
第二种方式,实时推送日志给logstash
将log4j2的日志推送给tcp的采集装置
logstash的配置文件
input {
tcp {
host => "192.168.80.236"
port => 4567
codec => json
}
}
filter {
grok {
match => {"message" => "%{TIMESTAMP_ISO8601:LogerDate}\:%{LOGLEVEL:LoggerEvel}\s%{USERNAME:LogerExec}\s(?<LoggerJava>.*(\=\=\>|\<\=\=|-))\s(?<LoggerDetails>.*)"}
}
date {
match => ["LogerDate", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "192.168.80.236:9200" #ElasticSearch host, can be array.
index => "logstash-%{+YYYY.MM.dd}" #The index to write data to.
}
}
在linux部署下的问题总结
don't run elasticsearch as root.
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户
第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码。
第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足。
第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限。所以要用root用户登录付权限。
第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录。
然后执行成功。
问题二:ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* hard nofile 65536
* soft nofile 65536
问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
用 ps -ef | grep elasticsearch
查看进程:kill -9 指定进程号进行删除
格式问题:Exception in thread "main" 2017-11-10 06:29:49,106 main ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization logging.ElasticsearchParseException[malformed, expected settings to start with 'object', instead was [VALUE_STRING]]
原因:elasticsearch.yml中的配置项的格式有问题
解决方案:请尽量保持冒号前面没空格,后面一个空格,不要用tab键
bootstrap.memory_lock: false