概述
CentOS 6开始,日志服务由syslogd变成了rsyslogd,在配置rsyslogd前需要了解下系统日志的8个级别: 0 EMERG(紧急):可能导致系统不可用的情况 1 ALERT(警报):必须马上解决的问题 2 CRIT(严重错误):比较严重的情况 3 ERR(错误):运行出现错误 4 WARNING(警告):可能会影响系统功能的情况 5 NOTICE(注意):普通提示信息,不影响系统 6 INFO(普通信息):一般信息 7 DEBUG(调试):程序调试用
一、客户端配置
1、安装rsyslog [root@localhost ~]# rpm -qa | grep rsyslog rsyslog-7.4.7-12.el7.x86_64 [root@localhost ~]# yum install rsyslog [root@localhost ~]# vi /etc/rsyslog.conf *.* @192.168.1.106:514 注:日志默认使用udp协议,使用@@则使用tcp协议。 2、新建/var/spool/rsyslog目录 [root@localhost ~]# mkdir -v /var/spool/rsyslog 3、创建Apahce日志文件采集配置 新建rsyslog的子配置文件,他通常在/etc/rsyslog.d下,需要/etc/rsyslog.conf去包含这个目录下的子配置文件: 备注:不支持变量,刚开始apache日志文件名带每天的日期。想用变量获取当天日期,但是发现第二天依然获取的第一天的变量。所以更改apache设置,固定写入到access.log文件中,然后用logrotate进行分割。 [root@localhost ~]# vim /etc/rsyslog.d/apache-biglog.conf $ModLoad imfile $InputFilePollInterval 10 $WorkDirectory /var/spool/rsyslog $PrivDropToGroup adm ## Apache访问日志文件路径 $InputFileName /usr/local/apache/logs/access.log $InputFileTag apache-access $InputFileStateFile stat-apache-access $InputFileSeverity info $InputFilePersistStateInterval 25000 $InputRunFileMonitor ## Apache错误日志文件路径 $InputFileName /usr/local/apache/logs/error_log $InputFileTag apache-error $InputFileStateFile stat-apache-error $InputFileSeverity error $InputFilePersistStateInterval 25000 $InputRunFileMonitor ## 指定日志格式模板: $template BiglogFormatApache,"%msg%n" ## 注意rsyslog日志服务器接收地址: if $programname == 'apache-access' then @192.168.1.106:514;BiglogFormatApache if $programname == 'apache-access' then ~ if $programname == 'apache-error' then @192.168.1.106:514;BiglogFormatApache if $programname == 'apache-error' then ~ apache日志设置如下: [root@localhost rsyslog]# cat /etc/httpd/httpd.conf | egrep "Custom|ErrorLog" | grep -v "#" ErrorLog "/usr/local/apache/logs/error_log" CustomLog /usr/local/apache/logs/access.log combined 备注:可以过滤掉特定的日志到文件 4、重启rsyslog服务,日志采集开始工作 [root@localhost ~]# systemctl stop rsyslog [root@localhost ~]# systemctl start rsyslog
二、服务器配置
服务器端修改/etc/rsyslog.conf文件以及/etc/sysconfig/rsyslog文件。 1、修改/etc/rsyslog.conf [root@localhost ~]# vi /etc/rsyslog.conf #Provides UDPsyslog reception $ModLoad imudp $UDPServerRun514 #### GLOBAL DIRECTIVES #### #从远程客户端接收的日志写入到以它们IP命名的单个文件夹中 $template IpTemplate,"/var/log/%FROMHOST-IP%.log" *.* ?IpTemplate & ~ 以打开日志服务监听,输入netstat –lunp可见rsyslog监听于514端口(默认端口) 或者归类的更加详细 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $template DynamicFile,"/var/log/ttlogs/%$YEAR%/%$MONTH%/%$DAY%/%fromhost-ip%-test.log" *.* ?DynamicFile 2、修改/etc/sysconfig/rsyslog [root@localhost ~]# vi /etc/sysconfig/rsyslog #文件中,需修改 SYSLOGD_OPTIONS="-m240 -r" 其中-r表示接受外部日志的写入。 3、防火墙允许514端口,并重启防火墙,关闭selinux 4、重启日志服务 [root@localhost ~]# systemctl stop rsyslog.service #关闭日志服务 [root@localhost ~]# systemctl start rsyslog.service #开启日志服务 5、服务器端验证是否接收到日志,至于在服务端什么文件中,取决于服务端设置。
转载于:https://blog.51cto.com/net881004/2346979
最后
以上就是明理小熊猫为你收集整理的centos 7.2往rsyslog服务器端发送apache日志的全部内容,希望文章能够帮你解决centos 7.2往rsyslog服务器端发送apache日志所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复