PHP

首页 -  PHP  -  ELK日志分析搭建(elasticsearch+Logstash+Kibana)

ELK日志分析搭建(elasticsearch+Logstash+Kibana)

ELK日志分析搭建(elasticsearch+Logstash+Kibana)

一、ELK概述

ELKElasticsearchLogstashKibana这三款开源框架首字母的缩写; 

ELK职能分工 logstash做日志对接,接受应用系统的log,然后将其写入到elasticsearch中,logstash可以支持Nlog渠道, kafka渠道写进来的、和log目录对接的方式、也可以对reids中的log数据进行监控读取,等等。 elasticsearch存储日志数据,方便的扩展特效,可以存储足够多的日志数据。 kibana则是对存放在elasticsearch中的log数据进行:数据展现、报表展现,并且是实时的。

二、架构设计分析

方案1:

image.png

方案一是最简单的一种ELK架构方式 缺点:Logstash运行占用CPU和内存较高

方案2:

image.png

官方推荐:将收集端logstash替换为beats,更灵活,消耗资源更少,扩展性更强。同时可配置Logstash Elasticsearch 集群用于支持大集群系统的运维日志数据监控和查询

为什么要是用fifilebeat: 

FilebeatLogstash ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpuio等资源消耗比较高。相比 LogstashBeats所占系统的CPU和内存几乎可以忽略不计。 Filebeat工作原理 Filebeat是使用GO语言开发,

工作原理如下:

Filebeat启动时,它会启动一个或者多个prospector监控日志路径或 日志文件,每个日志文件会有一个对应的harvesterharvester按行读取日志内容并转发至后台程序。Filebeat维护 一个记录文件读取信息的注册文件,记录每个harvester最后读取位置的偏移量。

三、安装部署Elasticsearch集群,kibana

参数地址:http://www.xiaoshu168.com/docker/393.html

四、安装logstash

下载安装包https://pan.baidu.com/s/1XR3YzHtiZ_wJCcK6ORYtfA 提取码:vduk 
mkdir -p /usr/local/logstack && cd /usr/local/logstack
把文件放到创建的目录解压即可

五、安装fifilebeat

下载安装包https://pan.baidu.com/s/1mZ10Nk9rjdaeIru5Tc-QMQ 提取码:egr6 
mkdir -p /usr/local/filebeat && cd /usr/local/filebeat
把文件放到创建的目录解压即可

六、配置启动

在logstash安装目录下新建一个文件fifirst-pipeline.conf

input {
    beats {
        port => "5044"#端口
    }
}

output {
    elasticsearch {
    # hosts => ["192.168.232.104:9200","192.168.232.104:9201","192.168.232.104:9202"]
    hosts => ["192.168.232.204:9200"]#修改为自己的es地址和端口 
    index => "nginx-access-log-%{+YYYY.MM.dd}"
  }
}


检查配置并启动Logstash
cd /usr/local/logstack/logstash-7.6.1 
bin/logstash -f first-pipeline.conf --config.test_and_exit 
(--confifig.test_and_exit选项的意思是解析配置文件并报告任何错误)

cd /usr/local/logstack/logstash-7.6.1 
bin/logstash -f first-pipeline.conf --config.reload.automatic
(--confifig.reload.automatic选项的意思是启用自动配置加载,以至于每次你修改完配置文件以后无需停止 然后重启Logstash) 

Filebeat配置和启动
filebeat.inputs: 
- type: log 
    enabled: true 
    paths: - /var/log/nginx/*.log #修改为自己的文件 
    output.logstash: hosts: ["192.168.232.104:5044"] # 修改为自己的logstash的ip和端口

在这个例子中,获取在/var/log/nginx/*.log路径下的所有文件作为输入,这就意味着Filebeat将获取/var/log/nginx 目录下所有以.log结尾的文件。 

为了从预定义的子目录级别下抓取所有文件,可以使用以下模式:

/var/log/*/*.log

启动fifilebeat

cd /usr/local/filebeat/filebeat-7.6.1-linux-x86_64
 ./filebeat -e -c filebeat.yml -d "publish"

注意! 上面启动fifilebeatlogstash都是在窗口交互式启动的, 实际产线环境中需要后台运行方式启动,就可以在后 台运行,关掉窗口也不会结束运行了。

(0)
分享:

本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!

相关阅读