设为首页 收藏本站
查看: 1303|回复: 0

[经验分享] elastic stack 基础组件beats详解

[复制链接]

尚未签到

发表于 2019-1-29 12:32:21 | 显示全部楼层 |阅读模式
elastic stack 基础组件beats详解

  

  fielbeat
filebeat:
spool_size: 1024                  # 最大可以攒够 1024 条数据一起发送出去
idle_timeout: "5s"                 # 否则每5 秒钟也得发送一次
registry_file: ".filebeat"             # 文件读取位置记录文件,会放在当前工作目录下。所以如果你换一个工作目录执行 filebeat
会导致重复传输!
config_dir: "path/to/configs/contains/many/yaml" # 如果配置过长,可以通过目录加载方式拆分配置
prospectors:                      # 有相同配置参数的可以归类为一个 prospector
-
fields:
ownfield: "mac"                    # 类似logstash 的 add_fields
paths:
- /var/log/system.log            # 指明读取文件的位置
- /var/log/wifi.log
include_lines: ["^ERR", "^WARN"]      # 只发送包含这些字样的日志
exclude_lines: ["^OK"]            # 不发送包含这些字样的日志
document_type: "apache"           # 定义写入ES时的_type值
ignore_older: "24h"             # 超过 24小时没更新内容的文件不再监听_files,只要文件名一变化立刻关闭文件句柄,保证文件可以被删除,缺陷是可能会有日志还没读完
scan_frequency: "10s"            # 每 10秒钟扫描一次目录,更新通配符匹配上的文件列表
tail_files: false              # 是否从文件末尾开始读取
harvester_buffer_size: 16384         # 实际读取文件时,每次读取 16384 字节
backoff: "1s"                #  每1秒检测一次文件是否有新的一行内容需要读取
paths:
- "/var/log/apache/*"            # 可以使用通配符
exclude_files: ["/var/log/apache/error.log"]
-
input_type: "stdin"             # 除了"log",还有 "stdin"
multiline:                  # 多行合并
pattern: '^[[:space:]]'
negate: false
match: after  
  Filebeat 发送的日志,会包含以下字段:

  •   beat.hostname beat 运行的主机名
  •   beat.name shipper 配置段设置的 name ,如果没设置,等于
  •   beat.hostname
  •   @timestamp 读取到该行内容的时间
  •   type 通过 document_type 设定的内容
  •   input_type 来自 "log" 还是 "stdin"
  •   source 具体的文件名全路径
  •   offset 该行日志的起始偏移量
  •   message 日志内容
  •   fields 添加的其他固定字段都存在这个对象里面
  packetbeat
interfaces:
device: any
type: af_packet
snaplen: 65536 # 保证大过 MTU 即可,所以公网抓包的话可以改成 1514
buffer_size_mb: 30 #  该参数仅在af_packet时有效,表示在linux内核空间和用户空间之间开启多大共享内存,可以减
低 CPU 消耗
with_vlans: false # 在生成抓包语句的时候,是否带上vlan标示。示例:"port 80 or port 3306 or (vlan and (port 80 or port 3306))"
protocols:
dns:
ports: [53]
send_request: false       # 通用配置:是否将原始的 request 字段内容都发给 ES
send_response: false      # 通用配置:是否将原始的 response 字段内容都发给 ES
transaction_timeout: "10s"   # 通用配置:超过10 秒的不再等待响应,直接认定为一个事务,发送给 ES
include_additionals: false   # DNS 专属配置:是否带上 dns.additionals 字段
include_authorities: false   # DNS 专属配置:是否带上 dns.authority 字段
http:
ports: [80, 8080]             # 抓包的监听端口
hide_keywords: ["password","passwd"]   # 对 GET 方法的请求参数,POST 方法的顶层参数里的指定关键信息脱敏。注意:如果你又开启了 send_request,request 字段里的并不会脱敏"
redact_authorization: true      # 对 header 中的Authorization 和 Proxy-Authorization 内容做模糊处理。道理和上一条类似
send_headers: ["User-Agent"]      # 只在 headers对象里记录指定的 header 字段内容
send_all_headers: true  # 在 headers 对象里记录所有 header 字段内容
include_body_for: ["text/html"]     # 在开启 send_response 的前提下,只记录某些类别的响应体内容
split_cookie: true      # 将 headers 对象里的 Cookie 或 Set-Cookie 字段内容再继续做 KV 切割
real_ip_header: "X-Forwarded-For"    # 将 headers 对象里的指定字段内容设为 client_location 和 real_ip 字段
memcache:
ports: [11211]
parseunknown: false
maxvalues: 0
maxbytespervalue: 100
udptransactiontimeout: 10000
mysql:
ports: [3306]
max_rows: 10 # 发送给 ES 的 SQL 内容最多为 10 行
max_row_length: 1024 # 发送给 ES 的 SQL 内容每行最长为 1024 字节
cassandra:
send_request_header: true   # 在开启了 send_request 的前提下,记录 cassandra_request.request_headers 字段
send_response_header: true
compressor: "snappy"
ignored_ops: ["SUPPORTED","OPTIONS"] # 不记录部分操作
amqp:
ports: [5672]
max_body_length: 1000      # 超长的都截断掉
parse_headers: true
parse_arguments: false
hide_connection_information: true   # 不记录打开、关闭连接之类的信息
thrift:
transport_type: socket        # Thrift 传输类型,"socket" 或 "framed"
protocol_type: binary
idl_files: ["shared.thrift"]     # 一般来说默认内置的 IDL 文件已经足够了
string_max_size: 200     # 参数或返回值中字符串的最大长度,超长的都截断掉
collection_max_size: 15     # Thrift 的 list, map, set, structure 结构中的元素个数上限,超过的元素丢弃
capture_reply: true     # 为了节省资源,可以设置 false,只解析响应中的方法名称,其余信息丢弃
obfuscate_strings: true     # 把所有方法参数、返回码、异常结构中的字符串都用 * 代替
drop_after_n_struct_fields: 500    # 在 packetbeat结束整个事务之前,一个结构体最多能存多少个字段。该配置主要考虑节约内存
monogodb:
max_docs: 10    # 设置 send_response 前提下,response 字段最多保存多少个文档。超长的都截断掉。不限则设为 0
max_doc_length: 5000     # response 字段里每个文档的最大字节数。超长截断。不限则设为 0
procs:
enabled: true
monitored:
- process: mysqld
cmdline_grep: mysqld
- process: app #设置发送给 ES的数据中进程名字段的内容
cmdline_grep: gunicorn # 从 /proc//cmdline 中过滤实际进程名的字符串
# output:
output.elasticsearch:
  hosts: ["http://localhost:9200"]
  index: "packetbeat-%{+yyyy.MM.dd}"  字段

  •   @timestamp 事件时间
  •   type 事件类型,比如 HTTP, MySQL, Redis, RUM 等
  •   count 事件代表的实际事务数。也就是采样率的倒数
  •   direction 事务流向。比如 "in" 或者 "out"
  •   status 事务状态。不同协议取值方式可能不一致
  •   method 事务方法。对 HTTP 是 GET/POST/PUT 等,对 SQL 是SELECT/UPDATE/INSERT 等
  •   resource 事务关联的逻辑资源。对 HTTP 是 URL 路径的第一个层级,对SQL 是表名
  •   path 事务关联的路径。对 HTTP 是 URL 路径,对 SQL 是表名,对 KV 存储是 key
  •   query 人类可读的请求字符串。对 HTTP 是 GET /resource/path?key=value,对 SQL 是 SELECT id FROM table WHERE name=test
  •   params 请求参数。对 HTTP 就是 GET 或者 POST 的请求参数,对 Thrift 是request 里的参数
  •   notes packetbeat 解析数据出错时的日志记录其余根据采用协议不同,各自有自己的字段。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669176-1-1.html 上篇帖子: elastic ik中文分词测试 下篇帖子: ELK + kafka + filebeat +kibana
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表