windows下部署安装 ELK,nginx,tomcat日志分析

news/2025/1/26 16:11:43/

1.安装包

如上就是elk- windows下部署需要用到的安装包 (ps:注意版本需要对应,另外es7版本对应是 jdk8,若更高版本 请自行查询版本对应号)。

下载地址:

Past Releases of Elastic Stack Software | Elastic

此地址可下载elk的全部安装包(不包含分词器),请按照对应系统选择对应版本。

2.安装es

ES 在windows下,压缩包直接解压,进入bin目录启动 elasticsearch.bat 即可。

关于分词器的添加,解压分词器,重命名为 ik,将 这个ik文件夹 放入 elasticsearch-7.9.3\plugins 目录下即可

如上,显示分词器添加成功

启动成功后,访问:

推荐一个es链接工具 es-client (开源,免费,好用)

地址:es-client: ES查询客户端,elasticsearch可视化工具

3.安装filebeat - 读取日志

压缩包解压即可,修改 filebeat.yml 文件,具体修改如下(如下只是作为测试,此配置为主要配置的参数,并非全部,请勿全部复制,具体根据自己的需求 自行配置)

============================== Filebeat inputs ===============================
# 单个日志配置 采集nginx
# filebeat.inputs:
# - type: log
#   enabled: true
#   paths:
#     # - /var/log/*.log
#     # - c:\programdata\elasticsearch\logs\*
#     - D:\tools\jiankong_tools\jiankong-nginx-1.26.2\logs\access.log# 示例
# - type: log
#   enabled: true
#   paths:
#     - C:\path\to\tomcat\logs\*.log  # 替换为实际的Tomcat日志路径
#   fields:
#     type: tomcat
#     service: tomcat# 定义全局字段,所有输入都将包含这些字段
fields:environment: "production" # 如果适用,定义环境(如生产、测试)filebeat.inputs:
- type: logenabled: truepaths:- D:/nginx-1.26.2/logs/access.log*- D:/nginx-1.26.2/logs/error.log*tags: ["nginx"] # 标签,用于Logstash中的条件判断fields:service: nginx # 指定服务名,用于后续过滤# 如果你选择在Filebeat中解析,可以添加如下processorsprocessors:- dissect:# tokenizer: '%{ip} - %{user} [%{timestamp}] "%{method} %{uri} HTTP/%{http_version}" %{status} %{size} "%{referrer}" "%{user_agent}" rt=%{response_time}'tokenizer: 'rt=%{response_time}'field: 'message'target_prefix: 'nginx' # multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}' # 匹配日期格式的行作为新消息的开始# multiline.negate: true # 反转模式匹配,即非日期开头的行被视为同一事件的一部分# multiline.match: after # 在找到匹配行后,将随后的行附加到该事件中- type: logenabled: truepaths:- D:/apache-tomcat-9.0.83/xoalogs/*.log # Tomcat自定义日志路径- D:/apache-tomcat-9.0.83/logs/*.log # Tomcat标准日志路径tags: ["tomcat"] # 标签,用于Logstash中的条件判断fields:service: tomcat # 指定服务名,用于后续过滤multiline.pattern: '^\s*(\d{4}|\d{2})-(\d{2}|[a-zA-Z]{3})-(\d{2}|\d{4})' # 匹配日期格式的行作为新消息的开始multiline.negate: true # 反转模式匹配,即非日期开头的行被视为同一事件的一部分multiline.match: after # 在找到匹配行后,将随后的行附加到该事件中# ---------------------------- Elasticsearch Output ----------------------------
# 此为默认配置,注释此配置 ,添加下面的 写入logstash 端口为5044
# output.elasticsearch:
#   # Array of hosts to connect to.
#   hosts: ["localhost:9200"]# Protocol - either `http` (default) or `https`.#protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"#username: "elastic"#password: "changeme"# ------------------------------ Logstash Output -------------------------------
output.logstash:# The Logstash hostshosts: ["localhost:5044"]

启动filebeat:

进入解压的目录 执行 注意配置指向路径改为自己的:

.\filebeat.exe -e -c D:\xxx\filebeat-7.9.3-windows-x86_64\filebeat.yml

4.安装logstash - 接收来自filebeat的日志

logstash-7.9.3\config 目录下已经有一个 logstash-sample.conf 示例了,也可自行添加一个 conf文件,我添加了一个 log.conf文件 配置如下:

input {beats {port => 5044}
}# 单独写入一个 es的索引
# output {
#   elasticsearch {
#     hosts => ["http://localhost:9200"]
#     index => "test123"
#     #user => "elastic"
#     #password => "changeme"
#   }
# }filter {if "nginx" in [tags] {grok {match => { "message" => '%{IPORHOST:clientip} - %{DATA:user} $%{HTTPDATE:timestamp}$ "%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} %{NUMBER:bytes:int} "%{DATA:referrer}" "%{DATA:agent}" rt=%{NUMBER:response_time:float}' }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]target => "@timestamp"}}if "tomcat" in [tags] {grok {match => { "message" => "%{TIMESTAMP_ISO8601:log_timestamp} $%{DATA:thread}$ %{LOGLEVEL:level} %{JAVACLASS:class} - %{GREEDYDATA:message}" } # 解析Tomcat日志,包括线程、日志级别、类名和消息}date {match => [ "log_timestamp", "yyyy-MM-dd HH:mm:ss,SSS", "yyyy-MM-dd HH:mm:ss" ] # 支持两种时间格式:带或不带毫秒target => "@timestamp"}}
}output {elasticsearch {hosts => ["http://localhost:9200"] # Elasticsearch主机地址index => "%{[fields][service]}" # 索引命名模式}stdout { codec => rubydebug } # 输出到控制台,仅用于调试目的,上线前应移除
}

启动logstash:

进入 logstash-7.9.3\bin 目录下,执行如下命令 (注意路径和配置文件 指向你自定义名称的配置文件)

.\logstash.bat -f D:\ELK\logstash-7.9.3\config\log.conf

5.安装kibana

解压即可,进入kibana-7.9.3-windows-x86_64\bin 目录执行:

kibana.bat 即可启动,之后访问 http://localhost:5601/

( config/ kibana.yml ,修改 i18n.locale: "zh-CN" ,中文模式)

6.kibana监控日志配置

前面5步,全部安装配置完毕,启动成功后,根据下图指示,创建对应的 索引,下一步 配置索引设置,选择 时间格式,即可创建对应的索引,

索引创建成功后,即可看到对应的日志存储在 es中的字段信息,右上角可刷新或者删除,logstash会解析日志,若日志格式变更,或者增加了显示字段,这里也会相应的增加对应字段。

最后点击 Discover 即可 选择你创建的索引来查看实时日志信息了

可根据分钟显示,字段搜索等,其他的可自行去摸索了


http://www.ppmy.cn/news/1566036.html

相关文章

汇编语法及相关指令

1.汇编指令的基本格式&#xff1a; <opcode>{<cond>}{s} <Rd>, <Rn>, <shifter_operand> opcode&#xff1a;指令的功能码&#xff0c;用来表示当前指令的作用 cond&#xff1a;条件码&#xff0c;需要在指令执行之前先判断条件受否满足&…

2024年CSDN年度回顾:个人成长、创作历程与生活的融合与平衡

2024年CSDN年度回顾&#xff1a;个人成长、创作历程与生活的融合与平衡 时光荏苒&#xff0c;转眼间2024年已悄然落幕。这一年&#xff0c;我在CSDN平台上度过了169天&#xff0c;创作了264篇原创文章&#xff0c;收获了9976位粉丝的喜爱与支持。回顾这一年&#xff0c;不仅是…

windows 极速安装 Linux (Ubuntu)-- 无需虚拟机

1. 安装 WSL 和 Ubuntu 打开命令行&#xff0c;执行 WSL --install -d ubuntu若报错&#xff0c;则先执行 WSL --update2. 重启电脑 因安装了子系统&#xff0c;需重启电脑才生效 3. 配置 Ubuntu 的账号密码 打开 Ubuntu 的命令行 按提示&#xff0c;输入账号&#xff0c;密…

人工智能的出现,给生命科学领域的研究带来全新的视角|行业前沿·25-01-22

小罗碎碎念 今天和大家分享一份白皮书&#xff0c;系统总结并陈述人工智能在生命科学领域的应用。 人工智能在生命科学领域的应用&#xff0c;具体包括——单细胞转录组、疾病诊疗、医疗文本处理、RNA结构预测等多个方面&#xff0c;通过这份报告&#xff0c;我们可以详细了解相…

DAY5, 使用read 和 write 实现链表保存到文件,以及从文件加载数据到链表中的功能

题目 使用read 和 write 实现链表保存到文件&#xff0c;以及从文件加载数据到链表中的功能 代码 link.h文件 typedef int DataType;typedef struct linklist {struct {DataType data; //普通节点数据域struct linklist *tail; //头节点数据域};struct linklist *next; …

51单片机——按键控制LED流水灯

引言 在电子制作和嵌入式系统学习中&#xff0c;51 单片机是一个经典且入门级的选择。按键控制 LED 流水灯是 51 单片机的一个基础应用&#xff0c;通过这个实例&#xff0c;我们可以深入了解单片机的输入输出控制原理。 51 单片机简介 51 单片机是对所有兼容 Intel 8051 指…

Android节点读写实现

在工作中&#xff0c;我们会对一些节点进行读写操作。比如控制闪光灯&#xff0c;指示灯;降噪芯片开关或其低功耗开关&#xff0c;因为项目中常用到&#xff0c;在此记录&#xff0c;备忘&#xff5e; 直接上代码&#xff0c;想用直接拿去 一 监听某个节点的写入值的反馈 有些…

springboot使用ssl连接elasticsearch

使用es时ssl证书报错 unable to find valid certification path to requested target 1.依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>2…