|
如果您无法通过脚本生成配置文件,这份指导将帮助您通过简单的复制、粘贴完成配置。 注意:以下说明针对部署版用户,如果您是云端用户,请参考产品“设置-日志上传”页面的说明进行配置。 
假定您已拥有root或sudo权限,是在通用的Linux平台使用5.8.0或更高版本的rsyslog,rsyslog能接收本地系统日志,并通过5140端口与外界连接。如果您有不同的需求,请参阅高级选项。 基础1. 配置系统环境粘贴以下脚本并运行,将保证 /var/spool/rsyslog 目录已存在,如果是Ubuntu系统,还会对目录进行权限设置。 sudo mkdir -v /var/spool/rsyslogif [ "$(grep Ubuntu /etc/issue)" != "" ]; then sudo chown -R syslog:adm /var/spool/rsyslogfi. Z3 i1 t: | X7 @3 j
2. 更新rsyslog配置文件打开rsyslog配置文件,它通常在 /etc/rsyslog.d 目录下 sudo vim /etc/rsyslog.d/rizhiyi.conf 将下列内容粘贴在这个配置文件中 $ModLoad imfile $WorkDirectory /var/spool/rsyslog $InputFileName FILEPATH $InputFileTag APPNAME $InputFileStateFile stat_APPNAME $InputFileSeverity info $InputFilePersistStateInterval 20000 $RepeatedMsgReduction off $InputRunFileMonitor 8 H; j! [8 O- _9 U, Z1 E
$InputFilePollInterval 3 $template RizhiyiFormat_APPNAME,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [TOKEN@32473 tag=\"TAG\"] %msg%\n"
" j+ b8 H# W" M. ^! k
if $programname == 'APPNAME' then @@EXAMPLE.DOMAIN.COM;RizhiyiFormat_APPNAME if $programname == 'APPNAME' then ~ 替换 - TOKEN: 使用“数据设置--用户标识”页面中的用户标识符替换它。示例:ba1f2511fc30423bdbb183fe33f3dd0f
- FILEPATH: 需要上传的日志文件的绝对路径,必须包含日志文件名。示例:/var/log/nginx/access.log
- APPNAME: 用于标识上传的唯一应用来源,可用来定义日志分组,这将帮助您有效划分日志,缩小搜索范围。APPNAME设置正确与否直接影响到后台对日志字段的提取。Appname由英文、数字及下划线组成,不可以与/etc/rsyslog.d下已有的配置重复(通过rsyslog上传时也不能包含空格),否则会导致新配置的token和tag不生效。如果您是VIP用户,日志易为您定制了日志解析规则,请填写日志易提供的针对该日志的APPNAME,以使定制的日志解析规则生效。示例:nginx_access
- TAG: 标签,标识日志的扩展信息,可定义多个标识,这里替换为您自行定义的标签,可用来定义日志分组,这将帮助您有效划分日志,缩小搜索范围。示例: rizhiyi_search
- EXAMPLE.DOMAIN.COM:用于指定接收日志的服务器域名或者主机名。日志易SaaS服务默认地址是 log.u.rizhiyi.com:5140;其他公有云或部署版用户可以通过产品设置页面查看自己的专属地址。; Q" W2 @3 ~% ] o
注意 - 在 /etc/rsyslog.d/ 下的rsyslog配置文件中:
- $InputFileTag定义的APPNAME必须唯一,同一台主机上不同的应用应当使用不同的APPNAME,否则会导致新定义的TOKEN和TAG不生效;
- $template定义的模板名必须唯一,否则会导致新定义的TOKEN和TAG不生效;
- $InputFileStateFile定义的StateFile必须唯一,它被rsyslog用于记录文件上传进度,否则会导致混乱;# O. T& ^5 W, ]6 v
- @@log.rizhiyi.com:5140 用于指定接收日志的服务器域名或者主机名。默认是 log.rizhiyi.com:5140
- Ubuntu系统因为rsyslog是以syslog用户运行,所以会存在因为无读权限而无法采集日志的问题。为了检查syslog用户是否有权限读取日志文件可以用 su -s /bin/sh -c "head -n 1 /PATH/TO/YOUR/LOGFILE" syslog 命令验证
3 B: w( D$ G4 p5 J }& h4 n% t 3. 重启rsyslog#如果是CentOS 7及以上版本,重启此服务命令为:* u' P; g9 f. M/ h" U1 e
$sudo systemctl restart rsyslog.service#否则为$sudo service rsyslog restart4. 验证例如,配置文件中的tag字段已修改为"accesslog",可使用"tag:accesslog"搜索过去一小时的事件,检查日志易是否成功接收并正确识别日志,建立索引可能需要几十秒钟时间,需要等待几十秒钟。如果搜索不到结果,请参阅下面的[疑难解答](#troubleshooting)部分。 监听Linux系统日志(syslog)的配置如果您希望将Linux系统日志(syslog)上传到日志易中,您需要做以下简单配置: - 在/etc/rsyslog.d目录下新建配置一个文件rizhiyi.conf;
添加以下内容: 4 R& d7 C7 ]6 E
$template RizhiyiFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [TOKEN@32473 tag=\"TAG\"] %msg%\n"
0 {5 S7 S. H' M I. t3 V4 S& g *.* @@log.rizhiyi.com:5140;RizhiyiFormat6 o! z2 A+ k; q2 ]
用户需要修改的内容包括: - TOKEN: 使用从"数据设置--用户标识"页面中您的用户标识符替换它。示例:ba1f2511fc30423bdbb183fe33f3dd0f
- TAG: 标签,标识日志的扩展信息,可定义多个标识,这里替换为您自行定义的标签,可用来定义日志分组,这将帮助您有效划分日志,缩小搜索范围。示例: syslog
; _9 b8 I% v% R2 ?( H
修改后内容示例:
) b* W6 U9 T$ @! l $template RizhiyiFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [ba1f2511fc30423bdbb183fe33f3dd0f@32473 tag=\"syslog\"] %msg%\n"
- Y: n' a \# L" T5 C1 Y *.* @@log.rizhiyi.com:5140;RizhiyiFormat* Y9 q/ z( O5 J) s
" T' J( h: u/ ]. H- s7 C* J3 ]
. n/ R% W9 H. I: ] w$template RizhiyiFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [ba1f2511fc30423bdbb183fe33f3dd0f@32473 tag=\"syslog\"] %msg%\n" *.* @@log.rizhiyi.com:5140;RizhiyiFormat 重启rsyslog服务 $ sudo service rsyslog restart # Q; i3 b) n' D, _2 i+ x0 r
高级选项疑难解答如果您在验证步骤看不到数据,请参照rsyslog疑难解答 ' B: T1 F4 t+ B' N" ^+ o8 d3 r
|