Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

时间:2023-02-26 00:23:22
参考博客:http://udn.yyuap.com/thread-54591-1-1.html ; https://www.cnblogs.com/yanbinliu/p/6208626.html ; http://blog.csdn.net/wyqlxy/article/details/52622867
 
在互联网项目中,良好的日志监控和分析能保障业务稳定运行,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常时进行报警,协助开发人员查看相关日志。
ELK就是实现这种功能的一套系统,它是elasticsearch,logstash以及kibana的简称。最近打算将其用来管理数据平台产生的各种日志,这里记录一下在测试环境中搭建的步骤以及遇到的问题。
大体框架:
日志数据流如下,应用将日志落地在本地文件,部署在每台服务器上的FileBeat负责收集日志,然后将日志发送给LogStash;LogStash将日志进行处理之后;然后将处理后的Json对象传递给ElasticSearch,进行落地并进行索引处理;最后通过Kibana来提供web界面,来查看日志等。因为ES是基于Lucene的,所以Kibana支持Lucene查询语法。
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
对于日志数据流特别大的情况,LogStash会造成拥堵,这个时候可以使用消息队列来进行缓冲。同时,日志一旦进过LogStash之后,会不方面一些流处理程序来读取。这个时候使用kafka就比较好了,因为kafka是将消息持久化在本地,流处理应用可以从消息的offset初始的地方来读取。加入kafka的后的流程如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

安装流程:
1.软件版本

logstash版本:1.5.4(因不支持beats输入插件,故弃用),2.2.1(目前使用版本)

elasticsearch版本:1.7.1

kinaba版本:4.1.1

filebeat版本:5.5.1

java版本:jdk-8u152

2.安装步骤

步骤一、下载Java组件并安装

下载最新版本的jdk,解压缩双击安装。备注:请务必使用java8以上的版本,否则ELK不能正常使用。

步骤二、添加JAVA_HOME 环境变量

右键“这台电脑“-〉属性-〉高级系统设置-〉环境变量,在系统变量里新建JAVA_HOME,值为C:\Java\jdk1.8.0_152,如下图所示

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

步骤三、安装配置nginx,为kibana配置反向代理

解压nginx-1.9.4.zip到f:\elk,目录更名为nginx.
修改f:\elk\nginx\conf\nginx.conf文件,增加如下内容
server{
        listen       80;
        server_name  localhost;
        location / {
       proxy_set_header Host $host;
        proxy_pass http://localhost:5601;
        }
这样做解决了5601端口被防火墙屏蔽,导致外部用户访问不了的问题。

步骤四、安装elasticsearch

解压elasticsearch-1.7.1.zip压缩包到F:\elk\elasticsearch地址下

打开命令行,输入如下命令
Pushd f:\elk\elasticsearch\bin\
Service install 
产生如下输出
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
然后输入
service manager
出现如下界面
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
修改“Startup type “ ,从Manual到Automatic。
然后点击”Start“, elasticsearch将立即开始运行。
在浏览器中输入http://localhost:9200,出现如下界面,表明elasticsearch安装成功。

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

步骤五、安装head插件

解压elasticsearch-head-master.zip压缩包内容到elasticsearch\plugins文件夹下,修改elasticsearch-head-master名称为head,在浏览器中输入http://localhost:9200/_plugin/head/即可查看Elasticsearch中数据

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

步骤六、安装logstash

解压logstash-2.2.1.zip压缩包到F:\elk\logstash地址下

在f:\elk\logstash\bin里新建Logstash.conf
内容如下

input {
beats {
port => "5544"
codec => json {
charset => "UTF-8"
}
}
}
filter {
if [type] == "info" {
grok {
match => {
"message" => "(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s+\[(?<thread>.*)\]\s+(?<level>\w*)\s+(?<class>\S*)\s+\[(?<method>\S*)\]\s+\: (?<message>.*)\s*"
}
overwrite => ["message"]
}
}
if [type] == "error"{
grok {
match => {
"message" => "(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s+\[(?<thread>.*)\]\s+(?<level>\w*)\s+(?<class>\S*)\s+\[(?<method>\S*)\]\s+\- (?<message>.*)\s*"
}
overwrite => ["message"]
}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test-%{+YYYY-MM}"
}
stdout { codec => rubydebug }
}

步骤七、新建Logstash 启动批处理文件
在文件夹f:\elk\logstash\bin下新建run.bat 文件
文件内容如下
logstash.bat agent -f logstash.conf
增加这个批处理的目的是为了解决在windows环境下logstash运行一段时间就会挂起的问题。
 
步骤八、将Logstash安装成windows服务
首先从网址https://nssm.cc/release/nssm-2.24.zip下载nssm。
解压nssm-2.24.zip,然后从解压目录中拷贝nssm-2.24\win64\nssm.exe到f:\elk\logstash\bin里,然后在命令行里输入
Pushd f:\elk\logstash\bin
接着执行
Nssm install logstash
出现安装界面
 
请填写如下信息:
Path: f:\elk\logstash\bin\run.bat
Startup directory: f:\elk\logstash\bin
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

点击"Details"页签,填写如下内容
Display name:logstash
Startup type:Automatic
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

接下来点击"Dependencies"页签,填写如下信息
This service depends on the followingsystem components: elasticsearch-service-x86
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

添加依赖的原因是,logstash的输出配置的是Elasticsearch,如果Elasticsearch没有启动,logstash无法正常工作。

最后单击install service按钮,执行安装过程,出现如下界面,表示服务已经安装成功。
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
步骤九、将Kibana安装成windows服务
将步骤八下载的nssm拷贝到文件夹f:\elk\kibana\bin下。
然后在命令行里输入
Pushd f:\elk\kibana\bin
接着执行
Nssm install kibana
出现安装界面
请填写如下信息:
Path: f:\elk\kibana\bin\kibana.bat
Startup directory: f:\elk\kibana\bin
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
类似步骤八
点击"Details"页签,填写如下内容
Display name:kibana
Startup type:Automatic
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

接下来点击"Dependencies"页签,填写如下信息
This service depends on the followingsystem components:
elasticsearch-service-x86
logstash
界面如下:
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程
最后单击install service按钮,执行安装过程,出现如下界面,表示服务已经安装成功。
Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

你可以在"f:\elk\kibana\config\kibana.yml"中修改kibana的运行端口。

步骤十、安装FileBeat

(一)、安装

1.将文件夹中filebeat-5.5.1-winsows-x86_64.zip压缩包(也可自行下载)解压到C:\filebeat文件夹

2.以管理员身份运行PowerShell(此处不要用cmd.exe),在控制台中输入以下命令安装

CD C:\filebeat

.\install-service-filebeat.ps1

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

3.安装过程中会出现以上错误,此时需更改执行策略,语句如下

Set-executionpolicy RemoteSigned

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

选择:y  执行完后重新执行安装命令

.\install-service-filebeat.ps1

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

至此安装成功,此时可看到filebeat服务为关闭状态

4.在开始菜单-运行输入Services.msc打开本地服务操作栏,找到filebeat.exe,启动服务

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

(二)、配置

1.打开C:\filebeat文件夹,找到filebeat.yml配置文件,打开

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

2.将以下内容替换到配置文件中,根据需要更改配置内容(注意,由于文件为yml格式,所以同一模块中的行列需对齐,否则无法读取该配置文件)

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程

(三)、数据查看

重新启动服务,往配置文件所在的日志目录中插入数据,打开http://localhost:9200/_plugin/head/http://localhost:5601即可查看新增的日志数据

附:

测试数据(2017120713.TXT)

2017-12-07 13:00:24,330 [service_FlightInfoDeptDateCalculater0] INFO DispatchAssist.ACARSMonitorNew.FlightInfoDeptDateCalculater [Save] : 共有22条数据需要更新
2017-12-07 13:00:25,220 [service_ACARSMonitorNew0] INFO DispatchAssist.ACARSMonitorNew.ACARSParser [ACARSReportMatches] : M11开始解析............. QU SHAITMU
.BJSXCXA 070500
M11
FI MU2412/AN B-1018
DT BJS LHW 070500 M42A
- POS
CAS 288,LAT N 38.388,LON E105.944,ALT 25580,FOB 15960,UTC 050023
2017-12-07 13:30:41,718 [service_ACARSMonitorNew0] INFO Ceair.Operations.WindowsServiceClient.Program [SingleThreadTask] : 下次执行时间:2017-12-07 13:30:41
2017-12-07 13:30:41,718 [service_ACARSMonitorNew0] INFO Ceair.Operations.WindowsServiceClient.Program [SingleThreadTask] : Sleep:30000

Windows搭建Log4Net+FileBeat+ELK日志分析系统过程的更多相关文章

  1. Windows系统下Log4Net&plus;FileBeat&plus;ELK日志分析系统问题总结

    问题如下:1.FileBeat日志报 "dial tcp 127.0.0.1:5544: connectex: No connection could be made because the ...

  2. 十分钟搭建和使用ELK日志分析系统

    前言 为满足研发可视化查看测试环境日志的目的,准备采用EK+filebeat实现日志可视化(ElasticSearch+Kibana+Filebeat).题目为“十分钟搭建和使用ELK日志分析系统”听 ...

  3. Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

    一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储.索引日志, logstash —— 可用于日志传输.转换,kibana —— WebUI,将日志可视化),发现最新版已到7 ...

  4. Rsyslog&plus;ELK日志分析系统

    转自:https://www.cnblogs.com/itworks/p/7272740.html Rsyslog+ELK日志分析系统搭建总结1.0(测试环境) 因为工作需求,最近在搭建日志分析系统, ...

  5. ELK日志分析系统-Logstack

    ELK日志分析系统 作者:Danbo 2016-*-* 本文是学习笔记,参考ELK Stack中文指南,链接:https://www.gitbook.com/book/chenryn/kibana-g ...

  6. 《ElasticSearch6&period;x实战教程》之实战ELK日志分析系统、多数据源同步

    第十章-实战:ELK日志分析系统 ElasticSearch.Logstash.Kibana简称ELK系统,主要用于日志的收集与分析. 一个完整的大型分布式系统,会有很多与业务不相关的系统,其中日志系 ...

  7. ELK日志分析系统简单部署

    1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...

  8. elk 日志分析系统Logstash&plus;ElasticSearch&plus;Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

  9. ELK日志分析系统搭建

    之前一段时间由于版本迭代任务紧,组内代码质量不尽如人意.接二连三的被测试提醒后台错误之后, 我们决定搭建一个后台日志分析系统, 经过几个方案比较后,选择的相对更简单的ELK方案. ELK 是Elast ...

随机推荐

  1. Linux 常见的进程调度算法

    1.在介绍进程调度之前,先对进程的状态的概念应该有所了解,下面是关于进程状态的一些基本概念:进程的状态分为三种,分别为: 1).运行态:该状态表明进程在实际占用CPU 2).就绪态: 该状态下进程可以 ...

  2. Flex &plus;WebService

    <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...

  3. 如何使用eclipse进行嵌入式Linux的开发

    如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux ...

  4. 40&period; leetcode 202&period; Happy Number

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  5. Lua热更新&lpar;hotfix&rpar;

    Lua热更新(hotfix)(金庆的专栏)hotfixLua 5.2/5.3 hotfix. Hot update functions and keep old data.https://github ...

  6. Android二维码学习

    http://www.cnblogs.com/liuan/category/347622.html http://blog.csdn.net/xiaanming/article/details/101 ...

  7. java之httpClient 3&period;x、AsyncHttpClient1&period;9&period;x使用总结

    首先请大牛们见谅菜鸟重复造*的学习方式,本文适合新手看~ 下面使用的同步http是HttpClient 3.X的版本,不过早已不在维护,如果刚开始使用http,建议大家都换成4.X版本,别看下面的有 ...

  8. SpringBoot集成RabbitMQ

    官方说明:http://www.rabbitmq.com/getstarted.html 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ ...

  9. django之manytomanyfield

    #mezzanine中BlogPost类的定义class BlogPost(Displayable, Ownable, RichText, AdminThumbMixin): "" ...

  10. vue全局组件和局部组件

    1.全局注册组件 Vue.componet('name',{ template:'<div></div>', data(){ retrun {} } }) 使用了以上这种方式注 ...