Graylog 使用篇

Graylog 使用篇
双木老林中文文档
收集日志
根据官方文档介绍,通过 Filebeat, Winlogbeat 和 NXLog 采集上来的日志,可以通过 Graylog Sidecar 进行配置管理,但不限于这些,例如 sysmon, auditd 或者 packetbeat 也是可以的。
Graylog Sidecar 文档地址:请点这里。
Springboot 等 Java项目 整合 graylog
像常用的 Java项目 一般都是用的 log4j、 logback 等日志工具。因为 springboot 默认的日志工具是 logback,所以这里就以此为例。
将 Java项目 的日志通过 logback 输入到 graylog 中:
- 在 社区 上找到对应的依赖包(有使用介绍),并在项目中添加依赖
- 根据依赖的介绍配置一下日志配置文件
- 在
graylog的 web管理页面 添加一个Inputs=>GELF UDP
本章以 https://github.com/osiegmar/logback-gelf 这一个插件为例。
1.build.gradle
1 | implementation 'de.siegmar:logback-gelf:2.0.0' |
2.logback.xml
1 | <configuration> |
3.增加一个 Inputs
点击 System -> Inputs
选择 GELF UDP,点击 Launch new Input,根据后图进行配置
成功会如下图多一条记录,点击导航条的 Search 查看日志
然后回到 Search 页正常查看即可。
常用的搜索语法如下:
- 模糊查询:直接输入要查询的内容,例如:
orderid - 精确查询:要查询的内容加上引号,例如:
"orderid: 11" - 指定字段查询:
message: http 或 message: "http" - 多字段查询:
message: (base-service base-web) - 多条件查询:
message: http AND level_name: ERROR OR source:192.168.0.4 - 正则匹配查询:
app_name:order-service AND orderid:12?4*
注意:以上示例中涉及的符号全部是英文符号,且字母不区分大小写
关于搜索语法的官方文档地址如下:
python 将日志打印到 graylog
安装
1 | # pip 装法 |
使用
1 | # 引包 |
采集系统日志 syslog
通过 rsyslog 来输入到 graylog
Linux 服务器配置
增加一个额外的 rsyslog 配置,并设置转发 syslog 到 graylog
1 | vim /etc/rsyslog.d/greylog.conf |
Graylog web 配置
在 Graylog web 管理页面增加一个 Inputs,类型为 Syslog UDP,端口设置为 1514( 很多发行版的 linux 不支持非 root 用户使用 1024 以下的端口( 特殊端口 ) )
测试
如果系统没啥日志的话,可以通过 logger 发一个测试的
1 | logger -p mail.info "hello!" |
Search 页多了一条记录则为正常。
Filebeat 收集文件日志
Sidecar 安装配置
Graylog3 使用 sidecar代理程序 来收集 linux 或 windows 主机上的日志,使用 rpm 的方式安装。
下载地址为:https://github.com/Graylog2/collector-sidecar/releases/
当前我下载的是 graylog-sidecar-1.0.2。
1 | # rpm 命令 |
安装完后,先创建一个 token,用于配置文件的。
token 的创建在 graylog web 页面里面创建,具体为 System -> Sidecars -> Create or reuse a token for the graylog-sidecar user,然后填信息保存,最后将生成的 token 复制粘贴到配置文件中即可。
复制后,修改其配置文件: /etc/graylog/sidecar/sidecar.yml
根据 官方文档相关介绍,使用起来就只需要更改 server_url( graylog-api 地址 ) 和 server_api_token( 需要的 token,上一步创建的 )。
然后将这个加到服务里,启动并设置开机启动即可。
1 | # 添加到服务 |
通过命令 systemctl status graylog-sidecar 查看 sidecar 的启动情况
FileBeat 安装配置
graylog-sidecar 需要第三方软件作为收集器,有 filebeat 和 nxlog,这里使用 filebeat,其下载页面是: 下载页面,也是下载 rpm 包,下载链接显示为:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.7.0-x86\_64.rpm,一般 elasticsearch 是什么版本,例如我用的是 6.8.9,就直接将 7.7.0 更改到对应的版本即可。
老规矩,修改配置文件:/etc/filebeat/filebeat.yml
一个是将要收集的日志文件换上,然后更改一下 elasticsearch 的地址。
启动设置开机自启
1 | # 启动 |
查看 filebeat 的启动情况
1 | systemctl status filebeat |
Filebeat 多行配置
参考 https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html
Filebeat 增加自定义字段,配置文件往下拉拉,有一个
fields的参数,根据实例添加即可,记得将fields_under_root设置成true( 可以理解为将添加的字段放到根路径上,不设置则会是的是 fields.xxx )
Graylog 设置
到此, sidecar 和 filebeat 的安装就结束了,这俩是安装到需要采集日志的机器上的,都安装成功后,在 graylog web 上配置一下,就可以在 graylog web 上筛选查看了。
- 首先,增加一个
Sidecars Configuration - 然后与
Collectors进行关联 - 然后增加一个
Beats的Inputs
注:默认情况下,这么收集的日志键都会多一个 filebeat_ 的前缀,如果不要这个的话,创建 Inputs 时,在保存按钮上面,有一个 Do not add Beats type as prefix,打勾即可。
- 结束,去
Search也进行查看即可。
若需要将日志进行匹配获得某些字段信息,例如将日志中的时间提取出来,可以使用
Graylog带有的Extractors
自制仪表盘
Search 页增加
当需要知道一段时间内出现 ERROR 级别日志的频率,来源于哪些项目,整个 Graylog 中现共有多少日志数等需求时,可以通过在 Search 页中新增一个 Aggregation
然后在生成的小窗口中点击 Edit 按钮,配置需要的东西
类型:
- Area Chart 面积图
- Bar Chart 条形图
- Data Table 数据表
- Heatmap 热图
- Line Chart 折线图
- Pie Chart 饼形图
- Scatter Plot 散点图
- Single Number 只显示一个数字
- World Map 世界地图
指标:
- count() 计数
- avg(…) 平均值
- card(…) 集合数量
- count(…) 计数
- max(…) 最大值
- min(…) 最小值
- stddev(…) 标准差
- sum(…) 求和
- sumofsquares(…) 面积总和
- variance(…) 方差
- percentile(…) 分位数
仪表盘
如果我想同时看各个不同时间的指标,很明显就没法实现。
Graylog 提供了 Dashboards 自制。通过导航栏的 Dashboards 进入
在打开的窗口中先点 Save as 保存一下
然后跟 Search 页一样添加一个 Aggregation,会如图一样多了筛选条件的选项
根据需要自行配置,然后保存即可。
而后打开这个仪表盘,大致跟 Search 页的是类同的,不过时间筛选那里多了一个 No Override,默认是这个,表示不做条件筛选。
流和索引
像前面所提,这个日志应用是提供给多个服务共同使用的,所以对各个服务间的日志正常是需要区分归类,例如测试环境、生产环境等等,其保存的时间长度也可以通过这个进行不一样的划分。
而 elasticsearch 是以索引来存储数据的,启动 graylog 后,会自动生产如下图的一个默认索引,可以在其中配置数据存储限制(通过时间、大小、数量来进行存储限制)
索引创建后,需要创建流来将收到的日志进行区分( 将匹配到的日志存入新的索引 )
附一个按时间(
Index Time)轮转的例子
过程中看到的写的好的相关文章
CentOS7 部署 Graylog3 套件













