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

应用场景

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

启动配置

  • 文件路径
    /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,
        "buffer_file_num" : 25,
        "buffer_file_size" : 20971520,
        "buffer_file_path" : "",
        ...
    }

常用配置参数

参数名 参数说明 取值
cpu_usage_limit CPU 使用阈值,以单核计算。

大部分场景下,极简模式单核处理能力约 24MB/s,完整正则模式单核处理能力约 12MB/s 。参考信息

double 类型。最小值为0.1,最大值为当前机器的CPU核心数,默认值为2。

若设置为0.4,表示限制 Logtail 的CPU使用为CPU单核的40%,超出后Logtail自动重启。

mem_usage_limit 常驻内存使用阈值。

如需要采集的distinct文件数目超过1000,请酌情修改上调该阈值。

int 类型,为单位为MB。最小值为128,最大值为当前机器有效内存值,默认值为2048。

若设置为100,表示Logtail的内存使用为100兆字节,超出后Logtail自动重启。

max_bytes_per_sec Logtail 发送原始数据的流量限制,超过20 MB/s不限流。

int类型,单位为Byte/Sec。取值范围为1024~52428800,默认值为20971520。

若设置为2097152,表示Logtail发送数据的速率为 2MB/s。

process_thread_count Logtail 处理日志文件写入数据的线程数。

一般可以处理极简模式 24MB/s 或完整正则模式 12MB/s 的写入。默认情况下无需调整该参数取值,可以必要的时候适当上调。

int类型,单位为个。取值范围为1~64,默认值为1。
send_request_concurrency 异步并发的个数。Logtail 默认异步发送数据包,如果写入 TPS 很高,可以配置更高的异步并发。

可以按照一个并发支持 0.5MB/s~1MB/s 网络吞吐来计算,具体依据网络延时而定。

说明 参数过高容易导致网络端口占用过多,此时需调整TCP相关参数

int类型,单位为个。取值范围为1~1000,默认值为20。

buffer_file_num 网络异常,写入配额超限后,Logtail将实时解析后的日志写入本地文件(安装目录下)缓存起来,等待恢复后尝试重新发送服务端。该参数限制缓存文件的最大数目。 int类型,单位为个。取值范围为1~100,默认为 25。
buffer_file_size 该参数用于设置单个缓存文件允许的最大字节数,buffer_file_num * buffer_file_size是缓存文件可以实际使用的最大磁盘空间。 int类型,单位为Byte。取值范围为1048576~104857600,默认值为20971520 Byte,即20MB。
buffer_file_path 该参数用于设置缓存文件存放目录,请在修改该参数后,手动将旧缓存目录下名称如 logtail\_buffer\_file_*的文件移动到新缓存目录,以保证 logtail 可以读取到该缓存文件并在发送后进行删除。 默认情况下该参数为空,缓存文件存放于程序安装目录/usr/local/ilogtail
bind_interface 本机绑定的网卡名,例如eth1。只支持Linux版本。 默认情况下该参数为空,自动绑定可用网卡,若配置该参数,Logtail将强制使用该网卡进行日志上传。
check_point_filename checkpoint文件保存的全路径,用于自定义Logtail的checkpoint保存位置。

建议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目录。

默认情况下为/tmp/logtail_check_point
user_config_file_path 采集配置文件保存的全路径,用于自定义Logtail的采集配置保存位置。

建议Docker用户修改此文件保存地址,并将采集配置所在目录挂载到宿主机,否则容器释放时会因丢失checkpoint信息而产生重复采集。

例如Docker中配置user_config_file_path/data/logtail/user_log_config.json,Docker启动命令增加-v /data/docker1/logtail:/data/logtail, 将宿主机/data/docker1/logtail目录挂载到Docker中的/data/logtail目录。

默认情况下为进程binary所在目录,文件名为user_log_config.json
discard_old_data 是否丢弃历史日志,若该值为true,则丢弃距当前时间超过12小时的日志。 bool类型,默认值为true。
working_ip Logtail上报的本机IP地址,若该值为空,则自动从本机获取IP。 IP地址,默认为空。
working_hostname Logtail上报的本机hostname,若为空,则自动获取本机hostname。 字符串类型,默认为空。
max_read_buffer_size 每条日志读取最大值,若您的单条日志超过512KB,可调整此选项。 long类型,默认值524288Byte(512KB)。
说明
  • 这里只列出您需要关注的常用启动参数,如 ilogtail_config.json 内有表格中未列出的参数,会使用默认配置,属于正常情况。
  • 请根据需要新增或修改指定配置参数所对应的值,不必要的配置项不需要增加到 ilogtail_config.json

修改配置

  1. 按需配置 ilogtail_config.json

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

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