跳转至

iLogtail

安装配置

DataKit 开启采集器

cd /usr/local/datakit/conf.d/log
cp logstreaming.conf.sample logstreaming.conf
sysemctl restart datakit

iLogtail 配置

下载 iLogtail

wget https://ilogtail-community-edition.oss-cn-shanghai.aliyuncs.com/latest/ilogtail-latest.linux-amd64.tar.gz

创建配置文件

解压后在 ilogtail-1.7.1/user_yaml_config.d 目录创建文件 file_sample.yaml

这里配置采集 /usr/local/df-demo/log-demo/logs/log.log 文件日志。

enable: true
inputs:
  - Type: file_log              
    LogPath: /usr/local/df-demo/log-demo/logs    # 文件路径
    FilePattern: log.log     # 文件名   
flushers:
  - Type: flusher_stdout     
    OnlyStdout: true
  - Type: flusher_http
    RemoteURL: "http://localhost:9529/v1/write/logstreaming" 

启动 iLogtail

cd ilogtail-1.7.1
./ilogtail

手动输入日志

echo "hello" >>  /usr/local/df-demo/log-demo/logs/log.log

此时观测云已经收到 iLogtail 推送的日志。

pipeline 配置

本次使用的日志是 JAVA 应用生成的日志文件/usr/local/df-demo/log-demo/logs/log.log,日志格式不同,下图中 content 的值会存在差异,pipeline 也要做相应改变。

Javalogback.xml 输出日志的格式如下,输出内容对应上图中的 content 的值。

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - [%X{dd.service}][%X{dd.trace_id}][%X{dd.span_id}] - %msg%n

下面编写 Pipeline 对完整的日志内容进行切割,主要把 hosthost_iptrace_id 等信息从日志中提取出来。

日志】->【文本处理(Pipeline)】-> 新建 Pipeline。日志来源输入“default”,输入解析规则然后保存。

json_data = load_json(_)
contents = json_data["contents"]
tags = json_data["tags"]
content = contents["content"]
grok(content, "%{TIMESTAMP_ISO8601:time}%{SPACE}\\[%{NOTSPACE:thread_name}\\]%{SPACE}%{LOGLEVEL:status}%{SPACE}%{NOTSPACE:class_name}%{SPACE}%{SPACE}-%{SPACE}\\[%{NOTSPACE:method_name},%{NUMBER:line}\\]%{SPACE}-%{SPACE}\\[%{DATA:service_name}\\]\\[%{DATA:trace_id}\\]\\[%{DATA:span_id}\\]%{SPACE}-%{SPACE}%{GREEDYDATA:msg}")
add_key(message, content)
add_key(host_ip, tags["host.ip"])
add_key(host, tags["host.name"])
add_key(filepath, tags["log.file.path"])

启动JAVA应用生成日志,会自动触发 iLogtail日志采集。

进入观测云,可以看到日志已经收集,pipeline也正常生效。

文档评价

文档内容是否对您有帮助? ×