ELK+SpringBoot+Logback

离线安装及配置

版本

v1.0

编写时间

2018/6/11

编写人

xxx

 

 


目录

一、 ELK介绍2

二、 安装环境2

三、 Elasticsearch安装2

3.1 解压 2

3.2 配置 2

3.3 创建账户 3

3.4 启动 3

3.5 异常处理 3

四、 SpringBoot配置3

4.1 添加依赖pom.xml 3

4.2 配置logback.xml 4

五、 Logstash安装4

5.1 解压 4

5.2 配置 4

5.3 启动 5

六、 Kibana安装5

6.1 解压 5

6.2 配置 5

6.3 启动 5

6.4 访问http://localhost:5601 5

七、 总结5

7.1流程 5

7.2用到的命令 6

一、ELK介绍

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

安装参考地址https://www.cnblogs.com/huangxincheng/p/7918722.html

三、Elasticsearch安装

3.1 解压

tar -xzvf elasticsearch-6.2.4.tar.gz

3.2 配置

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

3.3 创建账户

不能用root启动

#新建elsearch组

groupadd elsearch

#新建一个elsearch用户

useradd elsearch -g elsearch -p elasticsearch

#指定elasticsearch-6.2.4目录所属elsearch组

chown -R elsearch:elsearch  ./elasticsearch-6.2.4

3.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

3.5 异常处理

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

  1. max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]

解决方案:ulimit -n 65536

四、SpringBoot配置

4.1 添加依赖pom.xml

<dependency>

<groupId>net.logstash.logback</groupId>

<artifactId>logstash-logback-encoder</artifactId>

<version>4.9</version>

</dependency>

4.2 配置logback.xml

<!-- 配置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>

五、Logstash安装

5.1 解压

tar -xzvf logstash-6.2.4.tar.gz

5.2 配置

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

5.3 启动

nohup ./bin/logstash -f ./config/logstash.conf &

看到Successfully started Logstash API endpoin启动成功

六、Kibana安装

6.1 解压

tar -xzvf kibana-6.2.4-linux-x86_64.tar.gz

6.2 配置

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”

6.3 启动

nohup ./bin/kibana &

6.4 访问http://localhost:5601

1. 创建index Pattern

当服务器,项目启动,会生成index,名称为logstash配置的%{[appname]}-52.200-log-%{+YYYY.MM.dd}

点击Management----Index Patterns----CreateIndexPattern

在列表中能看到index名称

在Step1中填写匹配模式:如*,appname值*

在Step2中配置过滤字段@timestamp或其他

  1. 点击Discover,在索引框中选择刚配置的匹配模式,就可以查看日志

七、总结

7.1流程

springboot项目启动,日志通过logback记录,并且根据配置将日志流发送给logstash,logstash过滤,存储,elasticsearch负责索引搜索,kibana负责页面展示。

注意如果几个服务放在不同的服务器,注意端口的开放。

7.2用到的命令

  1. tar -xvzf xxx.tar.gz 解压
  2. tar -cvf 压缩
  3. nohup 命令 & 后台启动命令
  4. jobs -l 查看后台启动
  5. tail -f 文件 查看文件最后几行
  6. head -n行数 文件 查看文件前几行
  7. ps -ef|grep 8181 查看进程
  8. kill pid 杀进程
  9. grep -v aaa 过滤不包含aaa
  10. systemctl stop firewalld 临时关闭防火墙
  11. systemctl disabled firewalld 禁止开机启动
  12. firewall-cmd --zone=public --add-port=80/tcp --permanent 开启端口80
  13. firewall-cmd --reload 重启防火墙

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    ##查看帮助

ELK+SpringBoot+Logback离线安装及配置的更多相关文章

  1. IDEA的热部署插件jrebel6.4.3离线安装版配置与破解

    JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...

  2. IDEA的热部署插件jrebel6.4.3版离线安装版配置与破解

    JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...

  3. svn离线安装以及配置,管理python自动化脚本

    1.使用源码安装,自己make和install,难度还挺大的,改用对应iso中的rpm安装包来安装 2.iso中的rpm包安装,会存在rpm包之间的依赖的关系 3.这种依赖关系,可以处理,仍然在iso ...

  4. ELK学习记录二 :elasticsearch、logstash及kibana的安装与配置

    注意事项: 1.ELK版本要求5.X以上,本人使用版本:elasticsearch-6.0.0.kibana-6.0.0-linux-x86_64.logstash-6.0.0.tar 2.Elast ...

  5. SpringBoot Logback无法获取配置中心属性

    SpringBoot Logback无法获取配置中心属性 前言 最近在做项目中,需要把项目中的日志信息通过RabbitMQ将规定格式的消息发送到消息队列中,然后ELK系统通过消息队列拿日志并且保存起来 ...

  6. ELK 安装与配置

    ELK日志分析之安装 1.介绍: NRT elasticsearch是一个近似实时的搜索平台,从索引文档到可搜索有些延迟,通常为1秒. 集群 集群就是一个或多个节点存储数据,其中一个节点为主节点,这个 ...

  7. 【图文详细教程】maven3安装配置+eclipse离线安装maven3插件《《唯一成功的教程~~~2018-01-09》》

    环境搭建前提: 1.电脑上已经安装了1.7以及以上版本的JDK(因为我提供的maven版本是最新的3.3.9的,要求最低JDK1.7) 2.配置好了ecplise并且能正常启动 第一步:下载maven ...

  8. Springboot 2.0.x 集成基于Centos7的Redis集群安装及配置

    Redis简介 Redis是一个基于C语言开发的开源(BSD许可),开源高性能的高级内存数据结构存储,用作数据库.缓存和消息代理.它支持数据结构,如 字符串.散列.列表.集合,带有范围查询的排序集,位 ...

  9. SpringBoot Logback配置,SpringBoot日志配置

    SpringBoot Logback配置,SpringBoot日志配置  SpringBoot springProfile属性配置 ================================ © ...

随机推荐

  1. 我发起了一个 网格计算 协议 开源项目 GridP

    GridP  是   Grid Protocol   的 全称  . 我在 <关于软件产业的两个契机>  https://www.cnblogs.com/KSongKing/p/95319 ...

  2. 快速部署私人git服务--基于docker化Gogs

    Gogs 一款极易搭建的自助 Git 服务. 环境 Linux系统 docker 获取gogs镜像,并运行, docker run -it --: -p : -v /var/gogs:/data go ...

  3. python3中的编码

    python2字符串编码存在的问题: 使用 ASCII 码作为默认编码方式,对中文处理不友好 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者 python ...

  4. Spark流处理调优步骤

    总体运行状况: 这里的每个批处理任务间隔是10s一次,所以Total Delay是14s,那么对于下一个批处理任务来说就是延迟了14 - 10 = 4s . Total Delay   -  每个批处 ...

  5. 加密与解密md5 3des

    /// <summary> /// MD5加密 /// </summary> /// <param name="s"></param> ...

  6. Spring Boot之执行器端点(Actuator Endpoint)实现剖析

    整体实现思路是将端点(Endpoint)适配委托给MVC层策略端点(MvcEndpoint),再通过端点MVC适配器(EndpointMvcAdapter)将端点暴露为HTTP请求方式的MVC端点,最 ...

  7. django 多线程下载图片

    example1: from multiprocessing.dummy import Pool as ThreadPool #多线程 import time import urllib2 urls ...

  8. 01-简单编写http服务器

    package com.day3; import java.io.IOException; import java.io.InputStream; import java.net.ServerSock ...

  9. Struts2 <s:select >标签的使用

    select 取值session中的内容 <s:select name="meal.mealseries.seriesid" list="#session.meal ...

  10. Emscripten 安装和使用

    OS: Windows 10 x64 I. install 0. pre install Python2.7 Node js Java 1. down git clone https://github ...