版本html |
v1.0node |
编写时间linux |
2018/6/11spring |
编写人json |
xxxvim |
1、 ELK介绍2springboot
2、 安装环境2ruby
3、 Elasticsearch安装2服务器
3.1 解压 2restful
3.2 配置 2
3.3 建立帐户 3
3.4 启动 3
3.5 异常处理 3
4、 SpringBoot配置3
4.1 添加依赖pom.xml 3
4.2 配置logback.xml 4
5、 Logstash安装4
5.1 解压 4
5.2 配置 4
5.3 启动 5
6、 Kibana安装5
6.1 解压 5
6.2 配置 5
6.3 启动 5
6.4 访问http://localhost:5601 5
7、 总结5
7.1流程 5
7.2用到的命令 6
Elasticsearch是个开源分布式搜索引擎,它的特色有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个彻底开源的工具,他能够对你的日志进行收集、过滤,并将其存储供之后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana能够为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,能够帮助您汇总、分析和搜索重要数据日志。
Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。
系统:Centos7
JDK:1.8
Elasticsearch:6.2.4
Logstash:6.2.4
Kibana :6.2.4
ELK下载地址:https://www.elastic.co/cn/products
安装参考地址:http://www.javashuo.com/article/p-arflapah-dh.html
tar -xzvf elasticsearch-6.2.4.tar.gz
cd elasticsearch-6.2.4
vim config/elasticsearch.yml
# 集群名称
cluster.name: es_cluster
# 节点名称
node.name: node-0
# 数据存储目录(多个路径用逗号分隔)
path.data: /tmp/elasticsearch/data
# 日志目录
path.logs: /tmp/elasticsearch/logs
# 本机IP
network.host: 192.168.53.11
# 监听端口(默认)
http.port: 9200
不能用root启动
#新建elsearch组
groupadd elsearch
#新建一个elsearch用户
useradd elsearch -g elsearch -p elasticsearch
#指定elasticsearch-6.2.4目录所属elsearch组
chown -R elsearch:elsearch ./elasticsearch-6.2.4
用elsearch登陆,而后启动
nohup ./bin/elasticsearch &
注意:[nohup 命令 &]:后台启动,启动日志输出到当前目录下的nohup.out,使用tail -f nohup.out查看启动状况,看到如下字样,则启动成功:
publish_address {192.168.53.11:9300}
publish_address {192.168.53.11:9200}
started
访问192.168.53.11:9200能够看到node,cluster_name
1. Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
解决方案:vim /etc/sysctl.conf
添加vm.max_map.count=655360
执行:sysctl -p
解决方案:ulimit -n 65536
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.9</version>
</dependency>
<!-- 配置appender -->
<appender name=”LOGSTASH”
class=”net.lgostash.logback.appender.logstashTcpSocketAppender”>
<!-- 本机地址及端口,用于将项目log日志输出到logstash -->
<destination>localhost:9601</destination>
<encoder charset=”UTF-8”
class=”net.logstash.logback.encoder.LogstashEncoder”>
<!-- 自定义变量,能够在kibana查看,如项目名称 -->
<customFields>{“appname”:”uem-smgr-service”}</customFields>
</encoder>
</appender>
<!--- 配置logger -->
须要将日志输出到logstash的地方都须要配置<appender-ref ref=”LOGSTASH”/>
<logger name=”包名或类名” level=”debug” additivity=”true|false 是否继承父类logger”>
<appender-ref ref=”LOGSTASH”/>
</logger>
tar -xzvf logstash-6.2.4.tar.gz
cd logstash-6.2.4
logstash.conf名字自定义的
vim config/logstash.conf
input {
tcp {
host => “localhost”
port => 9601
mode => “server”
tags => [“tags”]
codec => json_lines
}
}
output {
elasticsearch {
action => “index”
hosts => “192.168.53.11”
index => “%{[appname]}-52.200-log-%{+YYYY.MM.dd}”
}
stdout {
codec => rubydebug { }
}
}
注意:
1.input.tcp: 中配置的是本机地址,ip和端口必须和springboot的logback.xml中的配置彻底同样,不能一个配ip一个localhost
2.output.elasticsearch: 配置elasticsearch服务器的ip
3.%{[appname]}: 引用springboot的logback.xml中配置的变量
4.output.stdout: 在终端显示输出信息(能够不配置)
5.若是修改logstash.conf后自动加载,须要配置:
vim config/logstash.yml
config.reload.automatic: true
nohup ./bin/logstash -f ./config/logstash.conf &
看到Successfully started Logstash API endpoin启动成功
tar -xzvf kibana-6.2.4-linux-x86_64.tar.gz
cd kibana-6.2.4-linux-x86_64
vim config/kibana.yml
server.host: “0.0.0.0”
elasticsearch.url: “http://192.168.53.11:9200”
nohup ./bin/kibana &
1. 建立index Pattern
当服务器,项目启动,会生成index,名称为logstash配置的%{[appname]}-52.200-log-%{+YYYY.MM.dd}
点击Management----Index Patterns----CreateIndexPattern
在列表中能看到index名称
在Step1中填写匹配模式:如*,appname值*
在Step2中配置过滤字段@timestamp或其余
springboot项目启动,日志经过logback记录,而且根据配置将日志流发送给logstash,logstash过滤,存储,elasticsearch负责索引搜索,kibana负责页面展现。
注意若是几个服务放在不一样的服务器,注意端口的开放。
firewall-cmd --state ##查看防火墙状态,是不是running
firewall-cmd --reload ##从新载入配置,好比添加规则以后,须要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助