文章目录

  • ELK部署文档
  • 1、Elasticsearch安装部署(见Es集群搭建中的步骤)
  • 2、Logstash安装部署
  • 3、Kibana安装部署
  • kibana部分配置说明
  • 4、kibana基本模块使用
  • 1、Discover搜索模块
  • 2、可视化模块
  • 3、仪表盘
  • 4、Canvas
  • 5、开发工具
  • 6、运行时间(心跳监控)


ELK部署文档

1、Elasticsearch安装部署(见Es集群搭建中的步骤)

2、Logstash安装部署

  1. 下载logstash-7.0.0.tar.gz
  2. 解压文件:tar -xzvf logstash-7.0.0.tar.gz
  3. 添加配置文件 logstash-7.0.0/config/first-pipeline.conf,配置文件可以在启动时指定,所以可以创建一个新的配置文件,配置如下:
#日志输入
input {
  #通过filebeat、logback等推送接收数据
  beats {
    port => "5044"
  }
  #通过tcp日志追加器推送接收数据
  tcp {
     port => 8866
     codec => json_lines
  }
}

#数据过滤器
filter {
	#通过grok过滤器组件COMBINEDAPACHELOG模式可以解析出一定的内容,如IP信息等
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
	#通过IP信息解析为具体的地理坐标
    geoip {
        source => "clientip"
    }
}

#日志输出
output {
	#输出到控制台
    stdout { codec => rubydebug }
	#输出到es集群
    elasticsearch {
        hosts => [ "127.0.0.1:9200" ]
		#创建的es索引名为appname对应的值
        index => "%{[appname]}"
    }
}
  1. 启动Logstash
#指定配置文件并进行测试,如果配置有错误会输出具体的错误信息
bin/logstash -f first-pipeline.conf --config.test_and_exit
#指定配置文件启动,选项启用自动配置重新加载,不必在每次修改配置文件时停止并重新启动
bin/logstash -f first-pipeline.conf --config.reload.automatic
  1. 使用filebeat推送日志
  1. 下载:filebeat-7.0.0-linux-x86_64.tar.gz
  2. 解压:tar -xzvf filebeat-7.0.0-linux-x86_64.tar.gz
  3. 修改配置文件:vim …/filebeat-7.0.0/filebeat.yml,配置如下
#输入
filebeat.inputs:
- type: log
  enabled: true
  paths:
    #读取指定路径下的日志文件,可以使用通配符、具体的文件名
    - /home/lixiang/ELK/*.log
    
#输出 
output.logstash:
  #输出给logstash
  hosts: ["localhost:5044"]
  1. 启动filebeat,推送出去的日志可以再logstash控制台输出或者Elasticsearch中
#如果要重新推送之前已经推送过的数据需要删除这个注册文件
rm -r data/registry
#启动filebeat以后日志会自动推送给logstash管道
./filebeat -e -c filebeat.yml -d "publish"
  1. 项目中配置logback进行TCP推送日志,配置如下:
<!--TCP追加器-->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
	<destination>127.0.0.1:9600</destination>
		<!--请求者信息字段打开,打开后可获取类的方法名以及行号,会消耗更多的性能-->
		<includeCallerData>true</includeCallerData>
		<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
			<providers>
				<pattern>
					<pattern>
						{
						"date": "%d{yyyy-MM-dd HH:mm:ss}",
						"thread": "%thread",<!--线程名称 -->
						"level": "%level", <!--日志等级 -->
						"code": "%code", <!--自定义错误码-->
						"logger_name": "%logger", <!--日志记录器名,一般显示为类名-->
						"class_name": "%class", <!--类名 -->
						"method_name": "%method",  <!--方法名 -->
						"line_number": "%line", <!--行号 -->
						"message": "%message", <!--日志主题信息 -->
						"appname":"demo220"
						}
					</pattern>
				</pattern>
			</providers>
		</encoder>
</appender>

需要添加相应的maven依赖:

<!--logstash日志依赖-->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>4.11</version>
        </dependency>

3、Kibana安装部署

  1. 下载:kibana-7.0.0-linux-x86_64.tar.gz
  2. 解压文件:tar -xzvf kibana-7.0.0-linux-x86_64.tar.gz
  3. 修改配置文件:vim …/kibana-7.0.0-linux-x86_64/config/kibana.yml,配置如下:
server.port: 5601	#服务端口号
server.host: "0.0.0.0"	#服务IP,0.0.0.0 表示服务器所在网段均能访问
elasticsearch.hosts: ["http://127.0.0.1:9200"]或者elasticsearch.hosts: "http://127.0.0.1:9200" #Elasticsearch集群ip
i18n.locale: "zh-CN" #国际化中文显示
  1. 启动kibana:…/bin/kibana
    启动成功后访问:http://127.0.0.1:5601 进入可视化界面,如下图所示:
    [外链图片转存失败(img-KNBc8YTx-1568013345527)( “k001”)]
  2. 部分配置说明

kibana部分配置说明

配置项

配置说明

server.host

指定Kibana服务器将绑定到的地址

server.name

用于标识此Kibana实例的可读显示名称

server.port

默认值:5601,设置指定要使用的端口

server.defaultRoute

默认跳转路径,默认为/app/kibana

kibana.defaultAppId

进入时默认显示页面

console.enabled

默认值:true,设置值:false以禁用控制台,即开发工具处的控制台

xpack.apm.enabled

默认值:true,设置值:false以禁用apm,菜单栏将会隐藏

elasticsearch.hosts

es集群url地址

kibana.index

Kibana在ElasticSearch中使用索引来存储

server.maxPayloadBytes

传入服务器请求的最大负载大小(字节)

xpack.graph.enabled

设置为false禁用图表分析功能

xpack.infra.enabled

设置为false禁用基础设置和日志功能,菜单栏将会隐藏

xpack.infra.sources.default.fields.timestamp

用于对日志条目进行排序的时间戳。默认为@timestamp

xpack.ml.enabled

设置为true(默认)false关闭Kibana机器学习功能,菜单栏将会隐藏

xpack.monitoring.enabled

设置为false隐藏Kibana中的监控UI

xpack.spaces.enabled

设置为false关闭空间设置,在管理中隐藏空间设置

i18n.locale

国际化 en或者zh-CN

4、kibana基本模块使用

1、Discover搜索模块

搜索模块如下图所示:

elk 利用docker搭建 elk环境搭建以及部署_Elasticsearch集群

  1. 搜索框,通过编写表达式筛选索引中的数据,也可以手动选择筛选条件,并通过Refresh按钮刷新查询结果(回车键也可以刷新)如下图所示:

elk 利用docker搭建 elk环境搭建以及部署_ELK_02

通过选择字段和运算符完成筛选,或者通过Elasticsearch的DSL查询语句进行查询筛选如下图:

elk 利用docker搭建 elk环境搭建以及部署_Elasticsearch集群_03

  1. 时间筛选,可以选择多种时间范围、区间如图所示:

elk 利用docker搭建 elk环境搭建以及部署_Kibana_04

  1. 索引选择下拉菜单,选择需要查询的索引名称即可。
  2. 文档中相应的字段,可以通过添加,删除操作筛选在右侧的展示字段。
  3. 文档列表展示区,最上面是根据时间范围统计数量的直方图,选择一个文档后点击左侧箭头打开文档如图所示:

    通过“查看周围文档”可以查看当前文档创建时间上下范围的其它文档,“查看单个文档”则是查看该文档具体文档信息。

2、可视化模块

  1. 可视化列表如图所示:

elk 利用docker搭建 elk环境搭建以及部署_Kibana_05


通过搜索框搜索已经创建的可视化组件,单击组件名称进入可视化编辑界面如图所示:

elk 利用docker搭建 elk环境搭建以及部署_Kibana_06

  1. 新建可视化组件,点击可视化列表右上角“+”进入如下界面:

    选择需要创建的可视化类型进入可视化组件编辑界面如下图:

    选择索引模式进入编辑界面:

    通过查询筛选、指标中的聚合、编辑存储桶以及选项等内容编辑图形显示所需参数。点击指标右上角的“应用更改”应用当前编辑,并且在图形中显示。
  2. 编辑后保存


    确认保存后就可以在可视化列表中看到。

3、仪表盘

  1. 打开仪表板,仪表板列表如下图所示:
  2. 创建新的仪表盘
    点击仪表板列表右上角的“创建新的仪表板”,如下图所示:

    点击“添加”,在左侧添加面板里选择已经编辑好的可视化组件,如下图所示:

    创建好仪表板以后,可以再次进行条件筛选等设置,之后进行保存如下图:


    此时仪表板列表中可以看到刚才添加的仪表板,仪表板中可以添加多个可视化组件,如下图所示:

4、Canvas

  1. Canvas能够实现定时刷新数据实现动态显示界面,打开Canvas如下图所示:

    从列表中可以打开已经创建的Canvas workpads并进行再次编辑。
  2. 创建Canvas workpads,点击列表中"Create workpad"如下图所示:

    空白处相当于一块画布,右侧可以设置大小,以及CSS样式,点击"Add element"如图所示:

    选择自己需要的组件添加到面板上如图所示:

    右侧可以调整组件的样式等内容。
  3. 指定组件所需要的数据,如图所示:


    根据需要选择自己的数据来源,此处选择Elasticsearch SQL如图所示:

    此处支持SQL语法,SQL语句测试等可在“控制台”测试。
  4. 保存后在列表中查看如图所示:

    修改数据刷新时间如下图:

5、开发工具

  1. 通过控制台执行Elasticsearch DSL语句:

    查询语句可以参考Elasticsearch-head手动生成的DSL语句。
    2、通过sql查询Elasticsearch索引,Canvas中需要的sql语句可以在此处进行验证等操作。

    可以通过以下语句获取索引的字段:
POST /_sql?format=txt
{
  "query":"DESC demo220"

}

结果如下图所示:

elk 利用docker搭建 elk环境搭建以及部署_Kibana_07

6、运行时间(心跳监控)

  1. 下载:heartbeat-7.0.0-linux-x86_64.tar.gz
  2. 解压文件:tar -xzvf heartbeat-7.0.0-linux-x86_64.tar.gz
  3. 配置示例:
#心跳监视器
heartbeat.monitors:
- type: http
  #添加了Elasticsearch集群三个节点的监控
  urls: ["http://127.0.0.1:9200","http://127.0.0.1:8200","http://127.0.0.1:7200"]
  #运行状态每10秒获取一次
  schedule: '@every 10s'
  
  
#Kibana服务IP
setup.kibana:
  host: "127.0.0.1:5601"
  
#监控数据输出到es,节点地址是个数组  
output.elasticsearch:
  hosts: ["127.0.0.1:9200"]
  1. 启动:./heartbeat -e -c heartbeat.yml
  2. 打开kibana-左侧菜单运行时间查看监控状态,如下图所示