收集日志

日志收集规范请参考统一日志服务

如果你使用的是JAVA技术,我们也提供了简单的日志插件来完成日志收集。

JAVA日志插件

在使用插件前,请先下载插件

插件概述

日志插件基于JAVA技术,拦截Logback日志框架的接口操作,使用Logback日志框架所写的日志除了按照Logback日志框架 自身的配置记录外,会另外根据统一日志服务规范记录另一份日志到插件目录下,并使用filebeat自动收集日志写入ES中。

使用这个插件需要基于Logback日志框架记录日志

插件完整目录结构如下:

logagent
  +--- conf (1)
  +    +-- logagent.yaml
  +    +-- logback.xml
  +--- filebeat (2)
  +--- lib (3)
  +--- logs (4)
  +--- agent.jar (5)
  +--- api.jar (6)
  • (1): 日志收集配置
  • (2): 内置filebeat,自动收集(4)中产生的日志
  • (3): 依赖的jar包
  • (4): 按照规范生成的日志
  • (5): 插件功能实现的jar包
  • (6): 插件功能接口jar包

使用插件

按照如下步骤即可使用插件:

  • 修改conf/logagent.yaml文件,配置ES地址和日志帐户。
  • 在启动应用的脚本中增加JVM启动参数启动插件。

修改配置

conf/logagent.yaml的配置如下:

sql.slow: 0
sql.pattern: .*
http.slow: 0
http.url.pattern: .*
prog_log.level: DEBUG
output:
    elasticsearch:
        # 修改这里的ES地址
        hosts: http://10.201.76.136:9200
        # 修改日志账号
        username: dtls
        # 修改日志账户的密码
        password: bxSFCKHPc7wDGkfrY4pc2
        trace-log-index: trace-log
        prog-log-index: prog-log

在如上代码中,分别按照实际环境修改ES地址,日志帐号密码即可。

增加JVM启动参数

需要增加如下参数:

-Dfile.encoding=UTF-8
-Xbootclasspath/a:${LOGAGENT_HOME}/api.jar
-javaagent:${LOGAGENT_HOME}/agent.jar=${LOGAGENT_HOME}/conf/logagent.yaml

这里的${LOGAGENT_HOME}就是插件的绝对路径地址。

tomcat示例

这里以tomcat为例,示意如何配置日志收集插件。

下载插件

下载插件后,将插件解压并放到tomcat的根目录下。

增加tomcat启动脚本

${CATALINA_HOME}/bin目录下新建setenv.bat(linux系统为setenv.sh)脚本文件:

windows系统:

JAVA_OPTS="%JAVA_OPTS% -Dfile.encoding=UTF-8 -Xbootclasspath/a:%CATALINA_HOME%/logagent/api.jar -javaagent:%CATALINA_HOME%/logagent/agent.jar=%CATALINA_HOME%/logagent/conf/logagent.yaml"

linux系统:

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Xbootclasspath/a:$CATALINA_HOME/logagent/api.jar -javaagent:$CATALINA_HOME/logagent/agent.jar=$CATALINA_HOME/logagent/conf/logagent.yaml"

完成上述配置启动tomcat即可,在控制台可以看到如下日志说明配置成功:

产生日志

这里我们以一个最简单的写入日志为例:

这里我们创建了一个API,唯一的功能就是写入一行info级别的日志,并返回这个记录的字符串。

在浏览器访问一次即可看到返回的结果:

"kael.demo.controllers.LogController: logUserGet"

到这里我们就成功向统一日志服务写入了一次调用日志。

现在需要查看这次调用的调用过程和日志,请看查看日志

上一篇:注册日志帐号 下一篇:查看日志