博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Rsyslog记录Apache日志
阅读量:6429 次
发布时间:2019-06-23

本文共 3638 字,大约阅读时间需要 12 分钟。

原文:

 

把各种应用程序通过syslogd的机制,动态把重要日志写入远端日志服务器,优势是很明显的,主要表现在几个方面: 1 日志统一,集中式管理  2 日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。

 事实上,大部分的programe的日志记录总是使用标准的unix domain socket(/dev/log)来实现。这就使的和syslogd联合,并且利用syslogd的远程传送日志功能实现更加安全的远距离日志备份需求。
 本文主要描述把apache,squid日志写通过syslog写入远程日志服务器的配置过程。有兴趣的同学可以看看。
本文所涉及的软件环境:
客户端:
Syslog:rsyslog-relp-3.21.3-4.fc10
rsyslog-3.21.3-4.fc10 
Programe:httpd-2.2.9-1.fc8
squid-2.6.STABLE22-3941.8.fc8
服务器端:
Syslog:rsyslog-relp-3.21.3-4.fc10
rsyslog-3.21.3-4.fc10
日志系统架构图:

apache,squid和syslog的联动配置简介
这里主要描述本地客户端的配置内容:
 1 首先是配置apache文件,只显示文章话题相关的配置内容:
###/etc/http/conf/httpd.conf
#ErrorLog logs/error_log
ErrorLog syslog     <-----修改配置表示对errorlog启用syslog
#LogLevel warn
LogLevel notice     <-----notice以上的log全部记录,默认的facility是
local7
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -p local4.info" combined     <-----access_log全部通过管道写入syslog,并且log的facility配置为local4。
rsyslog的配置如下:
# Load output RELP module
$ModLoad omrelp        <---由于采用的是relp协议传送给远端日志服务器,所以需要导入omrelp模块
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local4.none;local7.none    /var/log/messages      <--local4 以及local7日志不写入 /var/log/message,有后面专门的写入文件
# Save local7  to a file
local7.*              /var/log/apache_error_log
# Save local4 to a file
local4.*              /var/log/apache_access_log
# Send local7 to remote syslog
local7.*                :omrelp:syslog.chou.com:2514
<----local7(也就是apache的error_log)除了本地保存一份之外,还通过relp协议送给远端的服务器syslog.chou.com,远端服务器的侦听端口是2514
# Send authentification messages to remote syslog
auth,authpriv.*         :omrelp:syslog.chou.com:2514
  <---服务器的认证信息,属于重要的安全信息,通过relp协议送给远端的服务器syslog.chou.com,远端服务器的侦听端口是2514
重启rsyslog和apache之后,正常情况下应该在远端很本地服务器上看到如下信息:
[root@remote_machine root]# tail -f /var/log/apache_error_log
Oct 6 20:30:53 xxx.xxx httpd[1837]: [notice] Digest: generating secret for digest authentication ...
Oct 6 20:30:53  xxx.xxx  httpd[1837]: [notice] Digest: done
Oct 6 20:30:54  xxx.xxx  httpd[1837]: [notice] Apache/2.2.9 (Unix) DAV/2
PHP/5.2.3 configured -- resuming normal operations
[root@localhost root]# tail -f /var/log/apache_error_log
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: generating secret for digest authentication ...
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: done
Oct 6 20:30:54 localhost httpd[1837]: [notice] Apache/2.2.9 (Unix) DAV/2
PHP/5.2.3 configured -- resuming normal operation 
2 关于squid的客户端服务器配置如下
####/etc/squid/squid.conf的追加配置如下
access_log syslog:local7.* squid   <---配置squid的访问日志启用syslog,并且定义facility为local7,输出所有级别日志 
rsyslog的配置内容是:(etc/rsyslog.conf)
# Load output RELP module
$ModLoad omrelp        <---由于采用的是relp协议传送给远端日志服务器,所以需要导入omrelp模块
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local7.none    /var/log/messages      <--local7日志不写入 /var/log/message,有后面专门的写入文件
# Save local7  to a file
local7.*              /var/log/squid_access_log
# Send local7 to remote syslog
local7.*                :omrelp:syslog.chou.com:2514
 <----local7(也就是apache的error_log)除了本地保存一份之外,还通过relp协议送给远端的服务器syslog.chou.com,远端服务器的侦听端口是2514
# Send authentification messages to remote syslog
auth,authpriv.*         :omrelp:syslog.chou.com:2514
  <---服务器的认证信息,属于重要的安全信息,通过relp协议送给远端的服务器syslog.chou.com,远端服务器的侦听端口是2514

 

参考:

 

*.warn;authpriv.notice;auth.notice @@192.168.18.5 #@@TCP/@UDP

  致命级(KERN_EMESG), 

  警戒级(KERN_ALERT), 

  临界级(KERN_CRIT),

  错误级(KERN_ERR), 

  告警级(KERN_WARN), 

  注意级(KERN_NOTICE), 

  通知级(KERN_INFO),

  调试级(KERN_DEBUG).

本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1091743,如需转载请自行联系原作者

你可能感兴趣的文章
Mongodb学习笔记三(Mongodb索引操作及性能测试)
查看>>
easyui 学习链接
查看>>
大一下学期的自我目标
查看>>
swift之函数式编程(三)
查看>>
CentOS7 win7 u盘装双系统 修复系统
查看>>
鉴别淘宝是否是刷出来的单
查看>>
构建之法阅读之总结
查看>>
html分页查询实现案例
查看>>
zoj 3859 DoIt is Being Flooded (MFSet && Flood Fill)
查看>>
eclipse安装svn
查看>>
[Poi2014]Couriers
查看>>
编程之美 题目2 : 大神与三位小伙伴
查看>>
Google 开源项目风格指南
查看>>
获取Iframe页面高度并赋值给Iframe以及获取iframe里的元素
查看>>
C#中如何获得两个日期之间的天数差
查看>>
树形控件
查看>>
前序和中序转换成二叉树
查看>>
ios数据存储——数据库:SQlite3以及第三方库FMDB
查看>>
Python-ORM实战
查看>>
vector iterators incompatible 删除map,list中元素时,应注意的问题
查看>>