微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

一、ELK概述

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

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

二、架构设计分析

方案1:

image.png

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

方案2:

image.png

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

为什么要是用fifilebeat: 

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

工作原理如下:

启动时,它会启动一个或者多个prospector监控日志路径或 日志文件,每个日志文件会有一个对应的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路径下的所有文件作为输入,这就意味着获取/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"

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐