本文描述Logtail启动配置参数,如有特殊需求,可以参考本文进行设置。

应用场景

配置Logtail启动配置参数适用于以下场景:
  • 需要采集的日志文件数目很多导致内存使用较大(内存中需要维护每个文件的签名、采集位置、文件名等 meta 信息)。
  • 日志数据流量很大导致 CPU 使用率高。
  • 日志数据量大,发送到日志服务的流量也很大。
  • 收集 syslog/TCP 数据流。

启动配置

  • 文件路径
    /usr/local/ilogtail/ilogtail_config.json
  • 文件格式

    JSON

  • 文件示例(只展示部分配置项)
    {
        ...
        "cpu_usage_limit" : 0.4,
        "mem_usage_limit" : 100,
        "max_bytes_per_sec" : 2097152,
        "process_thread_count" : 1,
        "send_request_concurrency" : 4,
        "streamlog_open" : false,
        "streamlog_pool_size_in_mb" : 50,
        "streamlog_rcv_size_each_call" : 1024,
        "streamlog_formats":[],
        "streamlog_tcp_port" : 11111,
        "buffer_file_num" : 25,
        "buffer_file_size" : 20971520,
        "buffer_file_path" : "",
        ...
    }

常用配置参数

参数名 参数值 参数说明
cpu_usage_limit CPU 使用阈值,double 类型,以单核计算。 如 0.4,则限制 Logtail 的 CPU 使用为 CPU 单核的 40%,超出后 Logtail 自动重启。大部分场景下,极简模式单核处理能力约 24MB/s,完整正则模式单核处理能力约 12MB/s 。参考信息
mem_usage_limit 常驻内存使用阈值,int 类型,以 MB 计算。 如 100,则限制 Logtail 的内存使用为 100 兆字节,超出后 Logtail 自动重启。如需要采集的 distinct 文件数目超过 1000,请酌情修改上调该阈值。
max_bytes_per_sec Logtail 发送原始数据的流量限制,int 类型,以 Byte/Sec 计算。 如 2097152,则限制 Logtail 发送数据的速率为 2MB/s。
process_thread_count Logtail 处理日志文件写入数据的线程数。 默认 1 个处理线程,一般可以处理极简模式 24MB/s 或完整正则模式 12MB/s 的写入。默认情况下无需调整该阈值,只在必要的时候适当上调。
send_request_concurrency Logtail 默认是异步发送数据包,如果写入 TPS 很高可以配置更高的异步并发。 默认 4 个异步并发,可以按照一个并发支持 0.5MB/s~1MB/s 网络吞吐来计算,具体依据网络延时而定。
说明
参数过高容易导致网络端口占用过多,此时需调整TCP相关参数
streamlog_open 是否打开接受 syslog 功能,bool 类型。 false 表示关闭,true 表示打开。详细内容请参考Syslog-采集参考
streamlog_pool_size_in_mb 单位是 MB,用于缓存解收到的 syslog 数据。 syslog 用于接收日志的内存池大小,程序启动时会一次性申请这么大的内存,请根据机器内存大小以及实际需求填写。
streamlog_rcv_size_each_call Logtail 每次调用 linux socket rcv 接口使用的缓冲区大小,单位是 byte。 如果 syslog 流量很大,可以调高该值,建议取值范围 1024 到 8192。
streamlog_formats 定义接收到的 syslog 日志解析方式。 详细说明请参考Syslog-采集参考
streamlog_tcp_addr logtail 用于接收 syslog 日志的 绑定地址,默认0.0.0.0。 详细说明请参考Syslog-采集参考
streamlog_tcp_port Logtail 用于接收 syslog 日志的 TCP 端口。 默认是 11111。
buffer_file_num 网络异常,写入配额超限后,Logtail 将实时解析后的日志写入本地文件(安装目录下))缓存起来,等待恢复后尝试重新发送服务端。该参数限制缓存文件的最大数目。 公共云用户默认25个。
buffer_file_size 该参数设置单个缓存文件允许的最大字节数,(buffer_file_num * buffer_file_size) 是缓存文件可以实际使用的最大磁盘空间。 默认20971520(20MB)。
buffer_file_path 该参数设置缓存文件存放目录,请在修改该参数后,手动将旧缓存目录下名称如 logtail\_buffer\_file_* 的文件移动到新缓存目录,以保证 logtail 可以读取到该缓存文件并在发送后进行删除。 默认为空,缓存文件存放于程序安装目录(/usr/local/ilogtail)。
bind_interface 本机绑定的网卡名,例如eth1(只支持Linux版本)。 默认情况下自动绑定可用网卡,若配置该参数,Logtail将强制使用该网卡进行日志上传。
check_point_filename checkpoint文件保存的全路径,用于自定义Logtail的checkpoint保存位置。 默认情况下为/tmp/logtail_check_point。建议Docker用户修改此文件保存地址,并将checkpoint所在目录挂载到宿主机,否则容器释放时会因丢失checkpoint信息而产生重复采集。例如Docker中配置check_point_filename为 /data/logtail/check_point.dat,Docker启动命令增加-v /data/docker1/logtail:/data/logtail, 将宿主机/data/docker1/logtail目录挂载到Docker中的/data/logtail目录。
说明
  • 这里只列出您需要关注的常用启动参数,如 ilogtail_config.json 内有表格中未列出的参数,会使用默认配置,属于正常情况。
  • 请根据需要新增或修改指定配置参数所对应的值,用不到的配置项不用增加到 ilogtail_config.json,如采集 syslog 数据流相关设置等。

修改配置

  1. 按需配置 ilogtail_config.json

    请确认修改配置后,配置内容为合法 JSON。

  2. 重启Logtail使配置生效。
    /etc/init.d/ilogtaild stop
    /etc/init.d/ilogtaild start
    /etc/init.d/ilogtaild status