elk其实就是ElasticSearch(ES)、Logstash和Kibana三个开源的工具组成。
1.ES是个开源的分布式搜索引擎,它的特点是:分布式、零配置、自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
2.Logstash是一个完全开源的工具,开源对日志进行收集、分析、并将其储存以后使用。
3.Kibana也是一个完全开源的免费的工具,它为Logstash和ES提供日志的友好分析界面开源帮助汇总、分析和搜索重要的数据日志。
本文是在windows10环境下部署ELK服务 可以在下载 Elastic 产品 | Elastic下安装工具包
ELK启动顺序是ElasticSearch>Logstash>Kibana
1、下载需要安装的zip包并解压
切记需要提前部署好jdk环境 【文章太多 百度一大片】
2、安装elasticsearch-8.1.3
进入elasticsearch-8.1.3文件夹的config目录
打开编辑elasticsearch.yml文件
在文件末尾添加
# 监听地址和端口
network.host: xx.xx.xx.xx (本机的IP地址)
http.port: 9200
# 跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
双击bin目录下的elasticsearch.bat文件启动
(!!!!!注意!!!!!)
踩坑1:启动后 你输入xx.xx.xx.xx:9200网址是没用的 空白页面
然后我回去找配置文件是否配置出了问题 发现elasticsearch.yml文件末尾会自动添加xpack配置
后来翻阅文档得知 xpack属于机器学习功能 适用于Linux 不适用于windows 所以如果是windows部署的话 启动后停用
将xpack.security.enabled:true 改成 false
打开电脑cmd
cd 进入elasticsearch-8.1.3的bin目录
执行elasticsearch-service.bat install
(install: 安装Elasticsearch服务、remove: 删除已安装的Elasticsearch服务、start: 启动Elasticsearch服务、stop: 停止服务、manager:启动GUI来管理已安装的服务)了解即可
重启elasticsearch.bat即可
最后在输入xx:xx:xx:xx:9200 验证服务
若出现此页面 表示服务启动成功
cmd 启动成功 截图
3、安装Logstash-8.1.3
1、在logstash-8.1.3目录下新建logstash.conf文件
添加
input {
file {
type => "nginx_access"
path => "D:\ELK\logs\logstash.log"
}
}
output {
elasticsearch {
hosts => ["xx.xx.xx.xx:9200"]
index => "access-%{+YYYY.MM.dd}"
}
stdout {
codec => json_lines
}
}
启动logstash-8.1.3
微软键+R
打开运行窗口
输入cmd
打开cmd窗口
CD 到指定盘符的logstash-8.1.3/bin目录下
执行
logstash.bat -f ./logstash.conf
(!!!!!注意!!!!!!)
windows电脑 -f盘符读取的是logstash-8.1.3 目录下 -f不生效 这个按照流程来就行了 如果说报错找不到conf文件 那就说明-f路径生效了 需要将conf文件放到/bin目录下 linux系统就指定linux文件夹目录即可
4、安装Kibana-8.1.3
打开kibana-8.1.3\config 文件夹
打开编辑kibana.yml配置文件
在文件最后加入配置
server.publicBaseUrl: "http://xx.xx.xx.xx:5601"
# 本机的端口
server.port: 5601
# 本机IP地址
server.host: "xx.xx.xx.xx"
# ES的服务IP+端口
elasticsearch.hosts: ["http://xx.xx.xx.xx:9200"]
保存
打开kibana-8.1.3\bin文件夹
双击kibana.bat
打开浏览器访问xx.xx.xx.xx:5601 成功访问即可
(!!!!!!!!注意!!!!!!!!)
如果出现Kibana server is not ready yet.访问保存 检测前几步的日志
踩坑1:博主遇见发现的问题是磁盘空间超过95% elasticsearch就会触发机制 显示磁盘溢出
linux 系统可使用df -h检测磁盘容量
如果超过95%请及时清理磁盘
解决方案请浏览一下博客
Elasticsearch 节点磁盘使用率过高,导致ES集群索引无副本 - 自由早晚乱余生 - 博客园 (cnblogs.com)
(50条消息) ElasticSearch常见的报错及解决_JesJiang的博客-CSDN博客_elasticsearch报错
(50条消息) ElasticSearch常见的报错及解决_彭世瑜的博客-CSDN博客_elasticsearch报错
5、拓展步骤(非必须可部署 主要监听集群生态)
新建head文件夹
打开cmd cd到文件夹目录下
安装 grunt运行环境 npm install -g grunt-cli
执行 git clone https://github.com/mobz/elasticsearch-head
cd elasticsearch-head
npm install(cnpm install)
编辑elasticsearch-head/Gruntfile.js ,修改服务器监听地址,connect节点增加hostname属性,将其值设置为*
connect: {
server: {
options: {
hostname:'*',
port: 9100,
base: '.',
keepalive: true
}
}
}
将_site文件夹下app.js文件 搜索9200 将前面的IP改成本机IP
npm run start(cnpm run start)
浏览器打卡xx.xx.xx.xx:9100进入即可
参考其他作者CSDN文档链接:
(50条消息) windows10上搭建ELK实践_qrainly的博客-CSDN博客_windows搭建elk