首页 > 代码库 > Rsyslog日志服务安装配置

Rsyslog日志服务安装配置

rsyslog服务端配置  centos6.4 x64系统  系统自带rsyslog 5.8版本

rsyslog 是一个 syslogd 的多线程增强版。

现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了

rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件

###################################

#首先部署好lamp环境,详情见lamp安装文档

#更新系统时间   rsyslog-mysql是rsyslog把日志传送到mysql的一个模块

yum install ntp  rsyslog-mysql -y

ntpdate cn.pool.ntp.org


#编辑配置文件 

vim /etc/rsyslog.conf   取消下列三行的注释,并添加加载mysql模块信息。

$ModLoad immark   # provides --MARK-- message capability 

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command) 

$ModLoad imklog   # kernel logging (formerly provided by rklogd) 

#####下面这2行是要添加的内容#####    123456是root用户登录mysql的密码

#加载mysql模块

$ModLoad ommysql 

#定义插入的数据内容_(insertpl) 模板名称

$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, FromIP, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (‘%msg%‘, %syslog

facility%, ‘%HOSTNAME%‘, ‘%fromhost-ip%‘, %syslogpriority%, ‘%timereported:::date-mysql%‘, ‘%timegenerated:::date-mysql%‘, %iut%, ‘%syslogtag%‘)",SQL


#如果日志内容包含下列括号中的内容, 则将日志写入到 /var/log/11.log 并退出,不继续后续操作

if $msg contains  ‘(root) CMD (/usr/lib64/sa/sa1 1 1)‘ then /var/log/11.log

&~

#将所有日志写入到数据库_以下*.*表示所有类型的日志,mysql模块-数据库服务器-数据库-数据库用户名-密码-模板 

*.*     :ommysql:localhost,Syslog,root,123456;insertpl

 

#去掉下面两行的注释,接受客户端的日志, 开启514端口

$ModLoad imudp.so  # provides UDP syslog reception 

$UDPServerRun 514 # start a UDP syslog server at standard port 514


 

#添加mysql root密码

 mysqladmin -u root password 123456 

#导入数据库

cd /usr/share/doc/rsyslog-mysql-5.8.10/

mysql -uroot -p <createDB.sql

#检查数据库是否有相应数据

mysql -uroot -p

USE Syslog;

select * from SystemEvents;

#如果有数据,则表示成功

#创建rsyslog用户访问Syslog

grant all privileges on Syslog.* to rsyslog@localhost identified by "123456"; 

flush privileges;

exit


 

#重启rsyslog服务 

service rsyslog restart

安装loganalyzer

##LogAnalyzer 是一个 syslog 和其他网络事件数据的 Web 前端工具,提供简单易用的日志浏览、搜索和基本分析以及图表显示。

下载源码包:

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz


tar zxvf loganalyzer-3.6.5.tar.gz

mkdir /var/www/html/syslog

cd /tmp/loganalyzer-3.6.5/src

cp -r * /var/www/html/syslog

cd /tmp/loganalyzer-3.6.5/contrib

cp * /var/www/html/syslog

cd /var/www/html/syslog

chmod +x *.sh

sh configure.sh && sh secure.sh

chmod 666 config.php

chown -R daemon.daemon * 

登录web安装,http://ip地址/syslog    或者  http://ip地址/syslog/src

1:选择Click here

2:Enable User Database选择Yes,如果选择no将没有管理页面

   点击NEXT时若报错,后台执行如下命令后继续

   ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

3:填写如下信息:Database Host:localhost

                 Database Port:3306

                 Database Name:Syslog 

                 prefix:logcon_ 

                 Database User:root 

                 Database Password:123456

                 Require user to be logged in 选择yes

4:选择next   设置登录用户名和密码

    root   123456           

5:next          Source type:       MYSQL Native

                 Select View:       Syslog Fields 

                 Database Name:     Syslog

                 Database Tablename:SystemEvents

                 Database User:     root

                 Database Password: 123456 

 next

 finish   ############完成安装配置 

 

 

################  Linux客户端部署

1. vi /etc/rsyslog.conf

2. 在最后面添加:*.* @192.168.10.250 

3. 保存退出,重启syslog服务 

4. service syslog restart   

5. 此时在服务器上就可以看到相关服务器的日志信息了                          


#修改LogAnalyzer 设定

###删除LogAnalyzer 初始化安装文件

###删除安装档install.php,或者设置该文件权限为只读

rm -rf install.php

###关闭分析页面中赞助信息

vi /var/www/html/syslog/include/functions_common.php

###将下行改为false 

$content[‘SHOW_DONATEBUTTON‘] = false; // Default = true!

###更换分析页面首页图标Logo 

1.  首先将准备好的logo 放至images/main目录下。 

2.  编辑include/functions_common.php 

3.  修改如下路径: 

    $content[‘EXTRA_PHPLOGCON_LOGO‘] = $content[‘BASEPATH‘] . 

     "images/main/Header-Logo.png"; 

     

###############  windows客户端部署

下载evtsys 64位

http://eventlog-to-syslog.googlecode.com/files/Evtsys_4.4.3_64-Bit.zip

打开文件双击运行 evtsys.exe,生成cfg配置文件

把所有文件复制C:\Windows\System32下

#开启evtsys服务

运行- cmd

cd c:\windows\system32 

evtsys -i -s 10 -h 192.168.6.185 -p 514

net start evtsys

#查看服务器端验证效果

192.168.6.185/syslog

#rsyslog接收windows日志出现乱码

登录web界面,点击admin center 选择 Preferences

Default character encoding  改为UTF-8 即可

 

 

 

 #######################################################

                  iptables策略

修改 iptables ,增加udp541端口出入,防止被人恶意破坏

服务端需添加rsyslog UDP 514端口以及loganalyzer TCP 80端口通过规则

iptables -A INPUT -p udp --dport 514 -j ACCEPT

iptables -P OUTPUT ACCEPT

iptables -A INPUT -p TCP --dport 80 -j ACCEPT

客户端只需添加OUTPUT通过规则

iptables -P OUTPUT ACCEPT

rsyslog server端为被动获取数据,client端为主动发送数据


#######################################################

                  logrotate管理日志配置


logrotate 程序是一个日志文件管理工具。用来把旧的日志文件更名或删除,并创建新的日志文件,我们把它叫做“转储”。

centos下logrotate配置文件路径:/etc/logrotate.conf

/etc/logrotate.d/ 下面放置自定义的一些配置文件

下面是redhat的logrotate.conf的具体内容

# see "man logrotate" for details

# rotate log files weekly

weekly

#每周rotate一次

# keep 4 weeks worth of backlogs

rotate 4

#保留前四周的log备份

# create new (empty) log files after rotating old ones

create

# use date as a suffix of the rotated file

dateext

使用轮换的日期为后缀

#建立新的log文件

# uncomment this if you want your log files compressed

#compress

#是否压缩log文件,需要压缩就去掉“#”符

# RPM packages drop log rotation information into this directory

include /etc/logrotate.d

#将/etc/logrotate.d目录下的文件读来执行rotate

# no packages own wtmp -- we‘ll rotate them here

/var/log/messages {

monthly

create 0664 root root

rotate 1

}

#上面一段时单对messages文件的rotate的配置

#每月rotate一次

#建新的log文件,权限设定为0664,文件拥有者root,群组为root

#保留前一个月的log备份

#也可以根据自己需求参照上面的配置来需要rotate的日志。


参数 功能

compress 通过gzip 压缩转储以后的日志

nocompress 不需要压缩时,用这个参数

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断

nocopytruncate 备份日志文件但是不截断

create mode owner group 转储文件,使用指定的文件模式创建新的日志文件

nocreate 不建立新的日志文件

delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩

nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。

errors address 专储时的错误信息发送到指定的Email 地址

ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。

notifempty 如果是空文件的话,不转储

mail address 把转储的日志文件发送到指定的E-mail 地址

nomail 转储时不发送日志文件

olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir 转储后的日志文件和当前日志文件放在同一个目录下

prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行

postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

daily 指定转储周期为每天

weekly 指定转储周期为每周

monthly 指定转储周期为每月

rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~

size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).

logrotate命令

logrotate [-vf] logfile

-v 显示模式

-f 强制执行rotate

范例:

logrotate -vf /etc/logrotate.conf


本文出自 “谦哥的博客” 博客,请务必保留此出处http://vicdu.blog.51cto.com/4604557/1427293