llog

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2019 License: MIT Imports: 4 Imported by: 0

README

LLOG

Lightweight log agent.

说明

  1. 超轻量级日志收集,过滤,上报工具。支持glob选取日志,收集日志上报至指定API或ES,后续支持kafka,redis。
  2. 支持filebeat核心功能。
  3. 相同运行环境,监控相同日志,比filebeat占用内存少50%以上。

测试机器:mac book pro 系统版本:10.14.5 配置:i9/1TB SSD/32G

程序 监控文件数 占用内存 线程数
llog 4 6.1MB 23
llog 20 6.8MB 34
llog 50 7.1MB 36
filebeat 4 13.9MB 31
filebeat 20 16.2MB 37
filebeat 50 35.3MB 38
  1. 一键安装,无依赖。

安装

指定配置
1. 下载对应版本LLA
# 下载linux 64 bit
wget http://qiniucdn.schoeu.com/llog_64bit

# 下载linux 32 bit
wget http://qiniucdn.schoeu.com/llog_32bit

2. 创建配置文件,新建llog_conf.yml文件,内容如下
# 日志收集配置块
input:

# 存放各类日志文件的glob匹配路径
- log_path: ["/var/folders/lp/jd6nj9ws5r3br43_y7qw66zw0000gn/T/.nm_logs/nm_apps?/*.log"]
  # 在输入中排除符合正则表达式列表的日志行
  #exclude_lines: ["test"]

  # 包含输入中符合正则表达式列表的日志行
  #include_lines: ["^\\w+"]

  # 忽略掉符合正则表达式列表的文件
  #exclude_files: ["\\d{4}.log"]

  # 默认为false, 从文件开始处重新发送所有内容。设置为true会从文件尾开始监控文件新增内容把新增的每一行文件进行发送
  tail_files: true

  #检测是否有新增日志文件的频率,默认为10秒
  scan_frequency: 160

  # 最后一次读取文件后,持续时间内没有再写入日志,将关闭文件句柄,默认是 5分钟
  close_inactive: 30

  # 发送自定义字段,默认会放在fields字段下, 当然也可以使用json字符串, 如  '{"a":"b"}'
  #fields: "some field here"

  # 多行匹配
  #multiline:
    # 多行匹配点
    #pattern: "^normal_log"
    # 最多匹配多少行,默认10
    #max_lines: 10

- log_path: ["/var/folders/lp/jd6nj9ws5r3br43_y7qw66zw0000gn/T/.nm/*.log"]
  # 多行匹配
  multiline:
    # 多行匹配点
    pattern: "^error_log"
    # 最多匹配多少行,默认10
    max_lines: 5
  scan_frequency: 160
  close_inactive: 30

# 输出配置块:
output:

  # 把收集到的日志发送到指定API
  # 请求boby中带有JSON数据,以POST方法发送至指定接口
  #api_server:
  # 是否启用
  #enable: false
  #url: "http://127.0.0.1:9200/nma"

  elasticsearch:
    # 是否启用
    enable: true
    host: ["http://127.0.0.1:9200/"]
    index: "nma"
    # 输出认证.
    #username: "admin"
    #password: "s3cr3t"

# 通用配置块

# 应用名
#name: "llog"
# 是否上报系统级别日志(cpu,内存,磁盘,网络), 默认为false,不上报
#sys_info: true

# 系统信息上报时间间隔,默认为10秒
#sys_info_during: 10

# 设置最大使用cpu数量, 默认无限制
#max_procs: 8

# 文件状态保持配置
#snapshot:
  # 文件状态开关, 默认不开启
  #enable: false

  # 文档状态保存,快照当前状态到本地,下次启动会优先使用快照内容
  #snapshot_dir: '/path/to/snapshot/file'

  # 定时保存文件状态,默认为5秒
  #snapshot_during: 5

3. 后台启动llog
# 默认配置启动
nohup ./llog_64bit >> llog_nohup.log 2>&1 &

# 指定配置文件启动
nohup ./llog_64bit ./llog_conf.yml >> llog_nohup.log 2>&1 &

上报数据格式

{
    "@logId": "cc621467-b53e-4e76-84b5-5679567c986f",
    "@message": "log content here...",
    "@timestamps": 1569751757188,
    "@name": "LLOG",
    "@version": "1.0.0",
    "@type": "normal|error|system",
    "@fields": "{\"key\":\"value\"}"
}

特性

  • 获取系统信息(cpu,内存,磁盘,网络)
  • 支持Glob语法批量指定日志
  • output支持ElasticSearch
  • output支持HTTP API
  • 在输入中排除符合正则表达式列表的日志行
  • 包含输入中符合正则表达式列表的日志行
  • 忽略掉符合正则表达式列表的文件
  • 一次日志事件中最多上传多少个字符
  • 更换配置文件为yaml
  • API, ES请求Timeout设置
  • 多行日志匹配,一般用于错误堆栈信息收集
  • 多行日志匹配限制行上限
  • 可配置从日志文件起始或尾部进行日志监听
  • 新增文件检测
  • 自动关闭长期不活动文件句柄
  • 可限制cpu最多使用核数
  • 支持自定义字段,用于检索
  • 保存文件状态
  • 支持多套独立配置
  • 可设置日志上报线程数

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL