目录
一、ELk日志分析系统介绍
-
Elasticsearch:用于存储收集到的日志信息;
-
Logstash:用于收集日志,SpringBoot应用整合了Logstash以后会把日志发送给Logstash,Logstash再把日志转发给Elasticsearch;
-
Kibana:通过Web端的可视化界面来查看日志。
很多日志分析的应用都不够全面,ELK解决了很多不完善的地方,是蓝队日志分析的一个好工具,是一个外国的产品,在系统下搭建很麻烦,很容易出错,如果只是日常使用,方便了解,建议在docker下搭建,如果是实战,建议在系统下搭建,毕竟docker只是个虚拟容器。
二、ELK搭建
进入docker文件夹中
1、服务器配置
设置一个进程可以拥有的VMA(虚拟内存区域)的数量
sysctl -w vm.max_map_count=262144
看是否设置成功
sysctl -p
如果有出现vm.max_map_count = 262144说明设置成功
如果没有的话,需要自己前往文件进行设置
vim /etc/sysctl.conf
添加上vm.max_map_count = 262144
2、配置docker-compose.yml文件
vim docker-compose.yml
将以下代码粘贴(版本具体得看你下载的docker的兼容,如果后面拉镜像失败,这里的版本进行修改即可)
version: "3.5"
services:
elk:
image: sebp/elk:7.12.0
volumes:
- ./elk/02-beats-input.conf:/etc/logstash/conf.d/02-beats-input.conf
environment:
ES_JAVA_OPTS: -Xms512m -Xmx512m
ports:
#Kibana 网络界面
- "5601:5601"
# Elasticsearch JSON 接口
- "9200:9200"
# Logstash Beats 接口
- "5044:5044"
3、配置beats-input文件
在docker-compose.yml文件目录下创建elk文件夹,创建Logstash配置文件 02-beats-input.conf
#进入elk目录
cd elk
#创建并编辑02-beats-input.conf文件
vi 02-beats-input.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
index => "beat-%{+YYYY.MM.dd}"
}
}
4、拉镜像、启动ELK
docker-compose up -d elk
如果一直显示以下报错,说明你的docker-compose.yaml格式有错误,粘贴时换行等格式不要出错
parsing /var/lib/docker/docker-compose.yml: yaml: line 5: mapping values are not allowed in this context
如果以下的报错,网络不行,换个镜像
error pulling image configuration: download failed after attempts=6: dial tcp 157.240.12.35:443: i/o timeout
vi /etc/docker/daemon.json
阿里云内容如下:
{
"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}
中科院内容如下:
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
重启docker
systemctl restart docker
5、启动成功后访问
访问:ip:5601,即可进入ELK日志分析系统
到这里ELK就搭建完成了,有出现什么问题可以评论区进行解答,后续如果有需要会更新ELK的使用