日志收集案例

一. 前期准备

实验目标: 将3台Web Server的apache日志自动下载到本地Local主机进行存储,供今后做事件分析使用。

背景:

1). 运行apache主机共有Linux-1、Linux-2、Linux-3共3台安装有Cent OS Linux 6系统的服务器

2). 本地工作站系统为CentOS Linux 6

3). apache日志自动打包,并采用ssh安全协议将打包好的日志下载到本地系统保存。

实验拓扑

主机名

IP地址

功能

Linux-1

192.168.150.10

WebServer

Linux-2

192.168.150.11

WebServer

Linux-3

192.168.150.12

WebServer

Local

192.168.150.100

保存日志

1. 配置Local主机和三台WebServer之间ssh连接,以便实现直接登录

1.1 编辑Local主机的的hosts文件增加3条内容

           192.168.150.10            Linux-1

           192.168.150.11            Linux-2

           192.168.150.12            Linux-3

1.2 生成ssh客户密匙

           #ssh-keygen -t rsa

           接着屏幕显示,为生成公匙密匙文件和等,全部回车即可

1.3 当客户SSH密钥生成后,将本地的id_rsa.pub复制到远程的./ssh目录下,并更改名称为authorized_keys2

            sftp root@Linux-1

            sftp Linux-1

            Connecting to Linux-1

            root@Linux-1's password: (输入密码)

            sftp>

            sftp>cd .ssh

            sftp>put id_rsa.pub  authorized_keys2

            Uploading id_rsa.pub to /.ssh/authorized_keys2

 1.4 测试配置

            #scp Linux-1:/usr/local/apache2/logs/access.log  /root/

复制远程的access.log文件到本地的/root/.ssh目录下,这时就无需输入密码,准备工作就做好了。

2. 配置三台Linux-1、Linux-2、Linux-3主机,以实现每天自动切换日志文件,在配置文件httpd.conf中加入下面两句,需要注意的是如果有虚拟主机还需加到虚拟主机的配置里面,否则不生效。

CustomLog "|/bin/rotatelogs -l /var/log/apache/logs/access-%Y-%m-%d.log 86400" common

3.在本地主机上的root目录下录入以下脚本autolog.sh,并事先建立/logsbackup目录

#vi autolog.sh

#!/bin/bash

#  步骤一:基本参数设定,添加默认网关

Dest_dir=/logsbackup

Sour_dir=/var/log/apache/logs/

LogFile=access_log

Host_table="Linux-1 Linux-2 Linux-3"

Date=`date +%Y%m%d -d '-1 day'`

GateWay=192.168.150.1

echo Beginning:`date +'%Y/%m/%d %H:%M'`

route add default gw $GateWay

#  第二步压缩日志文件

for loop in $Host_table

  do

    ssh $loop "gzip $Sour_dir/$LogFile.$Date " && echo $loop : compress apache log file complete.

  done

#  第三部从WEB服务器上下载

for loop in $Host_table

  do

    scp $loop:$Sour_dir/$LogFile.$Date.gz $Dest_dir/$loop && echo $loop : download apache log file complete.

  done

#  第四步 压缩下载到的日志文件

for  loop in $Host_table

  do

    gzip -df $Dest_dir/$loop/$LogFile.$Date.gz

    cat   $Dest_dir/$loop/$LogFile.$Date > $Dest_dir/$loop/$LogFile && echo $loop : log files Ready now.

  done

route delete default gw $GateWay

echo End:`date +'%Y/%m/%d %H:%M'`

4.在Local主机上面部署cron任务自动执行

 15 8 * * * /tools/autolog.sh >> /root/ssh_log 2>&1

5.效果

#cat ssh_log

Beginning:2013/12/06 08:15

Linux-1 : compress apache log file complete.

Linux-2 : compress apache log file complete.

Linux-3 : compress apache log file complete.

Linux-1 : download apache log file complete.

Linux-2 : download apache log file complete.

Linux-3 : download apache log file complete.

Linux-1 : log files Ready now.

Linux-2 : log files Ready now.

Linux-3 : log files Ready now.

End:2013/12/06 08:50

标签: 无
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论