windows2016_x64搭建ELK(datasource->filebeat->logstash->elasticsearch->kibana)
本文示例日志程序基于asp.net core 3.0+nlog
ELK相关程序如下图:
日志组件推荐:
java: logback、lo4jasp.net: log4net、nlog
客户端安装和运行
下载filebeat安装包 filebeat7.5.1
编辑filebeat.yml,简易版配置如下:
filebeat.inputs:- type: log enabled: true paths: #- /var/log/*.log - F:\logs\xxx\*.logfilebeat.config.modules: # Glob pattern for configuration loading path: ${path.config}/modules.d/*.yml # Set to true to enable config reloading reload.enabled: falseoutput.logstash: # logstash地址和端口 hosts: ["192.168.3.43:5044"]processors: - add_host_metadata: ~ - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
运行程序并生成日志(window7_x64|192.168.3.42:8090),日志文件名:log-2020-01-08.log
2012-01-08 10:21:41.5296|0|INFO|logfile|windows service start... 2012-01-08 11:03:03.5926|0|INFO|logfile|windows service end... 2012-01-08 11:04:18.2756|0|INFO|logfile|windows service start... 2012-01-08 11:04:26.7556|0|INFO|logfile|测试0
filebeat包文件根目录执行程序:filebeat -e -c filebeat.yml
D:\devops\filebeat-7.5.1-windows-x86_64>filebeat -e -c filebeat.yml...2020-01-08T14:06:16.038+0800 INFO [monitoring]...
更多信息详见 filebeat官方文档
服务端安装和运行
安装 elasticsearch elasticsearch7.5.1
安装JDK并配置环境变量,本文elasticsearch版本7.5.1需JDK11+。JDK11
JAVA_HOME: C:\Program Files\jdk-11.0.5CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jarPATH追加: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CMD-> java -version 检测JDK
java version "11.0.5" 2019-10-15 LTSJava(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
配置elasticsearch环境变量
ES_HOME:C:\Program Files\elasticsearch-7.5.1PATH追加:%ES_HOME%\bin;
编辑/config/elasticsearch.yml,简易版配置如下:
cluster.name: elasticsearch-applicationnode.name: node-1network.host: 192.168.3.41http.port: 9200cluster.initial_master_nodes: ["node-1"]# 配置head corshttp.cors.enabled: truehttp.cors.allow-origin: "*"node.master: truenode.data: true
5.运行 elasticsearch7.5.1\bin\elasticsearch.bat, 访问 192.168.3.41:9200, 显示如下JSON字符串表示部署成功。
{ "name" : "node-1", "cluster_name" : "elasticsearch-application", "cluster_uuid" : "MUOnu8JbTTe7bT1ru3Vb7Q", "version" : { "number" : "7.5.1", "build_flavor" : "default", "build_type" : "zip", "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96", "build_date" : "2019-12-16T22:57:37.835892Z", "build_snapshot" : false, "lucene_version" : "8.3.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search"}
安装 elasticsearch-head插件
es5以上版本安装head需要安装node和grunt。下载nodejs并安装。
添加nodejs环境变量
path追加:C:\Program Files\nodejs\;
安装完成用cmd执行 node -v可查看版本号->v10.15.0
执行 npm install -g grunt-cli 安装grunt ,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号
在https://github.com/mobz/elasticsearch-head中下载head插件,选择下载zip
解压到指定文件夹下,G:\elasticsearch-7.5.1\elasticsearch-head-master 进入该文件夹,编辑Gruntfile.js 在对应的位置加上hostname:'*'
connect: {server: {options: {hostname:"*",port: 9100,base: '.',keepalive: true}}}
在D:\elasticsearch-7.5.1\elasticsearch-head-master 下执行npm install 安装完成后(Receiving 100%)。
执行grunt server 或者npm run start 运行head插件,如果不成功重新安装grunt。
重新运行 elasticsearch7.5.1\bin\elasticsearch.bat,访问192.168.3.41:9100 出现elasticsearch head 页面则表示安装成功,如下图:
安装kibana kibana7.5.1
编辑/kibana-7.5.1-windows-x86_64/config/kibana.yml,简易版配置如下:
server.port: 9101server.host: "0.0.0.0"elasticsearch.hosts: ["http://192.168.3.41:9200"]
运行kibana-7.5.1-windows-x86_64\bin\kibana.bat,访问192.168.3.40:9101,成功出现kibana页面则表示部署成功。
安装logstash logstash7.5.1
在Windows中logstash执行路径不能有空格
编辑D:/logstash-7.5.1/config/logstash-sample.conf文件,简易版如下:
input { beats { port => 5044 }}output { elasticsearch { hosts => ["http://192.168.3.41:9200"] index => "log-%{+YYYY.MM.dd}" }}
复制logstash-sample.conf至bin根目录下,执行命令:logstash -f logstash-sample.conf --config.reload.automatic
运行
依次运行elasticsearch、kibana、logstash、filebeat、日志log
在kibana->Disconver中创建日志索引
其他搭建方式
datasource->logstash->elasticsearch->kibana
datasource->filebeat->kafka->logstash->elasticsearch->kibana
datasource->filebeat->logstash->redis/kafka->logstash-> elasticsearch->kibana