文章目录
- 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安装部署
- 下载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 | 设置为 |
xpack.infra.enabled | 设置为false禁用基础设置和日志功能,菜单栏将会隐藏 |
xpack.infra.sources.default.fields.timestamp | 用于对日志条目进行排序的时间戳。默认为@timestamp |
xpack.ml.enabled | 设置为 |
xpack.monitoring.enabled | 设置为 |
xpack.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-左侧菜单运行时间查看监控状态,如下图所示