linux系统日志远程备份策略
2014-10-29 17:11
381 查看
日志收集案例
一. 前期准备
实验目标: 将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安全协议将打包好的日志下载到本地系统保存。
实验拓扑
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
一. 前期准备
实验目标: 将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
相关文章推荐
- 【linux系统备份】策略
- 远程控制-备份策略-系统故障排除
- Linux 配置远程备份日志
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- Linux: 系统设置与备份策略
- linux系统日志远程备份策略
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- Linux 增量系统备份和部分还原策略
- Linux: 系统设置与备份策略
- Linux系统日志记录到远程服务器简单配置
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第25章 Linux 备份策略
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- logrotate linux 系统日志备份压缩工具
- [置顶] logrotate linux 系统日志备份压缩工具
- Mac使用ssh登录远程linux系统查看jetty日志及同时使用github工具
- 天下数据详解Linux系统备份策略
- Linux系统使用logrotate进行日志备份
- linux上mysql日志备份脚本并远程上传至windows ftp服务器
- [转载]Linux系统下超强远程同步备份工具Rsync使用详解