本文介绍Beat7.4.0如何部署
一、初始化环境
环境说明
- Centos7.5
- Winlogbeat
- filebeat
- RabbitMQ
- Redis
二、安装beat
安装说明
每台服务器都具有通用的配置。在安装beat前,修改安装包中配置文件的通用配置,再进行后续步骤。
winlogbeat(针对windows系统)
编辑压缩包中的winlogbeat.yml配置文件
ps:此系统使用redis作为output的出口,如果需要直接转发进es集群,请在配置中自行修改
#======================= Winlogbeat specific options ===========================
winlogbeat.event_logs: # 将事件管理器中的日志转发
- name: Application # ------应用日志--------
ignore_older: 72h # 第一次运行程序只取3天内的日志
level: crit,err,warn,info # 转发的日志等级
- name: System # ------系统日志--------
level: crit,err,warn,info # 转发的日志等级
- name: Security # ------安全日志--------
level: crit,err,warn # 转发的日志等级
processors: # 过滤规则
- script:
lang: javascript
id: security
file: ${path.home}/module/security/config/winlogbeat-security.js
#----------------------------- Redis output --------------------------------
output.redis:
hosts: ["填入redis的ip:port"] # example: 192.168.1.100:6379
password: "填入redis的密码"
key: "区分渠道的键值" # 与logstash传入的键值对应
db: 1 # DB号
timeout: 5 # 超时时间,单位秒
#================================ Processors =====================================
# Configure processors to enhance or manipulate events generated by the beat.
processors:
- add_host_metadata: # 启用主机基础信息收集
netinfo.enabled: true # 启用主机网络信息收集
#如需转发到es集群,启用以下配置,注释掉Redis output区域内容
#==================== Elasticsearch template settings ==========================
#setup.template.settings: 设置es存储的分片数
# index.number_of_shards: 3
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
#hosts: ["es节点1-ip地址:9200","es节点2-ip地址:9200","es节点3-ip地址:9200"]
#protocol: "http" # 协议
#username: "elastic" # es集群账号
#password: "changeme" # es集群密码
上传&解压
- 将winlogbeat.zip上传的到服务器的任意路径
- 解压并进入wenlogbeat文件夹
启动winlogbeat
- 运行CMD(管理员)
- 进入winlogbeat目录
- 安装服务
PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1
- 启动服务
net start winlogbeat
- 确认服务状态
sc query winlogbeat
filebeat (针对linux系统)
编辑filebeat_install.tar压缩包中的filebeat.yml配置文件
ps:此系统使用redis作为output的出口,如果需要直接转发进es集群,请在配置中自行修改
#=========================== Filebeat inputs =============================
filebeat.inputs: # 默认日志提取配置
- type: log
enabled: false
paths:
- /var/log/*.log
#============================= Filebeat modules ===============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
#----------------------------- Redis output --------------------------------
output.redis:
hosts: ["填入redis的ip:port"] # example: 192.168.1.100:6379
password: "填入redis的密码"
key: "区分渠道的键值" # 与logstash传入的键值对应
db: 1 # DB号
timeout: 5 # 超时时间,单位秒
#================================ Processors =====================================
# Configure processors to enhance or manipulate events generated by the beat.
processors:
- add_host_metadata: # 启用主机基础信息收集
netinfo.enabled: true # 启用主机网络信息收集
#如需转发到es集群,启用以下配置,注释掉Redis output区域内容
#==================== Elasticsearch template settings ==========================
#setup.template.settings: 设置es存储的分片数
# index.number_of_shards: 3
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
#hosts: ["es节点1-ip地址:9200","es节点2-ip地址:9200","es节点3-ip地址:9200"]
#protocol: "http" # 协议
#username: "elastic" # es集群账号
#password: "changeme" # es集群密码
安装filebeat
- 上传安装文件
将filebeat.tar与filebeat_insatll.sh拖入xshell对应的服务器tab窗口中
- 运行安装程序
[root@blog ~]# bash filebeat_insatll.sh
- 确认服务启动
[root@blog ~]# systemctl status filebeat
filebeat配置文件解释(rpm安装))
以本次配置的system模块为例,带*号的配置后面有解释
应用文件
路径:/usr/share/filebeat
树结构目录:
├── bin # 执行程序
├── kibana # kibana dashboard模板
├── LICENSE.txt
├── module # 模块文件夹,包含多个预定义模块
│ ├── system # system模块配置集
│ │ ├── module.yml # dashboard调用配置
│ │ └── syslog # syslog组件配置集
│ │ ├── config # 本地提取过滤规则
│ │ │ └── syslog.yml
│ │ ├── ingest # 转发存储过滤规则,当转发到es集群时,此配置生效
│ │ │ └── pipeline.json # 本教程beat转发到redis,过滤规则由logstash负责
│ │ └── *manifest.yml # syslog组件通用配置,包含(提取日志路径、config、ingest)
├── NOTICE.txt
└── README.md
配置文件
路径:/etc/filebeat
树结构目录:
├── fields.yml # 预定义系统信息格式库
├── filebeat.reference.yml # filebeat初始化配置
├── *filebeat.yml # filebeat运行配置
└── modules.d # 模块开关
├── *system.yml # 启用状态 .yml 结尾
└── mysql.yml.disabled # 禁用状态 .disabled 结尾
有改动的配置
- /usr/share/filebeat/module/system/syslog/manifest.yml
module_version: "1.0"
var:
- name: paths
default: # 默认加载如下日志文件,进行转发
- /var/log/messages*
- /var/log/syslog*
- /var/log/boot* # 三级等保要求
- /var/log/cron* # 三级等保要求
- /var/log/maillog* # 三级等保要求
os.darwin:
- /var/log/system.log*
os.windows: []
ingest_pipeline: ingest/pipeline.json # 过滤规则。仅直接转发到es集群,此条配置生效。
input: config/syslog.yml # syslog模块配置
- /usr/share/filebeat/module/system/auth/manifest.yml
module_version: 1.0
var:
- name: paths
default: # 默认加载如下日志文件,进行转发
- /var/log/auth.log*
- /var/log/secure* # 三级等保要求
os.darwin:
- /var/log/secure.log*
os.windows: []
ingest_pipeline: ingest/pipeline.json # 过滤规则。仅直接转发到es集群,此条配置生效。
input: config/auth.yml # auth模块配置
- /etc/filebeat/modules.d/system.yml
# Module: system
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.4/filebeat-module-system.html
- module: system
# Syslog
syslog:
enabled: true # 抓取syslog日志
#var.paths: # 已在/usr/share/filebeat/module/system/auth/manifest.yml 中设置
# Authorization logs
auth:
enabled: true # 抓取auth日志
#var.paths: # 已在/usr/share/filebeat/module/system/auth/manifest.yml中设置
- filebeat_install.sh(安装脚本)
#!/bin/bash
tar -xvf filebeat_install.tar
cd filebeat_install
rpm -ih filebeat-7.4.1-x86_64.rpm
mv -f filebeat.yml /etc/filebeat/filebeat.yml
mv -f syslog-manifest.yml /usr/share/filebeat/module/system/syslog/manifest.yml
mv -f auth-manifest.yml /usr/share/filebeat/module/system/auth/manifest.yml
mv /etc/filebeat/modules.d/system.yml.disabled /etc/filebeat/modules.d/system.yml
systemctl enable filebeat
systemctl start filebeat
rm -rf ~/filebeat_install*