<dependency>
<groupId>net.logstash.logbackgroupId>
<artifactId>logstash-logback-encoderartifactId>
<version>5.2version>
dependency>
支持将日志传输给logstash
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.159.128:4560destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appname":"elk_demo"}customFields>
encoder>
appender>
public String outLog(){
log.info("进入测试日志输出方法");
String a = "123";
try {
int b = a.charAt(10);
}catch (Exception e){
log.info("报错:",e);
}
log.info("结束测试日志输出方法");
return "SUCCESS";
}
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.5.tar.gz
tar -zxvf logstash-5.6.5.tar.gz
#节点名(这里是单机,只有一个节点)
node.name: logstash_node_1
#访问主机名,一般为ip或者域名
http.host: "192.168.159.128"
#选用其中第一个可用的端口
http.port: 9600-9700
#自动加载配置文件
config.reload.automatic: true
#配置文件重载周期
config.reload.interval: 10
注意冒号后面的空格
input {
#开启tcp插件的监听
tcp {
#和logback里配置的destination一致
#监听地址需要是本机ip,否则可能无法监听
host => "192.168.159.128"
#监听端口号
port => 4560
#将日志以json格式输入,便于解析和展示
codec => json_lines
}
}
output {
#输出打印,这里输出到elasticsearch
elasticsearch {
#elasticsearch访问地址和端口号
hosts => ["192.168.159.128:9200"]
#项目名作为elasticsearch索引
index => "%{[appname]}"
}
}
在bin目录下,并指定配置文件启动
./logstash -f ../config/logstash.conf
Logstash就绪
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.5.tar.gz
tar -zxvf elasticsearch-5.6.5.tar.gz
#集群名称
cluster.name: es_cluster
#节点名称(这里是单节点)
node.name: es_node_1
#数据存储路径
path.data: /home/admin/elasticsearch-7.6.2/data
#日志存储路径
path.logs: /home/admin/elasticsearch-7.6.2/logs
#主机访问地址。0.0.0.0允许其他主机访问
network.host: 0.0.0.0
#端口号
http.port: 9200
#允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
bin下启动
./elasticsearch
根据本机ip+端口号访问,返回json信息表明启动成功
[admin@localhost config]$ curl http://192.168.159.128:9200/
{
"name" : "es_node_1",
"cluster_name" : "es_cluster",
"cluster_uuid" : "Rswjd70QTKGf86v--7ImsA",
"version" : {
"number" : "5.6.5",
"build_hash" : "6a37571",
"build_date" : "2017-12-04T07:50:10.466Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
* soft nofile 65536
* hard nofile 65536
vm.max_map_count=262144
重启配置:sysctl -p
* soft nproc 4096
* hard nproc 4096
ES就绪
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.5-linux-x86_64.tar.gz
tar -zxvf kibana-5.6.5-linux-x86_64.tar.gz
#地址,允许其他主机访问
server.host: "0.0.0.0"
#端口号
server.port: 5601
#es地址
elasticsearch.url: "http://192.168.159.128:9200"
bin目录下
./kibana
浏览器访问:http://192.168.159.128:5601/app/kibana
kibana就绪
启动springboot。
上文中,logback中配置了appname属性为"elk_demo",并在logstash中将其指定为elasticsearch的index,所以我们在kibana中添加index=elk_demo。
然后在discover菜单中便可以查看、分析、搜索日志。可以自定义要展示的列元素。