ELK beats通用配置说明(12th)

网友投稿 950 2023-02-12

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

ELK beats通用配置说明(12th)

Beats配置文件是以YAML语法,该文件包含用于所有的beats的通用配置选项,以及其特点的选项。下面说说通用的配置,特定的配置要看各自beat文档。 通用的配置如下几部分:

ShipperOutputLogging(可选)Run Options(可选)

Shipper

包含beat配置选项和一些控制其行为的常规设置。

其实每个配置选项的注释说明已经说的很清楚了,有些人就是视而不见。

如下所示:

name

beat名称,如果没设置以hostname名自居。该名字包含在每个发布事务的shipper字段。可以以该名字对单个beat发送的所有事务分组。

在启动时,每个beat将发送自己的IP、端口、名字到elasticsearch。这些信息存储在elasticsearch作为网络拓扑图,将每个beat的IP和端口与在这里你所指定的名字映射。

当一个beat接收到一个新的请求和响应称为事务,beat会查询elasticsearch查看网络拓扑是否包含该源服务器IP和端口以及目标服务器。如果该信息可用,在输出的client_server字段被设置成运行在源服务器的beat名称,并且server字段被设置成运行在目标服务器的beat名称。

要在elasticsearch中使用拓扑图的话,必须设置save_topology为TRUE并且elasticsearch为输出。

1
2
shipper:
name:"-shipper"

tags

beat标签列表,包含在每个发布事务的tags字段。标签可用很容易的按照不同的逻辑分组服务器。例如,一个web集群服务器,可以对beat添加上webservers标签,然后在kibana的visualisation界面以该标签过滤和查询整组服务器。

1
2
shipper:
tags:["mysql-db","aws","rdb"]

ignore_outgoing

如果启用了ignore_outgoing选项,beat将忽略从运行beat服务器上所有事务。不好描述,看下面的解释。

这是非常有用的,当两个beat发布相同的事务。因为一个beat认为是输出队列的事务,另一个beat认为是输入队列的事务。你可以结束这个重复的事务,启用该选项即可。

例如,有下面这个情景,三台服务器每台都安装了一个beat,t1在server1和server2之间交换事务,t2在server2和server3之间交换事务。

默认情况下,每个事务要被索引两次,因为beat2会看到两个事务。当ignore_outgoing为false时,发布的事务是这样的:

Beat1: t1Beat2: t1 and t2Beat3: t2

为了避免重复,需要强制beat只发送输入的事务,忽略本地服务器创建的事务。当ignore_outgoing为true时,发布的事务是这样的:

Beat1: noneBeat2: t1Beat3: t2

refresh_topology_freq

拓扑图刷新的间隔。也就是设置每个beat向拓扑图发布其IP地址的频率。默认是10秒。

topology_expire

拓扑的过期时间。在beat停止发布其IP地址时非常有用。当过期后IP地址将自动的从拓扑图中删除。默认是15秒。

geoip.paths

GeoIP数据库的搜索路径。beat找到GeoIP数据库后加载,然后对每个事务输出client的GeoIP位置。

推荐值为/usr/share/GeoIP/GeoLiteCity.dat 和/usr/local/var/GeoIP/GeoLiteCity.dat。

目前只有Packetbeat使用该选项。

Output

可以配置多个输出来导出相关事务。当前支持的输出类型有:

可以同时启用一个或多个输出。输出插件负责发送JSON格式化的事务数据到下一个管道。同时还维护网络拓扑。

Elasticsearch Output

当指定elasticsearch作为输出,beat通过elasticsearch HTTP API将事务直接发送到elasticsearch。

hosts

当以IP:PORT形式定义elasticsearch节点,则schema和path取自protocol和path配置项。如:

worker配置每台主机发送事件到elasticsearch的worker数量。在负载均衡模式下最好启用。例如,2台主机和3个worker,一共将启动6个worker,每台主机3个worker。

host (不推荐)elasticsearch服务的主机。该选项不建议使用,已经被hosts替换。

bulk_max_size单个elasticsearch批量API索引请求的最大事件数。默认是50。

Logstash Output

logstash输出通过使用lumberjack协议将事件直接发送到logstash。要使用此选项,必须在logstash上安装和配置logstash-input-beats插件。logstash允许额外的处理和生成事件路由。

每个发送到logstash事件包含额外的索引和过滤元数据。如:

1
2
3
4
5
6
7
{
...
"@metadata":{
"beat":"<beat>",
"type":"<event type>"
}
}

在logstash,你可以配置elasticsearch输出插件使用元数据和事件类型进行索引。

下面的logstash1.5配置文件设置logstash使用beat报告的索引和文档类型将事件索引到elasticsearch。索引使用取决于logstash确定的@timestamp字段。

logstash 2.x 相同的配置:

事件被索引到elasticsearch,类似于将事件通过beats直接索引到elasticsearch。如下配置,如何配置beat使用logstash:

1
2
3
4
5
6
7
output:
logstash:
hosts:["localhost:5044"]
# index configures '@metadata.beat' field to be used by Logstash for
# indexing. By Default the beat name is used (e.g. filebeat, topbeat, packetbeat)
index:mybeat

hosts要连接logstast的服务器列表。每个列表项可以包含端口号。如果没有指定端口,将使用默认值。

被beats代替,不推荐使用了。不再此做介绍了。

File Output

文件输出将事务转存到一个文件,每个事务是一个JSON格式。主要用于测试。也可以用作logstash输入。

1
2
3
4
5
6
7
8
9
10
11
12
13
output:
# File as output
# Options:
# path: where to save the files
# filename: name of the files
# rotate_every_kb: maximum size of the files in path
# number of files: maximum number of files in path
file:
path:"/tmp/packetbeat"
filename:packetbeat
rotate_every_kb:1000
number_of_files:7

path指定文件保存的路径。必须的。

1
2
3
output:
console:
pretty:true

pretty

如果设置为TRUE,事件将很友好的格式化标准输出。默认false。

Logging (Optional)

配置beats日志。日志可以写入到syslog也可以是轮滚日志文件。默认是syslog。

1
2
3
4
5
6
7
8
9
10
11
12
13
logging:
level:warning
# enable file rotation with default configuration
to_files:true
# do not log to syslog
to_syslog:false
files:
path:/var/log/mybeat
name:mybeat.log
keepfiles:7

Logging options

files.rotateeverybytes日志文件的最大大小。默认 10485760 (10 MB)。

Run Options (Optional)

beats创建套接字后放权。打开套接字需要root访问权限,但不是所有都需要该权限。因此,建议以普通用户运行beats。可以通过uid、gid来指定。

1
2
3
runoptions:
uid=501
gid=501
上一篇:ELK beats yum和命令行工具(13th)
下一篇:包含系统性能测试企业的词条
相关文章

 发表评论

评论列表