ELK日志系统
日志统一收集,管理,访问
相关注意事项:
- ELK: 普通版 500M
- FELK: filebeat收集到以后发给logstash. 适合GB量级的日志 5G
- FELK+kafka: 适合每天至少30G以上的日志
- 建议不加redis
- ElasticSearch在linux中不能用root用户启动
- 三个工程启动没有先后顺序
- 写日志的时候需要增加日志的唯一标识, 方面后期日志搜索
Windows下安装ELK系统
安装elastic
https://www.cnblogs.com/hts-technology/p/8477258.html
Linux下安装ELK系统
安装elastic
- 首先需要安装jdk1.8
- 解压, 设置配置文件
安装head插件
plugin install mobz/elasticsearch-head
访问9200端口
※启动会遇到的问题: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方案:
- vi /etc/sysctl.conf
- 在最后一行增加
vm.max_map_count=262144
- sysctl -p 使配置生效
安装logstash
- 解压
- 进入目录, 新建conf文件夹
- 创建配置文件 -> 填写配置信息(路径里不能有”-“)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24input {
file {
type => "log"
path => ["/apps/logs/*.log"] //日志路径
start_position => "end"
ignore_order => 0
codec => multiline {
pattern => "^%{TIMESTAMP_ISO8601}"
negate => true
what => "previous"
}
}
beats {
port => 5044
}
}
output {
if [type] == "log" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "log-%{+YYYY.MM}"
}
}
}
配置文件内的start_position=”end”,表示从文件末尾开始收集
logstash -f logstash.conf ↑上面建立的配置文件
安装kibana
解压
进入目录下的conf文件夹
编辑kibana.yml -> 把地址修改成elastic地址
kibana默认端口在5601?
logstash不能收集远程机器的日志
filebeat
配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14filebeat:
prospectors:
- type: log
paths:
- /var/log/*.log
multiline:
pattern: '^['
match: after
output.elasticsearch:
hosts: ["192.168.1.42:9200"]
output.logstash:
hosts: ["127.0.0.1:5044"]
启动: ./filebeat -e -c filebeat.yml (-d)
Docker中安装ELK系统
参考资料:
https://blog.csdn.net/birdben/article/details/50521121
https://blog.csdn.net/birdben/article/details/50391715
命令:
docker run -d –name=esNode1 -p 9200:9200 -p 9300:9300
elasticsearch:2.3 -Des.network.publish_host=”192.168.56.101”