官网地址:https://www.elastic.co/cn/support/matrix#matrix_compatibility
我使用的都是6.8.3版本
由于资源下载是外网会比较慢,推荐使用华为云提供的镜像:https://mirrors.huaweicloud.com/
elasticsearch-6.8.3.tar、kibana-6.8.3-linux-x86_64.tar、logstash-6.8.3.tar
系统 | 主机ip | 部署内容 |
---|---|---|
centso 7.9 | 192.168.40.131 | elasticsearch+kibana+logstash |
centso 7.9 | 192.168.40.133 | 微服务 |
logstash和微服务部署在一起,监听服务日志的输出目录:
优点:性能高;缺点:占用资源高(logstash非常耗资源)
logstash独立部署,微服务节点通过TCP向logstash发送日志:
优点:节省资源;缺点:性能受限于网络
本篇要实践也是基于这种架构搭建。
参考我上一篇 Elasticsearch部署
将之前下载Kibana压缩包上传到服务器上,并解压:
tar -zxvf kibana-6.8.3-linux-x86_64.tar.gz
vim /home/kibana-6.8.3-linux-x86_64/config/kibana.yml
------------------------------------------------------
#开放默认端口号
server.port: 5601
#在服务器中,0.0.0.0指的是本机上的所有IPV4地址
server.host: 0.0.0.0
#elasticsearch地址
elasticsearch.hosts: ["http://192.168.40.131:9200"]
#设置为中文
i18n.locale: "zh-CN"
#开放5601端口号
firewall-cmd --zone=public --add-port=5601/tcp --permanent
-------------错误信息------------
FirewallD is not running
-------------重启防火墙----------
systemctl start firewalld
--------------重新执行-----------
firewall-cmd --zone=public --add-port=5601/tcp --permanent
#刷新防火墙,使之生效
firewall-cmd --reload
#查看开放端口号
firewall-cmd --list-ports
--------------------------
9200/tcp 5601/tcp
#切换到安装目录的bin文件下
./kibana
--------------------------------------------
log [09:01:19.969] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
log [09:01:19.998] [info][status][plugin:[email protected]] Status changed from uninitialized to green - Ready
log [09:01:20.089] [info][task_manager] Installing .kibana_task_manager index template version: 6080399.
log [09:01:20.146] [info][task_manager] Installed .kibana_task_manager index template: version 6080399 (API version 1)
log [09:01:21.247] [info][migrations] Creating index .kibana_1.
log [09:01:21.468] [info][migrations] Pointing alias .kibana to .kibana_1.
log [09:01:21.507] [info][migrations] Finished in 260ms.
log [09:01:21.508] [info][listening] Server running at http://0.0.0.0:5601
log [09:01:22.435] [info][status][plugin:[email protected]] Status changed from yellow to green - Ready
-----------------表示成功-----------------------
#推荐用后台运行方式启动
nohup sh kibana &
在浏览器上输入地址:http://192.168.40.131:5601
则表示安装部署成功!
tar -zxvf logstash-6.8.3.tar.gz
vim /home/logstash-6.8.3/bin/logstash.conf
-----------------增加输入、输出规则---------------------
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4567
codec => json{
charset => "UTF-8"
}
}
}
output {
elasticsearch {
hosts => "http://192.168.40.131:9200"
index => "%{[appName]}-%{+YYYY.MM.dd}"
document_type => access
#关闭模板管理,使用es通过API创建的模板
manage_template => false
#es中模板的名称
template_name => "message"
}
}
#开放4567端口号
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=9600/tcp --permanent
#刷新防火墙,使之生效
firewall-cmd --reload
#查看开放端口号
firewall-cmd --list-ports
--------------------------
9200/tcp 5601/tcp 4567/tcp 9600/tcp
# 切换到bin目录下 后台运行方式启动
nohup logstash -f logstash.conf &
查看logstash是否启动成功:
ps aux | grep 'logstash'
则说明logstash启动成功 ,至此单机版ELK搭建成功
创建一个简单springboot的web项目,在启动类加上简单日志:
@SpringBootApplication
@Slf4j
public class DemoApplication {
# 在启动类加上一些简单的日志
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
log.info("demo启动成功.....");
log.info("demo输出日志.....");
log.info("demo输出日志2.....");
log.info("demo输出日志3.....");
log.info("demo输出日志4.....");
log.info("demo输出日志5.....");
log.info("demo输出日志6.....");
}
}
net.logstash.logback
logstash-logback-encoder
7.2 #版本号看你spring-boot版本
为了方便测试,创建一个非常简单的配置文件,内容如下:
server:
port: 8090
spring:
application:
name: winter-test
profiles:
active: dev
创建一个简单logback.xml,内容如下:
<--LOGSTASH 的日志输出格式 -->
<-- LOGSTASH 服务ip和监听的端口号 -->
192.168.40.131:4567
{
"appName": "${appName}",
"pid": "-"
}
<-- 控制台的日志输出格式 -->
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
<-- 加上logback默认的base.xml -->
springboot启动时默认读取logback-spring.xml文件 ,则推荐logback文件名为logback-spring.xml
至此ELK收集微服务的日志实践成功!