目录
3.1.filebeat-mall-nginx-mobilemall.yml 配置文件
Filebeat 是一个轻量级的日志传输工具,它可以监视文件变化并自动将新的日志行传输到 Elasticsearch。Filebeat 的配置相对简单,可以轻松地部署在多个环境中,包括裸机、虚拟机和容器等。由于 Filebeat 轻量级的特点,它更适合于规模较小的日志收集场景。
ES(Elasticsearch)是一个分布式搜索和分析引擎,它可以对海量数据进行快速、近实时的存储、搜索和分析。ES 的强大功能使其适用于各种规模的企业级应用。
Kibana 是一个可视化工具,它可以与 Elasticsearch 配合使用,为使用者提供直观的数据展示和查询界面。Kibana 支持多种数据源和查询方式,可以方便地对数据进行探索、分析和导出。
适用场景:Filebeat+ES+Kibana 适用于中小型企业的日志分析场景,特别是需要监控裸机或虚拟机环境的场景。由于 Filebeat 的轻量级特点,它也适用于一些需要轻量级日志传输的场景。
1.日志采集模式
模式:filebeat+es+kibana
2.部署filebeat服务
在需要采集日志的机器上部署filebeat服务,具体部署步骤如下。
2.1.上传filebeat安装包
将filebeat-7.8.0-linux-x86_64.tar.gz上传到/usr/local目录下
2.2.解压filebeat安装包
命令:tar xzvf filebeat-7.8.0-linux-x86_64.tar.gz
3.采集nginx日志
3.1.filebeat-mall-nginx-mobilemall.yml 配置文件
配置文件路径:/usr/local/filebeat-7.8.0-linux-x86_64/
创建filebeat-mall-nginx-mobilemall.yml配置文件,配置示例如下:
赋权:chmod 755 filebeat-mall-nginx-mobilemall.yml
##########filebeat采集nginx日志输入ES#########
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/nginx/logs/mobilemall.log
tags: ["mall-nginx-mobilemall-fz"]
json.keys_under_root: true
json.add_error_key: true
output.elasticsearch:
hosts: ["10.62.196.19:9200"]
indices:
- index: "mall-nginx-mobilemall-fz-%{+YYYY-MM-dd}"
when.contains:
tags: "mall-nginx-mobilemall-fz"
setup.template.enabled: false
setup.template.name: "nginx"
setup.template.pattern: "mall-nginx-*"
setup.template.overwrite: true
配置说明:
input:
type: 指定输入类型为日志类型。
enabled: 启用输入,这个参数设置为true表示启用该输入。
paths: 指定需要监控的日志文件的路径,
tags: 为监控的日志文件添加标签,这样可以在后续的搜索或过滤中 使用这些标签。
json.keys_under_root: true-Filebeat将JSON日志中的键直接放在事件 的根级别,而不是嵌套在“fields”下。这有助于使Elasticsearch中的数据结 构更加扁平化。
json.add_error_key: true-如果JSON解析失败,这将在事件中添加一个错 误字段。这有助于识别和解析问题。
output:
output.elasticsearch: 定义输出目标为Elasticsearch。
hosts: 指定Elasticsearch的主机地址和端口,
indices: 定义将日志发送到的Elasticsearch的索引名称。在这里,当 日志中包含"mall-nginx-mobilemall-fz"这个标签时,日志将被发送 到"mall-nginx-mobilemall-fz-%{+YYYY-MM-dd}"这个索引中。
setup.template.enabled: 定义是否启用模板设置,这里设置为false 表示不启用。
setup.template.name: 定义要创建的模板的名称,这里是"nginx"。
setup.template.pattern: 定义要匹配的模板的模式,这里任何以 "mall-nginx-*"开头的索引都会匹配这个模板。
setup.template.overwrite: 如果设置为true,那么如果已经存在一个 与setup.template.name同名的模板,Filebeat将会覆盖它。
3.2.检查配置文件是否正确
检查文件是否正确:cd /usr/local/filebeat-7.8.0-linux-x86_64
命令:./filebeat test config -c filebeat-mall-nginx-mobilemall.yml
出现Config OK 则代表文件格式正确。
3.3.Nginx日志查询验证
3.3.1.启动filebeat服务
路径:/usr/local/filebeat-7.8.0-linux-x86_64
命令: ./filebeat -e -c filebeat-mall-nginx-mobilemall.yml &
3.3.2.创建索引模板
a.登录kibana管理界面
b.选择:Management-stack-Management-Elasticsearch,进入“索引管理”,选择“索引模板”,创建nginx模板,具体参数如下:
名称:nginx
索引模式:mall-nginx-*
索引设置:
{
"index": {
"highlight": {
"max_analyzed_offset": "2000000000"
},
"refresh_interval": "1s",
"blocks": {
"read_only_allow_delete": "false"
},
"query": {
"default_field": [
"*"
]
},
"priority": "1",
"number_of_replicas": "0",
"write": {
"wait_for_active_shards": "1"
}
}
}
然后直接下一步,创建索引模板成功,展示如下:
3.3.3.创建索引模式
a.登录kibana管理界面
b.选择:Management-stack-Management-kibana
c.选择“索引模式”,点击“创建索引模式”,定义一个 索引模式,能够匹配到生成的mall-nginx-的索引,然后保存。
3.3.4.查询结果展示
进入“discover”界面,选择mall-nginx-*模式,在搜索栏目填写搜索条件:tags:"mall-nginx-mobilemall-fz",然后点击:刷新,日志展示结果如下: