集中日志服务器Rsyslog配置


基于主机的管理一般需要收集服务器的日志信息用于及时发现错误,处理故障。


搭建linux下的集中日志服务器的程序一般可以用syslog,rsyslog,syslog-ng,还有scribe和fluentd等。


基本每一种方式都是服务器端和客户端的模式。


一般syslog,syslog-ng,rsyslog用于收集系统日志,scribe和fluentd用于收集业务日志,rsyslog和syslog-ng也可以收集业务日志,并可定制和过滤、筛选。


LogAnalyzer和LogZilla是分析系统日志,并用web界面展示的的工具,一般只用在syslog,syslog-ng,rsyslog日志系统中。


如下是基于Centos5的rsyslog+mysql+phplogcon的安装,安装前确认安装有EPEL源。


安装rsyslog以及rsyslog-mysql接口支持

yum install rsyslog rsyslog-mysql


安装数据库以及web程序

yum install mysql-server

yum install httpd php php-mysyql php-gd


#service mysqld status || service mysqld start


创建rsyslog写入数据需要的库文件,路径可能根据版本有所不同

mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql   创建数据库(确保一致/etc/rsyslog.conf and /path/top/phplogcon/config.php )

如果数据库输入root密码,会报错:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

这时需要这样输入:

mysql < ./createDB.sql -uroot -p

然后输入root密码即可


mysql> grant all on Syslog.* to syslog@localhost identified by 'mypass';   用户名 syslog,密码mypass

mysql> flush privileges ;


修改配置文件

vi /etc/rsyslog.conf

# Log to Mysql Settings

$ModLoad ommysql

*.* :ommysql:localhost,Syslog,syslog,mypass

{ 注:

localhost:数据库主机名

Syslog:数据库名

syslog:用户名

mypass:密码

}

#Standard Redhat syslog settings

*.info;mail.none;authpriv.none;cron.none /var/log/messages

authpriv.* /var/log/secure

mail.* -/var/log/maillog

cron.* /var/log/cron

*.emerg *

uucp,news.crit /var/log/spooler

local7.* /var/log/boot.log


启动rsyslog:

service syslog stop

service rsyslog start


如果有如下报错信息

Feb 23 23:43:30 mon rsyslogd:could not load module ‘/usr/lib/rsyslog/ommysql’, dlopen: /usr/lib/rsyslog/ommysql: cannot open shared object file: No such file or directory


请尝试软连接

fix fast with:

ln -s /usr/lib/rsyslog/ommysql.so /usr/lib/rsyslog/ommysql


开机启动rsyslog,并关闭syslog的开机启动:

chkconfig syslog off

chkconfig rsyslog on


开启接收远程信息:

edit /etc/sysconfig/rsyslog with option -r:

修改成:SYSLOGD_OPTIONS=”-c2 -r514 -x -m 240”

默认开启UDP 514端口,请确保防火墙没有阻止。


接收不到客户端消息,查看/var/log/message报错:

rsyslogd: Name or service not known

rsyslogd: UDP message reception disabled due to error logged in last message.

这是没有设置端口号,需要在/etc/sysconfig/rsyslog修改

RSYSLOGD_OPTIONS="-c2 -r514"


centos用完,又试了下debain下的服务端,也是接收不到消息,查看/var/log/syslog/发现服务启动时mysql出错,明明用户名是syslog,但是报错信息却是rsyslog@localhost,仔细一找,原来在/etc/syslog.d/下多出一个配置文件mysql.conf,修改里面的配置后错误信息没有了。但是还是没有客户端日志写入。添加RSYSLOGD_OPTIONS选项后一直报错,去掉此项后正常,看来不是这个选项问题。

最后抓包发现,客户端确实有信息发来,但是接收报错:

10:24:09.328491 IP 192.168.0.202.40297 > debian-ibm.syslog: SYSLOG authpriv.info, length: 87

10:24:09.328501 IP debian-ibm > 192.168.0.202: ICMP debian-ibm udp port syslog unreachable, length 123

客户端192.168.0.202确实发了udp消息到514端口,但是服务端端口没启动。

打开/etc/rsyslog.conf

发现有两行行是关于514端口的配置是注释的,取消注释后,通信成功。取消以下四行的注释:

# provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514


# provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514



以下是PHPLOGCON的安装

到网址下载最新版本,http://www.phplogcon.org/

新版本已更名为LogAnalyzer


安装如下方式安装

tar -zxvf phplogcon-2.8.1.tar.gz

cd phplogcon-2.8.1

mkdir /var/www/html/syslog

cp -a src/* /var/www/html/syslog

cd /var/www/html/syslog

chmod 666 config.php

#httpd    启动httpd


打开浏览器输入: http://yourserver/syslog/

按照提示操作

安装好后,请做如下操作,以防止被修改。

chmod 644 config.php


客户端发送日志


以Centos为例,不需要安装其他日志程序,直接修改/etc/syslog.conf,在最后一行下面加入:


/var/log/messages @rsyslog_IP

或者

*.*    @rsyslog_IP


保存,重启service syslog restart


查看phplogcon界面是否有客户端的日志出现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值