安装包下载
es:
https://www.elastic.co/es/downloads/past-releases/elasticsearch-7-17-0
kibana:
https://www.elastic.co/es/downloads/past-releases/kibana-7-17-0
logstash:
https://www.elastic.co/es/downloads/past-releases/logstash-7-17-0
windows
选择对应的操作系统下载安装包,解压。
es安装启动
不做任何配置也可以正常启动,试玩
在cmd中,切换到es安装目录 bin/elasticsearch.bat
kibana安装启动
配置文件修改
在kibana的解压目录下,找到config/kibana.yml配置文件,只需要修改2个地方:
elasticsearch.hosts:["xxxx.xxxx.xxx.xxxx:port"] --- 指定你的es的地址
i18.local:"zh-CN" ---指定中文界面
启动
cmd切换到对应目录:./bin/kibana.bat 启动即可
logstash安装
配置文件修改
在logstash的解压目录下,新增配置文件logstash.conf,配置内容如下:
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["xxx.xxxx.xxxx.xxxx:port"]
index => "logstash-xxx"
}
}
注意:该配置文件和bin文件在同一个目录
启动
cmd切换到logstash的目录 ./bin/logstash.bat -f logstash.conf
linux
1 创建对应的目录:
java
mkdir -p /opt/elk/es
mkdir -p /opt/elk/kibana
mkdir -p /opt/elk/logstash
2 上传下载的压缩包到对应的目录
3 es安装
由于es在linux上不能用root用户执行,创建对应的用户和授权
Go
groupadd elk-test
useradd elk-test -g elk-test -p 123456
chown -R elk-test:elk-test /opt/elk/es/elasticsearch-7.17.0
su elk-test ---切换用户
配置文件修改
执行命令:vi /opt/elk/es/elasticsearch-7.17.0/config/elasticsearch.yml在末尾添加配置如下:
bash
# 指定节点名称,每个节点名字唯一
node.name: es-node-1
# 绑定ip,开启远程访问,可以配置0.0.0.0
network.host: 0.0.0.0
# elasticsearch服务端口,可更改,默认就是9200
http.port: 9200
# 数据目录路径
path.data: /opt/elk/es/elasticsearch-7.17.0/data/
# 日志文件路径
path.logs: /opt/elk/es/elasticsearch-7.17.0/logs/
# 解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
启动:
bash
# 显示进程启动,可以查看启动是否异常
./bin/elasticsearch
# 没问题后-后台启动
./bin/elasticsearch -d
如果出现报错,需要调整vm.max_map_count的数据就到对应的地方调整重启即可
kibana安装
配置文件修改
修改配置文件,增加如下3个配置
bash
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"
其中server.host:"0.0.0.0"表示可以在其他机器上访问
启动
./bin/kibana
应用日志接入
此时,只需要在logback.xml中增加对应的logstash配置即可把日志传递到logstash,再然后到es,最后在kibana中展示了
一下是一段logback.xml的配置示例
XML
<!-- 直接发送日志到Logstash (TCP方式) -->
<appender name="LOGSTASH_TCP" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 替换为实际的Logstash服务器地址和端口 -->
<destination>xxxx.xxxx.xxxx.xxxx:port</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>Asia/Shanghai</timeZone>
</timestamp>
<pattern>
<pattern>
{
"severity": "%level",
"service": "agent-test",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"message": "%message"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>