Skip to content

Commit

Permalink
kibana教程续写
Browse files Browse the repository at this point in the history
  • Loading branch information
yunnysunny committed Aug 30, 2024
1 parent 3b6a300 commit 29140a7
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions text/14_node_log_and_monitor.md
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,66 @@ Index pattern 选项中我们使用 * 通配符进行索引,是由于我们的

在③号位置可以看到,在单位时间内的并发量,柱状图越高代表并发量越大。其上面显示为 Auto interval 的区域可以调整单位时间的颗粒度,展开后会发现里面有毫秒、秒、分钟、小时、天、星期、月、年等单位。⑥号位可以调整当前数据的时间段,kibana 支持按照秒、分钟、小时、天、年等粒度来划分时间段,也支持指定开始、截至的时间点来划分时间段。柱状图下面显示的数据详情,Documents 中 显示数字代表当前时间段内有 883 条数据,数据使用分页展示,④号可以调整分页大小,⑤号位可以切换页码。

如果想检索数据可以在⑦号位中输入 [KQL](https://www.elastic.co/guide/en/kibana/current/kuery-query.html) 表达式,举几个例子,我们前面收集的日志中有 method 这个字段,那么我们搜 method 为 GET 的日志,可以用以下表达式,输入⑦号位后回车即可展现查询结果:

```kql
method: GET
```

**表达式 14.1.2.1.1**

如果想查 method 为 GET,并且 router 为 /a 的日志,可以用 AND 关键字连接两个查询表达式:

```kql
method: GET AND router: /a
```

**表达式 14.1.2.1.2**

如果想查 user_agent 字段中包含 Windows NT 10.0; Win64; x64 字符串的日志,你需要使用下面的表达式:

```kql
user_agent: "Windows NT 10.0; Win64; x64"
```

**表达式 14.1.2.1.3**

注意我们将值的内容用引号包裹起来了。如果你不加引号写成 user_agent: Windows NT 10.0; Win64; x64,其会隐式转化为 user_agent: Windows AND user_agent: NT AND user_agent: 10.0; AND user_agent: Win64; AND user_agent: x64 ,这样搜索的时候只要包含空格分隔的五个单词就能匹配到日志记录,并不关心当前的五个单词是否是按照我们指定的顺序出现的。

还有一点需要注意,如果你查询的字符串中包含如下字符 `\():<>"*` ,那么你需要使用 \ 字符进行转义,或者使用引号将查询字符串包裹起来。比如说我们查询 referer 字段为 http://localhost 的时候,可以写成以下两种方式:

```kql
referer: http\://localhost
referer: "http://localhost"
```

**表达式 14.1.2.1.4**

如果我们查询的逻辑比较负责,可以使用小括号来更改逻辑判断的优先级,比如说我们想查询 method 为 GET ,且 router 为 /a 或者 /b 的日志,可以写成如下表达式:

```kql
method: GET AND (router: /a OR router: /b)
```

**表达式 14.1.2.1.5**

最后,如果想不区分任何字段做全文检索,可以直接输入在⑦号位输入你想查询的字符串即可,例如我们想查询包含 desktop 的字符串,直接在输入框输入 desktop 回车即可。

上面讲了 kql 的一些基本使用教程,如果你觉得记住这些规则太过麻烦,kibana 还提供了图形界面来简化你的操作,比如说对于 **表达式 14.1.2.1.5**,可以在 ⑧ 号位点击加号,在弹出的输入框中依次输入

![](images/kibana_filter_panel.png)

**图 14.1.2.1.2 kibana 数据筛选面板**

输入完第一行后,点击选择 AND 按钮,继续添加第二行。注意这里我们筛选的字段后面有一个 .keyword 后缀,拿第一行举例,你在点击开第一列的时候,会弹出 method 和 method.keyword 两个选项。两者的区别是 method 会做部分匹配,也就是说筛选值可以是当前字段值的子字符串;但是使用 method.keyword 就会做严格匹配,你的筛选值必须得和字段值完全相同才行,同时如果你选择了 .keyword 的格式后,kibana 会自动列出来部分可选值,这对于可以枚举的字段值来说筛选起来比较方便。

⑧ 号位还可以多次点击添加多个筛选条件,各个筛选条件之间是 AND 的关系,所以也可以将 **图 14.1.2.1.2** 中的筛选条件拆成两条。

![](images/context_on_kibana_filter.png)

**图 14.1.2.1.2 kibana 数据条件弹出菜单**

拆成多条有一个好处,在任何一个刷线条件上单机,就会弹出菜单来对当前条件进行反向求值(Exclude results)、临时禁用(Temporarily disable)或者删除(Delete)等操作。
### 14.2 采集监控指标

对于监控指标的采集,一般采用的是 [Prometheus](https://prometheus.io/) ,它需要定时请求应用程序自己提供 HTTP 接口来拉取监控指标数据。
Expand Down
Empty file added text/15_micro_service.md
Empty file.
Empty file added text/16_openapi_doc.md
Empty file.
Binary file added text/images/context_on_kibana_filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added text/images/kibana_filter_panel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 29140a7

Please sign in to comment.