LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2238|回复: 16

系统日志,本机记录问题

[复制链接]
发表于 2006-2-22 15:08:26 | 显示全部楼层 |阅读模式
rhel4建立了syslog-ng做日志服务器,syslog-ng配置让所有传输过来的日志信息全部写入到mysql中,然后通过php读取。

现在所有网络设备和服务器传输到本机记录是没有问题的。问题是本机的log只能显示在/var/log/messages中不能够写入到mysql。有没有用过syslog-ng的朋友给提个醒吧。

/etc/syslog.conf
[root@db ~]# cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
*.info;mail.none;authpriv.none;cron.none               @2xx.x.x.xx

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
authpriv.*                                             @2xx.xx.x.xx
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
local7.*                                                @2xx.xx.x.xx
 楼主| 发表于 2006-2-22 15:15:35 | 显示全部楼层
现在郁闷的我只能找了一个折中的办法,每天定时从/var/log/messages中分离出本机的日志,然后按照日志类型保存,但是查询起来不方便还要登陆才成。

#!/bin/bash
cd /data1
m=`date +%b`;
d=`date +%d`;
n=`date +%F`;
mkdir -p /data1/logback/$n;
cat /var/log/messages |grep db |grep $m |grep $d > /data1/logback/$n/nowdate.log;
cat /data1/logback/$n/nowdate.log | grep crond > /data1/logback/$n/crond.log
cat /data1/logback/$n/nowdate.log | grep kernel > /data1/logback/$n/kernel.log
cat /data1/logback/$n/nowdate.log | grep named|grep -v crond > /data1/logback/$n/named.log
cat /data1/logback/$n/nowdate.log | grep sshd > /data1/logback/$n/sshd.log
cat /data1/logback/$n/nowdate.log | grep -v crond |grep -v kernel |grep -v named|grep -v sshd |grep -v unix_chkpwd > /data1/logback/$n/others.log
echo  local-log backup ok!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-22 15:15:37 | 显示全部楼层
现在郁闷的我只能找了一个折中的办法,每天定时从/var/log/messages中分离出本机的日志,然后按照日志类型保存,但是查询起来不方便还要登陆才成。

#!/bin/bash
cd /data1
m=`date +%b`;
d=`date +%d`;
n=`date +%F`;
mkdir -p /data1/logback/$n;
cat /var/log/messages |grep db |grep $m |grep $d > /data1/logback/$n/nowdate.log;
cat /data1/logback/$n/nowdate.log | grep crond > /data1/logback/$n/crond.log
cat /data1/logback/$n/nowdate.log | grep kernel > /data1/logback/$n/kernel.log
cat /data1/logback/$n/nowdate.log | grep named|grep -v crond > /data1/logback/$n/named.log
cat /data1/logback/$n/nowdate.log | grep sshd > /data1/logback/$n/sshd.log
cat /data1/logback/$n/nowdate.log | grep -v crond |grep -v kernel |grep -v named|grep -v sshd |grep -v unix_chkpwd > /data1/logback/$n/others.log
echo  local-log backup ok!
回复 支持 反对

使用道具 举报

发表于 2006-2-22 18:50:27 | 显示全部楼层
syslog 不提供这个功能。。。。。都改成 syslog-ng 好了:)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-22 21:15:09 | 显示全部楼层
Post by 终极幻想
syslog 不提供这个功能。。。。。都改成 syslog-ng 好了:)。



这怎么说??? 不明白。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-23 03:03:16 | 显示全部楼层
你本机用的是 syslog,不是syslog-ng,是不是?

syslog 不支持你所要的功能,syslog-ng则可以。。

(还是我对你的问题理解有误?)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 09:05:44 | 显示全部楼层
远程全都可以写入到日志服务器里头,日志虽然是存储到mysql中,但是先写入/var/log/messages.然后通过syslog-ng写入数据库。

我本机两种都在启用,但是现在只是往syslogd指派的/var/log/下面写日志,就是不清楚本机该如何设置让他同时也往syslog-ng里头写
回复 支持 反对

使用道具 举报

发表于 2006-2-23 09:20:08 | 显示全部楼层
authpriv.* /var/log/secure
authpriv.* @2xx.xx.x.xx

但是先写入/var/log/messages.然后通过syslog-ng写入数据库。

你是指这个意思么?先写入,再通过ng写入数据库?

如果是的话,那么你的理解上有点错误。这2个是同时发生的,没有谁先谁后的概念。

至于你本机,用的是 sysklogd,不是syslog-ng。你最后说的 syslog-ng 是指哪里的 syslog-ng 呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 10:28:58 | 显示全部楼层
这个是在别的机器上的设置,是可以做到往本机log记录的同时写入到远程主机的。
我想如果在本机也这样可以不,结果是否定的。
authpriv.* /var/log/secure
authpriv.* @2xx.xx.x.xx
本机是指那台做log日志记录的机器。 现在更有意思,昨天还能在/var/log/messages里看到别的机器写进来的日志和本机日志,今天一点都不往里头写了,只往mysql写入。

解决办法更有意思,把别的机器上的syslog.conf 拷贝替换了之后从新起/etc/init.d/syslog 之后log服务器本机日志就又能记录了,这时候syslog-ng就不记录了。原来是这样。。 可是怎么能让syslog-ng记录log服务器本身的日志呢?
回复 支持 反对

使用道具 举报

发表于 2006-2-23 12:25:59 | 显示全部楼层
不不会是 syslog 和 syslog-ng 一起用吧?。。。。这样会抢信息的。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表