好长时间没有写过blog了。抽时间把很久之前集成的一个简易的elk升级了下 本教程使用的软件如下: springboot 2.* jdk8 elk 6.2.4(elasticsearch logstash kibana)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<!-- Logstash encoder -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.9</version>
</dependency>
<dependency>
<groupId>net.logstash.log4j</groupId>
<artifactId>jsonevent-layout</artifactId>
<version>1.7</version>
</dependency>
logging:
config: classpath:logback.xml
path: logs
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<param name="Encoding" value="UTF-8"/>
<destination>192.168.188.110</destination>
<port>4560</port>
<!-- encoder is required -->
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="INFO">
<appender-ref ref="logstash" />
</root>
解压文件
tar zxvf elasticsearch-6.2.4.tar.gz
由于es不能用root账户启动,所以需要添加一个非root账户
useradd es
修改es文件夹的权限
chown -R es:es elasticsearch-6.2.4
修改配置文件
vi /opt/elk/elasticsearch-6.2.4/config/elasticsearch.yml
修改elasticsearch.yml
的内容如下
#端口
http.port: 9200
#ip
network.host: 192.168.188.111
#data路径
path.data: /opt/elk/elasticsearch-6.2.4/data
#logs路径
path.logs: /opt/elk/elasticsearch-6.2.4/logs
创建data和logs文件夹
mkdir data logs
启动es(为了方便观察日志没有后台启动)
./bin/elasticsearch
解压文件
tar zxvf logstash-6.2.4.tar.gz
进入config文件夹新建log4j_es.conf文件并编写内容
vi log4j_es.conf
log4j_es.conf内容
input {
# https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html
tcp {
mode => "server"
host => "192.168.188.110"
port => 4560
codec => json_lines
}
}
output {
elasticsearch{
hosts => ["192.168.188.110:9200"]
index => "log4j-%{+YYYY.MM.dd}"
document_type => "log4j_type"
}
stdout { codec => rubydebug }
}
启动logstash (为了方便观察日志没有后台启动)
./bin/logstash -f config/log4j_es.conf
解压
tar zxvf kibana-6.2.4-linux-x86_64.tar.gz
修改配置文件kibana.yml
server.port: 5601
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "192.168.188.110"
# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://192.168.188.110:9200"
启动kibana
./bin/kibana
进入kibana界面
点击 Management 点击Index Patterns
在 Create index pattern 的文本框输入索引名称,因为我在logstash中设置索引为 log4j-%{+YYYY.MM.dd}
,所以我们填写 log4j-*
点击下一步设置直到完成。
点击Discovery
可以看到我们的日志了。
接下来,将elk进行升级 使用elk+filebeat+kafka,敬请期待。