UDN-企业互联网技术人气社区

板块导航

浏览  : 15226
回复  : 5

[原创] 在Windows服务器上安装ELK

[复制链接]
紫薇花开的头像 楼主
发表于 2015-9-17 10:12:29 | 显示全部楼层 |阅读模式
本帖最后由 紫薇花开 于 2015-9-17 10:14 编辑

Windows服务器上安装ELK
在互联网项目中,良好的日志监控和分析能保障业务稳定运行,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常时进行报警,协助开发人员查看相关日志。
ELK就是实现这种功能的一套系统,它是elasticsearch,logstash以及kibana的简称。最近我们部门打算将其用来管理数据平台产生的各种日志,这里记录一下我们在测试环境中搭建的步骤。
备注:网络上有很多在linux系统下如何配置ELK的文章,这篇文章主要详细介绍windows环境下如何配置ELK。

1.日志平台的结构示意图
elk1.png



说明:
·        多个独立的nxlog负责收集不同来源的数据,一个中心logstash负责汇总和分析数据,Logstash后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。
·        Nxlog用来收集各种来源的日志数据,可以是系统日志、文件、redis、mq等等;
·        中心LogStash,执行相关的分析和处理(Filter);
·        ElasticSearch用于存储最终的数据,并提供搜索功能;
·        Kibana提供一个简单、丰富的web界面,数据来自于ElasticSearch,支持各种查询、统计和展示;
·        Nginx提供反向代理功能,可以屏蔽端口号;
·         
2.部署环境
测试环境
Windows10
Windows2012
Windows8.1
Windows2008 R2
以上环境经测试,均适用本篇文章
组件版本
logstash版本:1.5.4
elasticsearch版本:1.7.1
kibana版本:4.1.1
nxlog版本:2.8.1248
Java版本:jdk-8u51


3.安装步骤
步骤一:下载所需组件,包括Logstash、Kibana 、Elasticsearch和nxlog
你可以直接进入网站 https://www.elastic.co/downloads,下载最新的组件,
也可以使用如下链接下载与本篇文章相同版本的组件。


步骤二 解压文件
我创建了文件夹“F:\elk“,将所有压缩包解压到此目录,方便以后管理。
目录结构如下所示:
F:\elk\elasticsearch
F:\elk\logstash
F:\elk\kibana


步骤三 下载java组件并安装
下载路径:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载最新版本的jdk即可。
注:请务必使用java8以上的版本,否则ELK不能正常使用。

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

步骤五 新建Logstash配置文件
在f:\elk\logstash\bin里新建Logstash.conf
内容如下
input{
  tcp {
    port => 5544
    codec => "json"
  }
}
output{
  elasticsearch {
    host => "localhost"
    port => "9200"
    protocol => "http"
  }
}

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

步骤七 启动elasticsearch
打开命令行,输入如下命令
Pushdf:\elk\elasticsearch\bin\
Serviceinstall
产生如下输出
elk3.png



然后输入
servicemanager
出现如下界面
elk4.png


修改“Startup type “ ,从Manual到Automatic。
然后点击”Start“, elasticsearch将立即开始运行。
在浏览器中输入http://localhost:9200,出现如下界面,表明elasticsearch安装成功。

elk5.png


步骤八 新建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.exeff:\elk\logstash\bin里,然后在命令行里输入
Pushd f:\elk\logstash\bin
接着执行
Nssm install logstash
出现安装界面

请填写如下信息:
Path: f:\elk\logstash\bin\run.bat
Startup directory: f:\elk\logstash\bin
界面如下:
elk6.png

点击"Details"页签,填写如下内容
Display namelogstash
Startup typeAutomatic
界面如下:
elk7.png

接下来点击"Dependencies"页签,填写如下信息
This service depends on the followingsystem components: elasticsearch-service-x86
界面如下:
elk8.png

添加依赖的原因是,logstash的输出配置的是Elasticsearch,如果Elasticsearch没有启动,logstash无法正常工作。
最后单击install service按钮,执行安装过程,出现如下界面,表示服务已经安装成功。
elk9.png


步骤九:将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

界面如下:
elk10.png


类似步骤八
点击"Details"页签,填写如下内容
Display namekibana
Startup typeAutomatic
界面如下:
elk11.png

接下来点击"Dependencies"页签,填写如下信息
This service depends on the followingsystem components:
elasticsearch-service-x86
logstash

界面如下:
elk12.png


最后单击install service按钮,执行安装过程,出现如下界面,表示服务已经安装成功。
elk13.png

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

步骤十 安装nxlog
双击nxlogmsi包,你将看到如下安装界面:
elk14.png

点击install按钮,执行安装过程,出现如下界面,表明安装完成。
elk15.png


步骤十一 修改nxlog的配置文件
进入"C:\Program Files (x86)\nxlog\conf",修改nxlog.conf文件
我们系统使用的是log4j记录的日志,ConversionPattern格式配置为 %d{ yyyy-MM-dd HH:mm:ss } %-5p %-20c ~ %m%n,所以我们采用的解析脚本内容如下,各位可以按照自己的日志文件格式做相应的变更。
elk16.png



因为log4j记录的日志存在多行的情况,那么如何将多行记录解析成一行日志,放到logstash里呢?完整配置文件请查阅http://10.10.71.15:5601/nxlog.zip,此地址必须在公司内网才可以访问。

步骤十二:启动Logstash, Kibana and nxlog
在运行里执行"services.msc",然后启动按顺序启动如下服务
Logstash
Kibana
Nxlog

如果安装正确,在浏览器中输入http://kibana.upmallapp.com,可以看见如下界面

elk17.png


有的时候,你可能看不见这些选项,这意味着logstash没有放任何内容到elasticsearch中,请检查你的日志文件,是否存在内容,或者过一会再刷新网站。如果上述界面正确出现,请单击"Create"按钮
现在点击"Discover",你就可以看见项目的日志如下所示:
elk18.png


至此,在windows上配置ELK已经全部顺利完成。

kibana1.png

相关帖子

发表于 2016-8-10 18:48:38 | 显示全部楼层
大神,我的出来怎么是这样呢,方便留个联系方式吗?谢谢!
QQ图片20160810185142.png
使用道具 举报

回复

发表于 2016-11-29 15:02:57 | 显示全部楼层
首先,感谢楼主分享。
经测试。http://kibana.upmallapp.com这个地址应为:
http://localhost:5601/
。特地回帖告知下大家。
再次感谢楼主分享。
使用道具 举报

回复

发表于 2017-1-10 15:09:30 | 显示全部楼层
good!!!!!!!!!!!!!!
使用道具 举报

回复

发表于 2017-1-10 15:09:37 | 显示全部楼层
good!!!!!!!!!!!!!!
使用道具 举报

回复

发表于 2017-4-25 09:03:31 | 显示全部楼层
我使用你提供的版本和配置,可以正常收集windows系统日志;但是指定的IIS日志文件却无法由nxlog收集,到logstash,再到es,服务都能正常启动,纳闷
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部