采集异常

最近更新时间:2019-02-21 10:46:16

常见异常现象

  • Loglistener 安装成功,但未上报数据。
  • Loglistener 上报数据出错。

排查步骤

  1. 修改 Loglistener 日志级别。
    编辑 etc/loglistener.conf 配置文件,将 level 设置为 DEBUG,并重启 Loglistener。

    在安装目录下执行如下命令重启 Loglistener。

    cd loglistener/tools && ./start.sh

    注意:

    重启 Loglistener 不会丢失日志。

  2. 确认日志上报成功。
    在安装目录下执行以下命令,查看日志是否成功上报:

    cd loglistener/log
    tail -f loglistener.log | grep "ClsFileProc::readFile" | grep send

    如果日志成功上报到服务后台,则会出现类似下图所示的日志:

    说明:

    如果日志通过 HTTP 方式上报,可以通过抓包查看80端口,判断日志是否上报成功。

    如果日志没有成功上报到后台,可能由以下原因导致,请逐步排查:

    1. 在安装目录下执行以下命令,检查 Loglistener 采集配置是否正确。

      cd loglistener/log
      tail -f loglistener.log | grep "ClsServerConf::load"

      如果已配置下发,日志则如下所示:

      下发配置需要检查 log_type、path 信息是否正确:

      • log_type 表示配置的日志解析类型(单行全文:minimalist_log,分隔符:delimiter_log,json日志:json_log,多行全文:regex_log)。
      • path 表示日志采集目录。
    2. 在安装目录下执行以下命令,检查文件是否被正常监听。

      cd loglistener/log && grep [上报日志文件的文件名] loglistener.log
      • 如果文件成功被监听,会出现以下日志:
      • 如果 grep 失败,使用 grep regex_match loglistener.log 搜索,检查控制台的正则表达式是否配置合理。如果出现下图所示的内容,表示文件名匹配正则失败,请登录控制台更改表达式。
      • 如果文件没有监听成功,检查日志所在挂载点是否是 NAS、CIFS、NFS 类型的共享目录。由于 Loglistener 采集机制,目前不支持采集此类目录文件。
    3. 检查日志正则解析是否正确。
      对于完全正则和多行全文提取模式,需要指定正则表达式。多行全文中,首行正则表达式匹配的是整个首行的内容,而非首行开头的部分内容。
      例如,下图所示的日志样例。 INFO、ERROR、WARN 为日志首行,除了匹配(INFO|ERROR|WARN)外,还需将 INFO、ERROR、WARN 后面的字符匹配上。

      • 错误配置方法:^(INFO|ERROR|WARN)
      • 正确配置方法:^(INFO|ERROR|WARN).*