通过Rsyslog实现对Nginx日志发送至日志服务器 |
您所在的位置:网站首页 › rsyslog发送频率 › 通过Rsyslog实现对Nginx日志发送至日志服务器 |
配置文件/etc/rsyslog.conf local 1~7 –自定义的日志设备: 日志级别: ———————————————————————- debug 0 –有调式信息的,日志信息最多 info 1 –一般信息的日志,最常用 notice 2 –最具有重要性的普通条件的信息 warning 3 –警告级别 err 4 –错误级别,阻止某个功能或者模块不能正常工作的信息 crit 5 –严重级别,阻止整个系统或者整个软件不能正常工作的信息 alert 6 –需要立刻修改的信息 emerg 7 –内核崩溃等严重信息 none 8 –什么都不记录 从上到下,级别从低到高,记录的信息越来越少 执行脚本:: local3.* ^/tmp/a.sh # ^号后跟可执行脚本或程序的绝对路径 # 日志内容可以作为脚本的第一个参数. # 可用来触发报警 转发到远程:: *.* @192.168.0.1 # 使用UDP协议转发到192.168.0.1的514(默认)端口 *.* @@192.168.0.1:514 # 使用TCP协议转发到192.168.0.1的10514端口 忽略,丢弃:: local3.* ~ # 忽略所有local3类型的所有级别的日志 过滤特定的日志到文件, 忽略(丢弃)包含某个字符串的日志 ====================================================================== # 过滤日志, 由:号开头 :msg, contains, “error” /var/log/error.log :msg, contains, “error” ~ # 忽略包含error的日志 :msg, contains, “user nagios” ~ :msg, contains, “user kadefor” ~ :msg, contains, “module-alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write” ~ local3.* ~ PS. & ~ ### 忽略所有的日志 $ModLoad imfile #装载imfile模块 $InputFileName /data2/logs/ssologs.log #读取日志文件 $InputFileTag login.sina.com.cn: #日志写入日志附加标签字符串 $InputFileFacility local5 #日志类型 $InputFileSeverity info #日志等级 $InputFileStateFile ssologs.log_state #定义记录偏移量数据文件名 $InputFilePollInterval 1 #检查日志文件间隔(秒) $InputFilePersistStateInterval 1 #回写偏移量数据到文件间隔时间(秒) $InputRunFileMonitor #激活读取,可以设置多组日志读取,每组结束时设置本参数。以示生效。 #接收队列 $WorkDirectory /data2/logs/ #定义工作目录。例如队列文件存储存储文件夹。 $MainMsgQueueType LinkedList #选择使用内存队列模式。 $MainMsgQueueFileName local5.main #如果队列模式使用内存模式,同时在配置这个参数,意味激活磁盘附加队列。 $MainMsgQueueHighWatermark 10000 #当内存队列达到这些元素时,开始回写磁盘。 $MainMsgQueueLowWatermark 1000 #当内存队列小于这些元素时,停止回写磁盘。 $MainMsgQueueMaxDiskSpace 20g #限制磁盘队列大小,参数疑似20GByte。 $MainMsgQueueMaxFileSize 200m #队列单文件尺寸大小。 $MainMsgQueueSaveOnShutdown on #在rsyslogd关闭时,要保存队列中数据。 $MainMsgQueueDiscardSeverity 8 #丢弃消息等级设定,数字越低丟的越多,设置8代表禁止丢弃消息。 $MainMsgQueueDiscardMark 1000000000 #超出10亿后,会禁止新消息入队,丢弃消息。如果前一个被禁止, #那么丢弃数据将无针对性,如果 $MainMsgQueueTimeoutEnqueue 3000 #超时3秒,TCP或local_socket方式下,预防资源夯住,引起崩溃。 $MainMsgQueueDequeueBatchSize 500 #优化带宽,设置每批次传输元素量,尽可能每次传输更多的数据。 #发送队列(可以部署多个) $ActionForwardDefaultTemplate RSYSLOG_ForwardFormat #定义转发消息格式模板,使用系统默认转发格式。 $WorkDirectory /data2/logs/ #定义工作目录。例如队列文件存储存储文件夹。 $ActionQueueType LinkedList #选择使用内存队列模式。 $ActionQueueFileName local5.forward #如果队列模式使用内存模式,同时在配置这个参数,意味激活磁盘附加队列。 $ActionQueueHighWatermark 10000 #当内存队列达到这些元素时,开始回写磁盘。 $ActionQueueLowWatermark 1000 #当内存队列小于这些元素时,停止回写磁盘。 $ActionQueueMaxDiskSpace 20g #限制磁盘队列大小,参数疑似20GByte。 $ActionQueueMaxFileSize 200m #队列单文件尺寸大小。 $ActionResumeRetryCount -1 #失败后重试次数,-1 代表无限。 $ActionQueueSaveOnShutdown on #在rsyslogd关闭时,要保存队列中数据。 $ActionQueueDiscardSeverity 8 #丢弃消息等级设定,数字越低丟的越多,设置8代表禁止丢弃消息。 $ActionQueueDiscardMark 1000000000 #超出10亿后,会禁止新消息入队,丢弃消息。如果前一个被禁止, #那么丢弃数据将无针对性,如果 $ActionQueueTimeoutEnqueue 3000 #超时3秒,TCP或local_socket方式下,预防资源夯住,引起崩溃。 $ActionQueueDequeueBatchSize 500 #优化带宽,设置每批次传输元素量,尽可能每次传输更多的数据。 local5.* @@192.168.1.100;RSYSLOG_ForwardFormat #发送local5类型数据,以系统默认格式转发到目标服务器。 :rawmsg, contains, “access_log” ?DynFile;logformat # 把rawmsg(也可以使用msg)日志中包含sdns_log标志的信息写到DynFile定义的日志文件里 :rawmsg, contains, “access_log” ~ # 这个表示丢弃包含sdns_log标志的信息, 一般都加上它, 以免多个日志文件记录重复的日志 实例 单一日志文件: 日志服务器配置: $EscapeControlCharactersOnReceive off $ActionForwardDefaultTemplate RSYSLOG_ForwardFormat $template RemoteLogs,"/rsyslog/nginx_1/nginx_access_log.%$year%-%$month%-%$day%" local5.* ?RemoteLogs 客户端配置: $ModLoad imfile $InputFileName /usr/local/nginx/logs/nginx_access.log $InputFileTag nginx_1: $InputFileStateFile /nginx/pianyi.log $InputFileSeverity info $InputFileFacility local5 $InputRunFileMonitor $InputFilePollInterval 1 $InputFilePersistStateInterval 1 $ActionQueueSaveOnShutdown on local5.* @@192.168.204.150 多个日志文件: 客户端: /etc/rsyslog.conf: local5.* @@192.168.204.150 web1.cof: $ModLoad imfile $InputFileName /usr/local/nginx/logs/web1/web1_access.log $InputFileTag nginx_1: $InputFileStateFile /nginx/pianyi1.log $InputFileSeverity info $InputFileFacility local5 $InputRunFileMonitor $InputFilePollInterval 1 $InputFilePersistStateInterval 1 $ActionQueueSaveOnShutdown on web0.conf $ModLoad imfile $InputFileName /usr/local/nginx/logs/web/web_access.log $InputFileTag nginx_0: $InputFileStateFile /nginx/pianyi.log $InputFileSeverity info $InputFileFacility local5 $InputRunFileMonitor $InputFilePollInterval 1 $InputFilePersistStateInterval 1 $ActionQueueSaveOnShutdown on 服务器端; [root@Nginx2 rsyslog]# cat /etc/rsyslog.d/nginx.conf $EscapeControlCharactersOnReceive off $ActionForwardDefaultTemplate RSYSLOG_ForwardFormat $template RemoteLogs_ngx0,"/rsyslog/nginx_0/nginx0_access_log.%$year%-%$month%-%$day%" :rawmsg,contains,"nginx_0:" ?RemoteLogs_ngx0 :rawmsg,contains,"nginx_0" ~ $template RemoteLogs_ngx1,"/rsyslog/nginx_1/nginx1_access_log.%$year%-%$month%-%$day%" :rawmsg,contains,"nginx_1:" ?RemoteLogs_ngx1 :rawmsg,contains,"nginx_1" ~ /etc/rsyslog.conf: $ModLoad imuxsock $ModLoad imklog $ModLoad immark # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |