ELK+F日志分析系统搭建

x33g5p2x  于11个月前 转载在 其他  
字(3.3k)|赞(0)|评价(0)|浏览(141)

一.简介

ELK是Elasticsearch、Logstash、Kibana的简称。

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
*
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
*
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据
*
Filebeat是Beats中的一员。Beats在是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

二.搭建工作

jdk版本推荐1.8以上,ELK各版本推荐一致,下载可搜索官网。

1. JDK

设当前服务器目录为 /root

jdk-8u171-linux-x64.tar.gz 已上传到 /root 目录下

### pwd ,返回 /root 
tar  -zxvf  jdk-8u171-linux-x64.tar.gz 
mkdir /usr/java 
mv jdk1.8.0_171 /usr/java 

vim /etc/profile 
#### 将以下内容 shift + insert 到 /etc/profile 的末尾 
export JAVA_HOME=/usr/java/jdk1.8.0_171 
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH 
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin 
export PATH=$PATH:${JAVA_PATH} 

source /etc/profile 
### 测试jdk安装 
java -version

2. Elasticsearch

#### elasticsearch 默认不能以root身份启动,创建用户,并指定密码 
useradd admin   
passwd admin 

su admin 
cd /home/admin 
### pwd 返回 /home/admin 设 tar.gz 已上传至 /home/admin 
tar  -zxvf  elasticsearch-6.2.4.tar.gz 
mv elasticsearch-6.2.4 /usr/local 
cd /usr/local/elasticsearch-6.2.4 

vim config/elasticsearch.yml 
#### 修改以下配置,cluster.name 根据业务需要自定义 
cluster.name: my-cluster 
network.host: 0.0.0.0 
http.port: 9200 
#允许跨域 
http.cors.enabled: true 
http.cors.allow-origin: /.*/ 

### 修改 /etc/security/limits.conf 修改配置 * hard nofile 65536 
vim /etc/security/limits.conf  

### 修改 /etc/sysctl.conf 添加配置 vm.max_map_count=262144 
vim /etc/sysctl.conf 

### 重新加载一次系统参数 
sysctl -p 

### 修改 /etc/profile,注释配置 ulimit -n 65535 
vim /etc/profile 

### 启动 elasticsearch 
./bin/elasticsearch -d -p pid

### 查看启动是否成功 
curl "http://127.0.0.1:9200"

3. Logstash

设当前服务器目录为 /root

logstash-6.2.4.tar.gz 已上传到 /root 目录下

tar  -zxvf  logstash-6.2.4.tar.gz
 mv logstash-6.2.4 /usr/local
 cd /usr/local/logstash-6.2.4
 ### 配置 logstash config文件
 vim config/daily.config
 input{
   beats {
    port => 10515
   } 
 }
 filter {
 dissect {
     mapping => { "message" => "%{timestamp} [%{thread}] %{log-level} %{class} - %{message}" }
     }
    kv {
        source => "message"
        field_split => "`"
        value_split => "="
        }
 }
 output{
     stdout{
     }
     elasticsearch{
         hosts=>["this is your ES server IP:9200"]
         index => "demo:daily-index,this is your ES index "
     }
 }
### 启动脚本,指定配置文件,指定data目录(tips:同一个logstash可配置多个项目,指定不同的config,path.data
 nohup sh ./bin/logstash -f /usr/local/logstash-6.2.4/config/daily.config --path.data=/usr/local/logstash-6.2.4/data > nohup.log &

4. Kibana

设当前服务器目录为 /root

logstash-6.2.4.tar.gz 已上传到 /root 目录下

tar  -zxvf  kibana-6.2.4-linux-x86_64.tar.gz
 mv kibana-6.2.4-linux-x86_64 /usr/local
 cd /usr/local/kibana-6.2.4-linux-x86_64
 ### 配置 kibana config文件,增加配置
 vim config/kibana.yml
 server.port: 5601
 server.host: "0.0.0.0"
 elasticsearch.url: "http://this is your ES server IP:9200"
 kibana.index: ".kibana6"
 ### 启动
 nohup ./bin/kibana &

5. FileBeat

Filebeat安装
 下载:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.0-linux-x86_64.tar.gz
 解压:tar -zxvf filebeat-6.2.1-linux-x86_64.tar.gz
 修改 filebeat.yml 配置文件
 enabled: true 
 paths: - /root/et-industry-knowledge-graph/logs/smartqa.log  日志收集路径
 注释掉 es
 logstash 配置
   output.logstash:   
   # The Logstash hosts
   hosts: ["localhost:10515"]  logstash地址
 启动 
 nohup ./filebeat -e -c filebeat.yml > filebeat.log &
 查看启动 ps -ef|grep filebeat

相关文章