首页 > 系统相关 >ELK-windows搭建笔记

ELK-windows搭建笔记

时间:2023-09-04 21:12:03浏览次数:60  
标签:ELK filebeat windows kibana log4j elasticsearch 日志 logstash 搭建

一、         介绍

Elasticsearch :开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash: 对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

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

 

 

二、         安装过程

首先装好jdk,配置好环境变量

ELK下载地址:https://www.elastic.co/downloads

1、启动Elasticsearch: Elasticsearch的bin目录,双击elasticsearch.bat,浏览器访问http://localhost:9200/,有返回信息表示成功

 

2、启动Logstash: logstash的bin目录下,新建文件logstash.conf

内容: input {

    tcp {                        //输入,诸如插件有 tcp、log4j、beats、redis等等

        host => "localhost"

        port => 4560

        codec => json

    }

    stdin {

    }

}

filter { }                   //过滤器

output {                              //输出

    stdout {

      codec => rubydebug

    }

    elasticsearch {      

        action => "index"              

        codec  => rubydebug

        hosts  => "127.0.0.1:9200"    

        index  => "logstash-%{+YYYY.MM.dd}"     

    }

}

启动方式: D:\ELK\logstash-5.4.3\bin>logstash -f logstash.conf

若只需要收集显示nginx的访问日志,则可以建立一个名为nginx+时间的索引 
若是需要收集一个服务器下的多个服务日志,则可以在一个conf下添加多个input并根据type来区分和实现

手动设置索引:filebeat 添加document_type配置 设置标识号,

                            Logstash配置对应的Type, if else输出不同的索引

 

且在kibana上也建立上述索引即可查看

 

3、启动kibana:进入kibana的config目录,修改kibana.yml文件,修改配置为:

elasticsearch.url: "http://127.0.0.1:9200"

server.port: 5601 

然后进入bin目录下,双击kibana.bat,启动成功后 访问http://localhost:5601/

 

注:以上启动方式为cmd窗口启动,当cmd窗口关闭服务也关闭,可以使用注册为windows服务

使用教程:https://blog.csdn.net/zinger198208/article/details/71630238

为Elasticsearch安装head插件

 

安装node和grunt

下载地址:https://nodejs.org/en/download/

安装到elasticsearch目录下

 

 

 

 

同一目录下执行 npm install -g grunt-cli

 

注:出现xxx不是内部指令 自行修改你的环境变量

安装head

修改elasticsearch.yml文件

 

在文件最后加入

http.cors.enabled: true 
http.cors.allow-origin: "*"
node.master: true
node.data: true

放开network.host: 192.168.0.1的注释并改为network.host: 0.0.0.0

放开cluster.name;node.name;http.port的注释

双击elasticsearch.bat重启es

Head下载地址:https://github.com/mobz/elasticsearch-head 

解压然后修改:E:\elasticsearch-5.4.1\elasticsearch-head-master\Gruntfile.js

 

 

cmd进入E:\elasticsearch-5.4.1\elasticsearch-head-master文件夹

执行 npm install

安装完成执行grunt server 或者npm run start(以后每次)

安装完成查看结果127.0.0.1:9100

 

 

 

复制文件

修改相应的conf/elasticsearch.yml

 

 

 

再启动相应的elasticsearch.bat,即可

Lo4j到ELK

方式一、利用filebeat中转

注:由于logstash逐渐不支持log4j插件 可以考虑使用filebeat做中间件,获取log4j的数据再传到logstash

修改 filebeat.yml 配置文件内容如下:

filebeat.prospectors:

- type: log

enabled: true

paths:

- E:\myCat_log\*

filebeat.config.modules:

path: ${path.config}/modules.d/*.yml

reload.enabled: false

setup.template.settings:

index.number_of_shards: 3

setup.kibana:

output.logstash:

hosts: ["localhost:5544"]

 

注:path为读取文件路径,host对应logstash的input的IP端口

filebeat启动 在安装目录中启动cmd,执行 filebeat -c filebeat.yml -e

logstash新文件建logstash_filebeat.conf 

内容

input {

beats {

port => 5544

}

}

 

output {

elasticsearch {

hosts => ["localhost:9200"]

index => "log4j2-%{+YYYY.MM}"

}

}


logstash启动方法:在bin目录中启动cmd,执行 logstash -f logstash_filebeat.conf 

 

方式二、利用tcp

logstash.conf文件

input {

  tcp{

       host =>"127.0.0.1"

    port => 4560

 

 

  }

 

}

 

output {

elasticsearch {

hosts => ["localhost:9200"]

 

}

}

项目配置文件

#Appender to logstash

log4j.rootLogger=DEBUG,socket

log4j.appender.socket=org.apache.log4j.net.SocketAppender

log4j.appender.socket.RemoteHost=localhost

log4j.appender.socket.port=4560

log4j.appender.socket.Encoding=UTF-8

log4j.appender.socket.application=localclient

log4j.appender.server.ReconnectionDelay=10000

 

 

 

 

关键

主要关键在于收集日志这个层面,也就是log4j到logstash这个过程,在5.xx版本的logstash的input中使用lo4j插件无法成功接收信息,logstash返回(This plugin is deprecated. Please use filebeat instead to collect logs from log4j applications.)只有2.xx版本才能使用,而且使用过会有乱码现象,而且elasticsearch也要求版本统一5.xx。

那么使用5.xx版本logstash里面tcp插件去接收log4j的信息,但是由于tcp的序列化读信息会造成乱码(需要相应的配置或者无法配置?),同时信息之多无法直观查看日志。所以可以考虑使用logstash推荐使用的filebeat.

Filebeat的好处:、轻量级传输转发,用logstash直接获取会很占用内存

                            、反压力敏感协议,高负荷数据量时放慢读取速度。压力解除,恢复

 

                                                 个人预想ELK使用情况

Phone----占用2台服务器(server1、server2)

Portal-----占用2台服务器(server3、server4)

为每个server配置一个filebeat(filebeat、filebeat2、filebeat3、filebeat4)

为每个server配置一个logstash(logstash1、logstash2、logstash3、logstash4)

每个server同时开启n套程序

filebeat1读取server1所有套程序的日志(filebeat2->server2如此类推)存放到logstash1, 大方向:logstash根据source路径区分出每套程序的日志,小方向:logstash利用(filter)再细分过滤出信息里面(message)的重要信息或者说你想要的信息,再建立相关索引如(server1-msg-%{+YYYY.MM.dd}")放到elasticserach集群上面,且在kibana上也建立上述索引即可查看,kiana上也可检索。

kiana使用

{

  "query": {

    "match": {

      "source": {

        "query": "D:\\GoXML\\readme.txt",

        "type": "phrase"

      }

    }

  }

}

关键信息查找直接在search输入即可

 

标签:ELK,filebeat,windows,kibana,log4j,elasticsearch,日志,logstash,搭建
From: https://www.cnblogs.com/zhuoneng/p/17678093.html

相关文章

  • windows驱动配置
    (一)C/C++属性设置1.添加包含文件"$(WDK)\inc\crt";"$(WDK)\inc\api";"$(WDK)\inc\ddk"2.设置目标平台Preprocessor:_X86_3.修改调用约定为__stdcall(/Gz)4.运行时库选择多线程调试(MTd)或者多线程(MT)基本运行时检查:默认值(二)Linker属性设置1.General:......
  • Windows python版本管理工具pyenv
    windows下的python多环境pyenv-win搭建安装pyenv-win在PowerShell中安装建议使用管理员身份打开PowerShellInvoke-WebRequest-UseBasicParsing-Uri"https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1"-OutFile"./insta......
  • Hadoop大数据平台搭建
    Hadoop平台搭建了解Hadoop一、Hadoop是什么?Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个存储系统+计算框架的软件框架。主要解决海量数据存储与计算的问题,是大数据技术中的基石。Hadoop以一种可靠、高效、可伸缩的方式进行数据处理,用户可以在不了解分布式底......
  • Jboss安装成windows服务及其卸载
    作者fbysss一、将JBOSS安装为windowsservice:   1.到http://www.opencrx.org/downloads/JavaService-bin-1.2.0.zip下载JavaService,解压。   2.拷贝JavaService.exe为%JBOSS_HOME%/bin/JBossService.exe.(首先确定已经有JBOSS_HOME环境变量。)   3.进入%JBOSS_HOME%/,建......
  • Windows 系统在任务管理器中结束资源管理器后电脑黑屏
    1、出现问题状况如下:有时候电脑运行某个程序会特别卡,所以一般会在任务管理器中手动结束某个任务,打开快捷键(ctrl+alt+delete),结束任务后电脑黑屏。在任务管理器中的资源监视器中停掉了explorer.exe导致的黑屏。2、解决方式如下:在电脑黑屏状态下:按住ctrl+shift+Esc,启动任务管理......
  • 分享实用工具源码--实现Windows IDE中查看Linux下编译信息
    作者:fbysss关键字:实用工具源码 Windows下查看Linux编译信息一、背景:本人写C程序不多,更不用说Linux下了。偶然一个机会,接了个这样的活,vi我用的还马马虎虎,但程序超过一千行,看起来就有些眼花了。于是只好在VC下编写代码,ftp传到Linux服务器,再用gcc编译,出错了再到VC下修改,再上传,如......
  • Windows隐藏nginx的版本,去掉header中的server后面的内容
    一、隐藏nginx的版本,只需要修改nginx的配置文件,重启nginx即可打开nginx所在文件下的conf文件夹下的nginx.conf修改server节点下的 server_tokens改为server_tokensoff;如果没有,添加即可; 二、去掉header中的server后面的内容想将上面截图中的server里面的ngxin也去掉,需......
  • 项目开发环境搭建手记(2.Jdk安装——替代原有的OpenJDK)
    作者:fbysss前言:Centos下,Java已经安装好了,1.7版本的,但是并没有JAVA_HOME等环境变量。于是:exportJAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME......
  • 云原生环境搭建第三篇:Ceph存储
    云原生环境搭建第三篇:Ceph存储原创 杨同港 者行花 2023-07-1811:43 发表于山东收录于合集#云原生5个GlusterFS在k8s1.25中被移除,所以开源的,社区活跃度高的分布式存储最优选就是ceph,本文使用rook-ceph部署ceph集群。ceph是一个开源的存储平台。它的架构如下:Ceph存......
  • Windows IIS提示80端口被占用
    在使用IIS部署网站中提示“无法启动此网站。其他网站可能存在同一端口。”报错截图如下:netstat-aon|findstr"80"##查找http服务控制器进程IDnetshhttpshowservicestate最后在任务管理器找到相关PID进程......