本文介绍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集群密码

上传&解压

  1. 将winlogbeat.zip上传的到服务器的任意路径
  2. 解压并进入wenlogbeat文件夹

启动winlogbeat

  1. 运行CMD(管理员)
  2. 进入winlogbeat目录
  3. 安装服务 PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1
  4. 启动服务 net start winlogbeat
  5. 确认服务状态 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.tarfilebeat_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*