ELK环境搭建

  • 主要安装说明
  • 下载安装Elasticsearch
  • 下载安装Logstash
  • 添加索引及mapping
  • 下载安装Kibana(按实际需求安装)


主要安装说明

Elasticsearch:数据存储
Logstash:数据收集过滤器
Filebeat:另一类数据收集器
Kibana:数据统计查询视图显示
安装系统环境:Linux(redhat)

下载安装Elasticsearch

  1. 参考链接:如何在 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/
  1. 按要求修改内存配置(参考链接内有说明)
  2. 测试安装(非root用户安装目录下运行命令,末尾加&表示后台运行), 运行成功后可在 http://localhost:9200端口查看到返回信息
./bin/elasticsearch &

下载安装Logstash

  1. 参考链接:如何安装 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
  1. 测试安装:
cd logstash-7.10.2

bin/logstash -e 'input { stdin { } } output { stdout {} }'
  1. Logstash可通过添加配置文件对需要收集的日志数据进行过滤处理,选取日志部分实际需要统计的字段保存到Elasticsearch索引,实际可参考Logstash的filter写法,包含input、filter、output。可以结合Filebeat(实际收集数据方面范围更广更灵活)进行数据收集。
  2. 配置示例

日志样例:

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" 
    } 
  } 
}
  1. 使用配置文件启动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(按实际需求安装)

  1. 参考链接: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/
  1. 测试安装(非root用户在安装目录下执行启动命令),运行成功可访问http://localhost:5601查看是否运行成功
./bin/kibana &
  1. Dev tools操作索引,进行,增删改查,其他板块可对查询索引数据进行统计画图,自行探索吧

怎么在linux中搭建es和kibana linux部署搭建elk_elasticsearch