文章目录
ELK部署文档
1、Elasticsearch安装部署(见Es集群搭建中的步骤)
2、Logstash安装部署
-
下载logstash-7.0.0.tar.gz
-
解压文件:tar -xzvf logstash-7.0.0.tar.gz
-
添加配置文件 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]}" } }
-
启动Logstash
#指定配置文件并进行测试,如果配置有错误会输出具体的错误信息 bin/logstash -f first-pipeline.conf --config.test_and_exit #指定配置文件启动,选项启用自动配置重新加载,不必在每次修改配置文件时停止并重新启动 bin/logstash -f first-pipeline.conf --config.reload.automatic
-
使用filebeat推送日志
-
下载:filebeat-7.0.0-linux-x86_64.tar.gz
-
解压:tar -xzvf filebeat-7.0.0-linux-x86_64.tar.gz
-
修改配置文件:vim …/filebeat-7.0.0/filebeat.yml,配置如下
#输入 filebeat.inputs: - type: log enabled: true paths: #读取指定路径下的日志文件,可以使用通配符、具体的文件名 - /home/lixiang/ELK/*.log #输出 output.logstash: #输出给logstash hosts: ["localhost:5044"]
-
启动filebeat,推送出去的日志可以再logstash控制台输出或者Elasticsearch中
#如果要重新推送之前已经推送过的数据需要删除这个注册文件 rm -r data/registry #启动filebeat以后日志会自动推送给logstash管道 ./filebeat -e -c filebeat.yml -d "publish"
-
-
项目中配置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安装部署
-
下载:kibana-7.0.0-linux-x86_64.tar.gz
-
解压文件:tar -xzvf kibana-7.0.0-linux-x86_64.tar.gz
-
修改配置文件: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" #国际化中文显示
-
启动kibana:…/bin/kibana
启动成功后访问:http://127.0.0.1:5601 进入可视化界面,如下图所示:
[外链图片转存失败(img-KNBc8YTx-1568013345527)( “k001”)] -
部分配置说明
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中的监控UIxpack.spaces.enabled 设置为false关闭空间设置,在管理中隐藏空间设置 i18n.locale 国际化 en或者zh-CN
4、kibana基本模块使用
1、Discover搜索模块
搜索模块如下图所示:
- 搜索框,通过编写表达式筛选索引中的数据,也可以手动选择筛选条件,并通过Refresh按钮刷新查询结果(回车键也可以刷新)如下图所示:
通过选择字段和运算符完成筛选,或者通过Elasticsearch的DSL查询语句进行查询筛选如下图:
- 时间筛选,可以选择多种时间范围、区间如图所示:
-
索引选择下拉菜单,选择需要查询的索引名称即可。
-
文档中相应的字段,可以通过添加,删除操作筛选在右侧的展示字段。
-
文档列表展示区,最上面是根据时间范围统计数量的直方图,选择一个文档后点击左侧箭头打开文档如图所示:
通过“查看周围文档”可以查看当前文档创建时间上下范围的其它文档,“查看单个文档”则是查看该文档具体文档信息。
2、可视化模块
- 可视化列表如图所示:
通过搜索框搜索已经创建的可视化组件,单击组件名称进入可视化编辑界面如图所示:
-
新建可视化组件,点击可视化列表右上角“+”进入如下界面:
选择需要创建的可视化类型进入可视化组件编辑界面如下图:
选择索引模式进入编辑界面:
通过查询筛选、指标中的聚合、编辑存储桶以及选项等内容编辑图形显示所需参数。点击指标右上角的“应用更改”应用当前编辑,并且在图形中显示。
-
编辑后保存
确认保存后就可以在可视化列表中看到。
3、仪表盘
-
打开仪表板,仪表板列表如下图所示:
-
创建新的仪表盘
点击仪表板列表右上角的“创建新的仪表板”,如下图所示:
点击“添加”,在左侧添加面板里选择已经编辑好的可视化组件,如下图所示:
创建好仪表板以后,可以再次进行条件筛选等设置,之后进行保存如下图:
此时仪表板列表中可以看到刚才添加的仪表板,仪表板中可以添加多个可视化组件,如下图所示:
4、Canvas
-
Canvas能够实现定时刷新数据实现动态显示界面,打开Canvas如下图所示:
从列表中可以打开已经创建的Canvas workpads并进行再次编辑。 -
创建Canvas workpads,点击列表中"Create workpad"如下图所示:
空白处相当于一块画布,右侧可以设置大小,以及CSS样式,点击"Add element"如图所示:
选择自己需要的组件添加到面板上如图所示:
右侧可以调整组件的样式等内容。 -
指定组件所需要的数据,如图所示:
根据需要选择自己的数据来源,此处选择Elasticsearch SQL如图所示:
此处支持SQL语法,SQL语句测试等可在“控制台”测试。 -
保存后在列表中查看如图所示:
修改数据刷新时间如下图:
5、开发工具
-
通过控制台执行Elasticsearch DSL语句:
查询语句可以参考Elasticsearch-head手动生成的DSL语句。
2、通过sql查询Elasticsearch索引,Canvas中需要的sql语句可以在此处进行验证等操作。
可以通过以下语句获取索引的字段:
POST /_sql?format=txt { "query":"DESC demo220" }
结果如下图所示:
6、运行时间(心跳监控)
-
下载:heartbeat-7.0.0-linux-x86_64.tar.gz
-
解压文件:tar -xzvf heartbeat-7.0.0-linux-x86_64.tar.gz
-
配置示例:
#心跳监视器 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"]
-
启动:./heartbeat -e -c heartbeat.yml
-
打开kibana-左侧菜单运行时间查看监控状态,如下图所示