大家好,欢迎来到IT知识分享网。
目录
1 Kibana
1.1 简介
1、kibana介绍
kibana是Elastic stack中web页面,可以在kibana中查看到数据。还有以下几个功能:
- 搜索、观察并保护数据:从发现文档到分析日志,再到查找安全漏洞,Kibana 是访问这些功能及其他功能的门户。
- 分析数据:搜索隐藏的信息,用图表、仪表、地图、图形等方式可视化发现的内容,并在仪表板上进行组合。
- 管理、监控和保障 Elastic Stack 的安全。管理数据,监控 Elastic Stack 集群的健康状况,并控制哪些用户有权访问哪些功能。
2、kibana 分析(Analyze)
- 1、添加数据:可以通过elastic search其他组件添加数据,也可以添加一个样本数据集或者上传文件来实现。
- 2、搜索:主要是在Discover 页面,可以添加筛选条件得出结果,只保留自己的需要的数据。还可以将结果限制为最近添加到 Elasticsearch 的文档
- 3、可视化:Kibana 提供了许多选项来创建数据的可视化,包括基于聚合的数据、时间序列数据以及地理数据。仪表板是创建可视化的起点,然后将它们组合在一起,从多个角度展示数据。使用 Canvas,还可以在大屏幕上显示。
- 4、建立数据行为模型。使用机器学习功能来建立数据行为模型——预测异常行为,执行异常检测、回归和分类分析。
- 5、分享:可以通过嵌入仪表板、分享链接、导出为 PDF 等和其他人分享。
3、管理数据
kibana可以实现以下数据操作:
- 刷新、清空和清除索引的缓存。
- 定义索引随时间变化的生命周期。
- 为集群快照制定策略。
- 将一个或多个索引的数据滚动到新的、紧凑的索引中。
- 在远程集群上复制索引,并将它们复制到本地集群。
4、告警及采取的措施
5、确保访问安全
1.2 安装kibana8.1
1、下载
# 下载并解压 wget https://artifacts.elastic.co/downloads/kibana/kibana-8.1.0-linux-x86_64.tar.gz tar zxvf kibana-8.1.0-linux-x86_64.tar.gz mv kibana-8.1.0 /usr/local/ # 生成kibana的证书文件 cd /usr/local/elasticsearch-8.1.0 # 直接回车 /usr/local/elasticsearch-8.1.0/bin/elasticsearch-certutil csr -name kibana -dns server # 解压文件 并生成证书文件 unzip csr-bundle.zip cd kibana/ cp kibana/kibana.csr kibana/kibana.key /usr/local/kibana-8.1.0/config/ cd /usr/local/kibana-8.1.0/config/ openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt # 重置kibana的登录账号 选择y 打印到前端 /usr/local/elasticsearch-8.1.0/bin/elasticsearch-reset-password -u kibana DJT=nk+MUSZ5YZCg1EaO
2、修改配置文件
# 修改配置文件 vi /usr/local/kibana-8.1.0/config/kibana.yml server.publicBaseUrl: "https://192.168.92.102:5601" server.port: 5601 # 服务主机名 server.host: "192.168.92.102" # 设置语言为中文 i18n.locale: "zh-CN" # elasticsearch 服务主机地址 elasticsearch.hosts: ["https://192.168.92.102:9200"] # 访问elasticsearch 服务的账号密码 elasticsearch.username: "kibana" elasticsearch.password: "DJT=nk+MUSZ5YZCg1EaO" elasticsearch.ssl.verificationMode: none elasticsearch.ssl.certificateAuthorities: ["/usr/local/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem"] server.ssl.enabled: true server.ssl.certificate: /usr/local/kibana/config/kibana.crt server.ssl.key: /usr/local/kibana/config/kibana.key 修改 config/jvm.options vim /usr/local/kibana-8.1.0/config/jvm.options -Xms1g -Xmx1g 说明: # -Xms:设置 JVM 启动时的初始堆内存大小 # -Xmx:设置 JVM 可以使用的最大堆内存大小 # 在 Elasticsearch 中,为了避免频繁的垃圾收集和潜在的性能问题,建议将 -Xms 和 -Xmx 设置为相同的值 # 大小一般为内存的1/2
注意:-Xms 和 -Xm一定要设置,否则会导致内存使用率过大,从而造成报警
3、配置快速启动文件
# 配置system并启动 mv /usr/local/kibana-8.1.0 /usr/local/kibana chown -R es:es /usr/local/kibana chmod 755 /usr/local/kibana # system管理 vim /usr/lib/systemd/system/kibana.service [Unit] Description=kibana After=network.target [Service] Type=simple User=es Group=es LimitNOFILE= LimitNPROC= Restart=no ExecStart=/usr/local/kibana/bin/kibana PrivateTmp=true [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl start kibana systemctl enable kibana systemctl restart kibana.service systemctl status kibana.service -l netstat -antp |grep 5601 # web页面登录 https://192.168.92.102:5601/ # 此处注意:登录的用户名和密码为: # 账号 : elastic 密码 : pwYcuJ8aT-h7TvuA0gVu
1.3 简单使用
1、添加样例数据
2、数据搜索
3、时间过滤
4、Kibana 查询语言 (KQL)
在kibana中,查询语言使用KQL
筛选存在字段的文档
# 筛选存在字段的文档:检查任何索引值,包括空字符串 http.request.method: *
筛选与值匹配的文档
# 筛选与值匹配的文档:使用 KQL 筛选与特定数字、文本、日期或布尔值匹配的文档。 # 筛选 http.request.method 为 GET 的文档 http.request.method: GET # 如果不提供field,则在所有字段中搜索给定值。如:筛选 hello hello # 查询关键字、数值、日期或布尔字段时,该值必须完全匹配, 包括标点符号和大小写。但是,在查询文本字段时,Elasticsearch 会分析 根据字段的映射设置提供的值。 例如,要搜索其中(字段) 包含文本“null pointer”:http.request.body.content text 需要使用引号引起来 http.request.body.content: "null pointer" # 某些字符必须用反斜杠转义(除非用引号括起来)。如: # \():<>"* 必须使用转义字符 http.request.referrer: "https://example.com" http.request.referrer: https\://example.com
筛选范围内的文档
若要搜索包含所提供范围内的术语的文档,需要使用范围语法:
# 如,要搜索http.response.bytes 小于 10000 的所有文档 http.response.bytes < 10000 # 可以合并多个范围查询,例如,搜索http.response.bytes 大于 10000 的文档 但小于或等于 20000 http.response.bytes > 10000 and http.response.bytes <= 20000 # 可以对字符串值、IP 地址和时间戳使用范围语法 # 如,若要搜索早于两周前的文档 @timestamp < now-2w
使用通配符筛选文档
# 例如,若要查找 http.response.status_code 以 4 开头的文档 http.response.status_code: 4* # 如果不允许使用前导通配符,可以使用 query:allowLeadingWildcards 高级设置进行修改
否定查询
如果要排除一组文档,需要使用关键字 not (不区分大小写)
# 如,筛选 http.request.method 不是 GET 的文档 NOT http.request.method: GET
合并查询
需要满足多个查询条件时,可以使用关键字:or、and。如果在多个查询时指定优先级,需要使用括号()
# 如,要查找 http.request.method 为 GET 或 http.response.status_code 为 400 的文档 http.request.method: GET OR http.response.status_code: 400 # 如果要查找 http.request.method 为 GET 且 http.response.status_code 为 400 的文档 http.request.method: GET AND http.response.status_code: 400 # 如,要查找 http.request.method 为 GET 且http.response.status_code为 200 或 http.request.method为 POST且http.response.status_code 为 400 的文档: (http.request.method: GET AND http.response.status_code: 200) OR (http.request.method: POST AND http.response.status_code: 400) # 要查找 http.request.method 为 GET、POST 或 DELETE 的文档 http.request.method: (GET OR POST OR DELETE)
匹配多个字段
通配符还可用于查询多个字段。可以使用 datastream.*
# 搜索 任何子字段包含“日志”的文档 datastream.*: logs
查询嵌套字段
查询嵌套字段需要特殊语法,如:
以下,user是嵌套字段 {
"user" : [ {
"first" : "John", "last" : "Smith" }, {
"first" : "Alice", "last" : "White" } ] } # 查找数组中的单个值包含名字 “爱丽丝”和“怀特”的姓氏 user:{
first: "Alice" and last: "White" } 嵌套字段可以位于其他嵌套字段中,必须指定要查询的嵌套字段的完整路径。 # 以下:user和name都是嵌套字段 {
"user": [ {
"names": [ {
"first": "John", "last": "Smith" }, {
"first": "Alice", "last": "White" } ] } ] } # 查找数组中的单个值包含名字“Alice”和姓氏“White” user.names:{
first: "Alice" and last: "White" }
5、保存查询
总结
以上是Kibana最基础的一些操作,其他的后续再补充。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130268.html