认识与分析日志文件
什么是日志文件
日志文件的权限通常是设置为仅有 root 能够读取而已
/var/log/cron
/var/log/dmesg
/var/log/lastlog
/var/log/maillog 或 /var/log/mail/*
/var/log/messages
/var/log/secure
/var/log/wtmp,/var/log/faillong
/var/log/httpd/*,/var/log/news/*,/var/log/samba/*
针对日志文件所需的功能,我们需要的服务与程序有:
syslogd: 主要登录系统与网络等服务的信息
klogd: 主要登录内核产生的各项信息
logrotate: 主要进行日志文件的轮替功能
syslogd: 记录日志文件的服务
px aux | grep syslog
chkconfig --list syslog
日志文件内容的一般格式:
1.事件发生的日期与时间
2.发生此事件的主机名
3.启动此事件的服务名称 (如 samba,xinetd 等) 或函数名称 (如 libpam)
4.该信息的实际数据内容
cat /var/log/secure
syslog 的配置文件: /etc/syslog.conf
这个文件规定了什么服务的什么等级信息以及需要被记录在哪里 (设备或文件)
这三个东西,所以设置的语法会是这样:
服务名称[.=!]信息等级 信息记录的文件名或设备或主机
mail.info /var/log/maillog
mail.*;cron.* /var/log/cronnews
mail.=warn;cron.=warn /var/log/cronnews.warn
*.*;news,cron,mail.none /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
*.info /var/log/admin.log
/etc/init.d/syslog restart
ll /var/log/admin.log
日志文件的安全性设置
chattr +a /var/log/messages
lsattr /var/log/messages
-----a------- /var/log/messages
chattr -a /var/log/messages
日志文件服务器的设置
vim /etc/sysconfig/syslog (1.server端:修改 syslog 的启动配置文件,通常在 /etc/sysconfig 内)
# SYSLOGD_OPTIONS="-m 0"
# SYSLOGD_OPTIONS="-m 0 -r"
/etc/init.d/syslog restart (重新启动与查看 syslogd)
netstat -lunp | grep syslog
vim /etc/syslog.conf
*.* @192.168.1.100
日志文件的轮替 (logrotate)
logrotate 的配置文件
/etc/logrotate.conf
/etc/logrotate.d/
vim /etc/logrotate.conf
weekly
rotate 4
create
#compress
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
vim /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler
/var/log/boot.log /var/log/cron {
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/chattr +a /var/log/message
endscript
}
实际测试 logrotate 的操作
logrotate [-vf] logfile
-v 启动显示模式,会显示 logrotate 运行的过程
-f 不论是否符合配置文件的数据,强制每个日志文件都进行 rotate 的操作
logrotate -v /etc/logrotate.conf
logrotate -vf /etc/logrotate.conf
ll /var/log/messages*;lsattr /var/log/messages
自定义日志文件的轮替功能
chattr +a /var/log/admin.log
lsattr /var/log/admin.log
mv /var/log/admin.log /var/log/admin.log.1
vim /etc/logrotate.d/admin
/var/log/admin.log {
monthly
size=10M
rotate 5
compress
sharedscripts
prerotate
/usr/bin/chattr -a /var/logadmin.log
endscript
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
/usr/bin/chattr +a /var/log/admin.log
endscript
}
logrotate -v /etc/logrotate.conf
logrotate -vf /etc/logrotate.d/admin
lsattr /var/log/admin.log*
分析日志文件
logwatch 会每天分析一次日志文件,并且将数据以 email 的格式寄送给 root
自己的分析工具
mkdir /usr/local/virus
tar -zxvf logfile-0.1-4-2.tgz -C /user/local/virus
cd /usr/local/virus/logfile
vim logfile.sh
bash logfile.sh
vim /etc/crontab
mail
什么是日志文件
日志文件的权限通常是设置为仅有 root 能够读取而已
/var/log/cron
/var/log/dmesg
/var/log/lastlog
/var/log/maillog 或 /var/log/mail/*
/var/log/messages
/var/log/secure
/var/log/wtmp,/var/log/faillong
/var/log/httpd/*,/var/log/news/*,/var/log/samba/*
针对日志文件所需的功能,我们需要的服务与程序有:
syslogd: 主要登录系统与网络等服务的信息
klogd: 主要登录内核产生的各项信息
logrotate: 主要进行日志文件的轮替功能
syslogd: 记录日志文件的服务
px aux | grep syslog
chkconfig --list syslog
日志文件内容的一般格式:
1.事件发生的日期与时间
2.发生此事件的主机名
3.启动此事件的服务名称 (如 samba,xinetd 等) 或函数名称 (如 libpam)
4.该信息的实际数据内容
cat /var/log/secure
syslog 的配置文件: /etc/syslog.conf
这个文件规定了什么服务的什么等级信息以及需要被记录在哪里 (设备或文件)
这三个东西,所以设置的语法会是这样:
服务名称[.=!]信息等级 信息记录的文件名或设备或主机
mail.info /var/log/maillog
mail.*;cron.* /var/log/cronnews
mail.=warn;cron.=warn /var/log/cronnews.warn
*.*;news,cron,mail.none /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
*.info /var/log/admin.log
/etc/init.d/syslog restart
ll /var/log/admin.log
日志文件的安全性设置
chattr +a /var/log/messages
lsattr /var/log/messages
-----a------- /var/log/messages
chattr -a /var/log/messages
日志文件服务器的设置
vim /etc/sysconfig/syslog (1.server端:修改 syslog 的启动配置文件,通常在 /etc/sysconfig 内)
# SYSLOGD_OPTIONS="-m 0"
# SYSLOGD_OPTIONS="-m 0 -r"
/etc/init.d/syslog restart (重新启动与查看 syslogd)
netstat -lunp | grep syslog
vim /etc/syslog.conf
*.* @192.168.1.100
日志文件的轮替 (logrotate)
logrotate 的配置文件
/etc/logrotate.conf
/etc/logrotate.d/
vim /etc/logrotate.conf
weekly
rotate 4
create
#compress
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
vim /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler
/var/log/boot.log /var/log/cron {
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/chattr +a /var/log/message
endscript
}
实际测试 logrotate 的操作
logrotate [-vf] logfile
-v 启动显示模式,会显示 logrotate 运行的过程
-f 不论是否符合配置文件的数据,强制每个日志文件都进行 rotate 的操作
logrotate -v /etc/logrotate.conf
logrotate -vf /etc/logrotate.conf
ll /var/log/messages*;lsattr /var/log/messages
自定义日志文件的轮替功能
chattr +a /var/log/admin.log
lsattr /var/log/admin.log
mv /var/log/admin.log /var/log/admin.log.1
vim /etc/logrotate.d/admin
/var/log/admin.log {
monthly
size=10M
rotate 5
compress
sharedscripts
prerotate
/usr/bin/chattr -a /var/logadmin.log
endscript
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
/usr/bin/chattr +a /var/log/admin.log
endscript
}
logrotate -v /etc/logrotate.conf
logrotate -vf /etc/logrotate.d/admin
lsattr /var/log/admin.log*
分析日志文件
logwatch 会每天分析一次日志文件,并且将数据以 email 的格式寄送给 root
自己的分析工具
mkdir /usr/local/virus
tar -zxvf logfile-0.1-4-2.tgz -C /user/local/virus
cd /usr/local/virus/logfile
vim logfile.sh
bash logfile.sh
vim /etc/crontab