ELK环境搭建
- 主要安装说明
- 下载安装Elasticsearch
- 下载安装Logstash
- 添加索引及mapping
- 下载安装Kibana(按实际需求安装)
主要安装说明
Elasticsearch:数据存储
Logstash:数据收集过滤器
Filebeat:另一类数据收集器
Kibana:数据统计查询视图显示
安装系统环境:Linux(redhat)
下载安装Elasticsearch
- 参考链接:如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch_Elastic
下载安装:(命令安装失败可官网下载安装包解压安装):
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz.sha512
$ shasum -a 512 -c elasticsearch-7.10.2-linux-x86_64.tar.gz.sha512
$ tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz
$ cd elasticsearch-7.10.2/
- 按要求修改内存配置(参考链接内有说明)
- 测试安装(非root用户安装目录下运行命令,末尾加&表示后台运行), 运行成功后可在 http://localhost:9200端口查看到返回信息
./bin/elasticsearch &
下载安装Logstash
- 参考链接:如何安装 Elastic 栈中的 Logstash_Elastic
下载安装:(当前测试版本7.10.2,安装目录"/usr/local/elk/",可自行指定):
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.10.2.tar.gz
tar -xzvf logstash-7.10.2.tar.gz
- 测试安装:
cd logstash-7.10.2
bin/logstash -e 'input { stdin { } } output { stdout {} }'
- Logstash可通过添加配置文件对需要收集的日志数据进行过滤处理,选取日志部分实际需要统计的字段保存到Elasticsearch索引,实际可参考Logstash的filter写法,包含input、filter、output。可以结合Filebeat(实际收集数据方面范围更广更灵活)进行数据收集。
- 配置示例
日志样例:
logDate,sessionId,userId,mainUserId,userGroup,entry,userLevel,0,ip,targetUrl,...
配置文件样例:
#input模块可设置编码,数据来源端口
input {
tcp {
mode => "server"
host => "127.0.0.1"
port => 4560
codec => plain{ charset => "UTF-8"}
}
}
#filter模块可对日志数据进行过滤,会涉及到日期格式转化,字段值类型转化
filter {
if "," in [message]{
mutate {
split => ["message", ","]
add_field => {
"sessionId" => "%{[message][1]}"
"mainUserId" => "%{[message][2]}"
"userId" => "%{[message][3]}"
"userGroup" => "%{[message][4]}"
"entry" => "%{[message][5]}"
"userLevel" => "%{[message][6]}"
}
}
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime+8*60*60)"
}
ruby {
code => "event.set('@timestamp', event.get('timestamp'))"
}
mutate {
convert => {
"userGroup" => "integer"
"userLevel" => "integer"
}
remove_field => ["message"]
remove_field => ["port"]
remove_field => ["host"]
remove_field => ["@version"]
remove_field => ["timestamp"]
}
}
}
#output将数据保存至Elasticsearch,index为索引名称,后续需在elasticsearc按实际保存的数据字段添加mapping
output {
stdout {
codec => rubydebug
}
if [userId] {
elasticsearch{
hosts => "http://127.0.0.1:9200"
index => "indexlog"
}
}
}
- 使用配置文件启动Logstash(需要root用户启动,/usr/local/elk/conf/logstash.conf为配置文件目录,输出到null)
nohup /usr/local/elk/logstash-7.10.2/bin/logstash -f /usr/local/elk/conf/logstash.conf >dev/null &
添加索引及mapping
Elasticsearch+Logstash搭建完成,开始收集日志数据前,需要在Elasticsearch添加索引及mapping,可在kibana的devtool使用语法操作。
mapping示例:
PUT indexlog/_mapping
{
"properties":{
"userId":{
"type":"text",
"fielddata":true
}
}
}
下载安装Kibana(按实际需求安装)
- 参考链接:Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana_Elastic
下载安装
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz
shasum -a 512 kibana-7.10.2-linux-x86_64.tar.gz
tar -xzf kibana-7.10.2-linux-x86_64.tar.gz
cd kibana-7.10.2-linux-x86_64/
- 测试安装(非root用户在安装目录下执行启动命令),运行成功可访问http://localhost:5601查看是否运行成功
./bin/kibana &
- Dev tools操作索引,进行,增删改查,其他板块可对查询索引数据进行统计画图,自行探索吧