EFK-一款轻量的日志分析系统

EFK(Elasticsearch+Filebeat+Kibana)

架构图:
image

EFK分别代表Elasticsearch、Filebeat、Kibana,其中Elasticsearch负责日志保存和搜索,Filebeat负责收集日志,Kibana负责界面。EFK和ELK的区别在于把ELK的Logstash替换成了Filebeat。

Filebeat相对于Logstash的好处:

  1. 侵入低,无需修改程序目前任何代码和配置
  2. 相对于Logstash来说性能高,Logstash对于IO占用很大

Filebeat与Logstash对比:

Filebeat也不完全是好过Logstash,毕竟Logstash对于日志的格式化这些相对Filebeat好很多,Filebeat只是将日志从日志文件中读取出来,当然如果你日志本身是有一定格式的,Filebeat也可以格式化,但是相对于Logstash来说,还是差一点。

  • Elasticsearch

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

  • Filebeat

Filebeat隶属于Beats。目前Beats包含六种工具:

  1. Packetbeat(搜集网络流量数据)
  2. Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
  3. Filebeat(搜集文件数据)
  4. Winlogbeat(搜集 Windows 事件日志数据)
  5. Auditbeat( 轻量型审计日志采集器)
  6. Heartbeat(轻量级服务器健康采集器)
  • Kibana

Kibana可以为 Logstash 、Beats和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

安装JDK:

//Elasticsearch需要运行在Java 8 及以上,所以需要先安装Java8,下载JavaJDK
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1536892035_945cb24c750d0971b8c5b1925cc723a9
tar -zxvf jdk-8u181-linux-x64.tar.gz
vi /etc/profile
//文件末尾加上如下配置
JAVA_HOME=/usr/local/jdk1.8.0_181/
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

生效:

source /etc/profile

查看是否安装成功:

java -version
安装Elasticsearch:

下载Elasticsearch,本文以Elasticsearch7.8.0为例

注意:Elasticsearch、Kibana、FileBeat一定要使用相同的版本

root@t1:~# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz

解压之后修改配置:

mv elasticsearch-7.8.0 /usr/local/
cd /usr/local/elasticsearch-7.8.0
vim config/elasticsearch.yml
cluster.name: log-efk
network.host: 0.0.0.0 
http.port: 9200

注意: 由于Elasticsearch不能使用root用户打开,所以需要专门创建一个用户来启动Elasticsearch

$ user add elastic
#设置密码
$ passwd elastic
#需要输入2次密码
#授权
$ chmod -R 777 /usr/local/elasticsearch-7.8.0
#切换用户
$ su elastic

启动Elasticsearch:

elastic@t1:/usr/local/elasticsearch-7.8.0$ ./bin/elasticsearch

出现了错误信息:

ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configure

root权限下操作:

root@t1:~# vim /etc/sysctl.conf
vm.max_map_count = 262144

执行命令:

sysctl -p
vim elasticsearch.yml
cluster.initial_master_nodes: [“node-1”]

再次启动无报错,则:

nohup ./elasticsearch &  //后台运行
elastic@t1:/usr/local/elasticsearch-7.8.0/bin$ curl 127.0.0.1:9200        //执行此命令,得到类似以下json
{
  "name" : "t1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "bGYHgKCTSYmgGcHGoG0OlQ",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
安装kibana(一台)

下载并解压:

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
tar zxvf kibana-7.8.0-linux-x86_64.tar.gz

修改配置:

root@t2:/usr/local/kibana-7.8.0-linux-x86_64/config# vim kibana.yml 
elasticsearch.hosts: ["http://192.168.0.213:9200”]
server.host: “0.0.0.0"
kibana.index: ".kibana"

注意: elasticsearch.hosts为elasticsearch的地址,server.host默认是localhost,如果只是本地访问可以默认localhost,如果需要外网访问,可以设置0.0.0.0

启动kibana:

root@t2:/usr/local/kibana-7.8.0-linux-x86_64/bin# ./kibana

报错: Kibana should not be run as root. Use --allow-root to continue.

Kibana不建议root用户启动,如果非要用root启动,则加上参数 --allow-root

root@t2:/usr/local/kibana-7.8.0-linux-x86_64/bin# nohup ./kibana --allow-root &
安装filebeat(需要收集日志的机器都装)

下载并解压:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-linux-x86_64.tar.gz
tar zxvf filebeat-7.8.0-linux-x86_64.tar.gz

修改配置文件:

root@t1:/usr/local/filebeat-7.8.0-linux-x86_64# vim filebeat.yml 
//找到类似配置修改
filebeat.inputs:
- type: log
  enabled: true
  paths:
     - /tomcat/logs/catalina.out    //要监听的日志路径
  multiline.pattern: ^\[
  multiline.negate: true
  multiline.match: after
setup.kibana:
  host: “192.168.0.212:5601”
output.elasticsearch:
  hosts: [“192.168.0.213:9200”]

注意: 格式以两个空格位子级,enabled默认为false,需要改成true才会收集日志。

启动filebeat:

root@t1:/usr/local/filebeat-7.8.0-linux-x86_64# ./filebeat -e -c /usr/local/filebeat-7.8.0-linux-x86_64/filebeat.yml

浏览器打开http://kibanaip:5601(kibanaip替换为你装kibana的公网ip)

image

设置kibana:进入Management—>Stack Management—>Index Patterns
选择pattern,如果没有就创建一个。

image

创建完成后,在菜单栏Discover可以看到日志界面。

若要让Kibana显示中文界面,则需要改Kibana配置文件:

root@t2:/usr/local/kibana-7.8.0-linux-x86_64/config# vim kibana.yml
i18n.locale: "zh-CN"

至此,EFK搭建完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值