Filebeat安装学习
Filebeat是一个轻量级的日志数据收集工具,属于Elastic公司的Elastic Stack(ELK Stack)生态系统的一部分。它的主要功能是从各种来源收集日志数据,将数据发送到Elasticsearch、Logstash或其他目标,以便进行搜索、分析和可视化。
以下是Filebeat的主要概述和特点:
- 轻量级:Filebeat是一个轻量级的代理,对系统资源的消耗非常低。它设计用于高性能和低延迟,可以在各种环境中运行,包括服务器、容器和虚拟机。
- 多源收集:Filebeat支持从各种来源收集数据,包括日志文件、系统日志、Docker容器日志、Windows事件日志等。它具有多个输入模块,可以轻松配置用于不同数据源的数据收集。
- 模块化:Filebeat采用模块化的方式组织配置,每个输入类型都可以作为一个模块,易于扩展和配置。这使得添加新的数据源和日志格式变得更加简单。
- 自动发现:Filebeat支持自动发现服务,可以在容器化环境中自动识别新的容器和服务,并开始收集其日志数据。
- 安全性:Filebeat支持安全传输,可以使用TLS/SSL加密协议将数据安全地传输到目标。它还支持基于令牌的身份验证。
- 数据处理:Filebeat可以对数据进行简单的处理,如字段分割、字段重命名和数据过滤,以确保数据适合进一步处理和分析。
- 目标输出:Filebeat可以将数据发送到多个目标,最常见的是将数据发送到Elasticsearch,以便进行全文搜索和分析。此外,还可以将数据发送到Logstash、Kafka等目标。
- 实时性:Filebeat可以以实时方式收集和传输数据,确保日志数据及时可用于分析和可视化。
- 监控和管理:Filebeat具有自身的监控功能,可以监视自身的状态和性能,并与Elasticsearch、Kibana等工具集成,用于管理和监控数据收集。
- filebeat.inputs:指定要监视的数据源。可以配置多个输入,每个输入定义一个数据源。每个输入包括以下参数:
- type:数据源的类型,例如日志文件、系统日志、Docker日志等。
- paths:要监视的文件路径或者使用通配符指定多个文件。
- enabled:是否启用该输入。
###下载filebeat软件:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.3-x86_64.rpm
安装:
###查看配置文件
systemctl cat filebeat
# /usr/lib/systemd/system/filebeat.service
[Unit]
Description=Filebeat sends log files to Logstash or directly to Elasticsearch.
Documentation=https://www.elastic.co/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
Environment="GODEBUG='madvdontneed=1'"
Environment="BEAT_LOG_OPTS="
Environment="BEAT_CONFIG_OPTS=-c /etc/filebeat/filebeat.yml"
Environment="BEAT_PATH_OPTS=--path.home /usr/share/filebeat --path.config /etc/filebeat --path.data /var/lib/filebeat --path.logs
ExecStart=/usr/share/filebeat/bin/filebeat --environment systemd $BEAT_LOG_OPTS $BEAT_CONFIG_OPTS $BEAT_PATH_OPTS
Restart=always
[Install]
WantedBy=multi-user.target
###查看配置文件.yml
egrep -v '^$|^*#' /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: filestream
enabled: false
paths:
- /var/log/*.log
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
setup.kibana:
output.elasticsearch:
hosts: ["localhost:9200"]
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
###########修改filebeat的配置文件
1.编写测试的配置文件
mkdir /etc/filebeat/config
cat > /etc/filebeat/config/01-stdin-to-console.yml << EOF
#指定输入类型
filebeat.inputs:
###指定输入的类型为“stdin”,表示标准输入
- type: stdin
########指定输出类型:
output.console:
#打印漂亮的格式:
pretty: true
EOF
########原有剧本文件备份:
目录:/etc/filebeat
mv filebeat.yml filebeat_$(date +%F).yml
ls filebeat.yml
ls: cannot access filebeat.yml: No such file or directory
#########创建新文件:
cat > /etc/filebeat/filebeat.yml << EOF
#指定输入类型
filebeat.inputs:
###指定输入的类型为“stdin”,表示标准输入
- type: stdin
########指定输出类型:
output.console:
#打印漂亮的格式:
pretty: true
EOF
################执行filebeat测试##############
一般是/etc/filebeat/filebeat.yml这个文件
filebeat -e -c filebeat.yml
也可以执行其他文件
filebeat -e -c ~/config/01-stdin-to-console.yml