你现在看到的是Logstash启动后的日志输出,核心信息是Logstash已经成功启动并正常运行,同时存在几个可忽略的警告和需要了解的关键日志信息,我会帮你逐一解读。
一、日志信息逐段解读
1. 前期警告(不影响运行)
- JAVA_HOME弃用警告 :和之前一样,只是提醒你后续版本会移除
JAVA_HOME的支持,改用LS_JAVA_HOME,当前不影响功能。 - Ignoring the 'pipelines.yml' file :因为你通过命令行
-f指定了单个配置文件,所以Logstash忽略了默认的pipelines.yml(多管道配置文件),这是正常现象。
2. 核心成功日志(重点关注)
| 日志内容 | 含义 |
|---|---|
Successfully started Logstash API endpoint {:port=>9600} |
Logstash的API端口9600已启动,可通过该端口监控Logstash状态 |
New Elasticsearch output {:hosts=>["//10.0.0.22:9200"]} |
Logstash已配置输出到Elasticsearch(地址10.0.0.22:9200) |
Restored connection to ES instance |
Logstash成功连接到Elasticsearch |
Pipeline started {"pipeline.id"=>"main"} |
主管道已启动,配置文件test2.conf生效 |
Pipelines running {:count=>1, :running_pipelines=>[:main]} |
Logstash的管道正常运行,没有异常 |
filewatch.observingtail ... START |
文件监控模块已启动,开始监听指定的日志文件(这里是/var/log/messages) |
3. 关于Elasticsearch的警告(正常)
Detected a 6.x and above cluster: the type event field won't be used:Elasticsearch 7.x及以上版本已经移除了文档类型(_type),Logstash提醒你type字段不再用于确定文档类型,这是适配ES版本的正常提示,无需处理。Config is not compliant with data streams:你的配置没有启用ES的数据流(Data Streams),使用的是传统索引模式,这是默认行为,对新手来说完全没问题。
二、验证Logstash是否正常采集日志
你可以通过以下方式确认日志采集和输出是否正常:
1. 查看Elasticsearch中的索引
登录到Elasticsearch所在的主机(10.0.0.22),执行命令查看是否生成了对应的索引:
bash
# 查看所有索引
curl -X GET "http://10.0.0.22:9200/_cat/indices?v"
如果能看到以nginx-access(或你配置的索引名)开头的索引,说明数据已经成功写入ES。
2. 查看Logstash的控制台输出(如果配置了stdout)
如果你的配置文件中保留了stdout { codec => rubydebug },可以在启动Logstash的终端看到结构化的日志数据输出,这是最直观的验证方式。
3. 检查文件监控状态
Logstash会记录读取日志文件的位置(sincedb),你可以查看对应的sincedb文件确认是否在监控文件:
bash
# 日志中显示的sincedb路径(示例)
cat /var/lib/logstash/plugins/inputs/file/.sincedb_452905a167cf4509fd08acb964fdb20c
该文件会记录日志文件的inode、大小、读取位置等信息,说明文件监控正常。
三、如果后续采集不到日志的排查方向
-
检查日志文件路径 :确认配置的
/var/log/messages(或Nginx日志路径)是否正确,Logstash进程是否有读取该文件的权限。bash# 赋予Logstash读取日志的权限(示例) chmod o+r /var/log/messages # 或修改文件所属组 chgrp logstash /var/log/messages -
检查日志文件是否有新内容:如果日志文件长时间没有新日志写入,Logstash也不会有数据输出,可以手动触发日志生成(比如访问Nginx页面)。
-
检查Elasticsearch连接:如果ES宕机或网络不通,Logstash会在日志中输出连接错误,此时需要重启ES或检查网络。
总结
- 核心状态 :Logstash已成功启动并正常运行,管道、ES连接、文件监控模块均已正常工作。
- 警告处理:当前的警告(JAVA_HOME、ES type字段、data streams)均为正常提示,无需修改配置,不影响功能使用。
- 验证方法:可通过查看ES索引、控制台输出或sincedb文件,确认日志采集和输出是否正常。