syslog日志服务
syslog日志的主要用途是系统审计,监测追踪和分析统计,syslog是一个综合的日志记录系统,它主要的功能是方便日志管理和分类存放日志
日志syslog的功能:
syslog功能 描述
auth 安全性/验证消息(负面)
authpriv 安全性/验证消息
cron cron和at
daemon 其他系统守护进程(ssh,inetd,pppd等)
kern 内核消息
lpr 行打印子系统
mail 邮件子系统(sendmail,postfix,qmail等)
news 报告与网络新闻服务有关的消息
syslog 内部syslog消息
user 一般用户级别
uucp uucp子系统
local0-local7 自定义级别
日志syslog的级别:
syslog级别 描述
emerg 系统已不可用
alert 必须马上采取行动
crit 危机
err 错误
warning 警告
notice 普通但重要的情形
info 通知消息
debug 调试信息
none 用于禁止任何消息
* 所有级别除了none
动作:动作字段用于描述对应功能的动作
file 指定一个绝对路径的日志文件名记录日志信息
username 发送信息到指定用户,*表示所有用户
device 将信息发送到指定的设备中,如/dev/console
@hostname 将信息发送到可解析的远程主机hostname,且该主机必须正在运行syslog并可以识别syslog 的配置文件
1.查看当前系统安装相关的日志的包,默认是已经安装了的
rpm -qa | grep syslog
linux redhat5.x系统syslog的安装包都是syslog,redhat6.x版本的都是rsyslog这都是表示日志文件
2.查看配置文件
find / -name rsyslog.conf (查看一下日志的配置文件在哪里)
5.x版本的日志的配置文件是 /etc/syslog.conf
6.x版本的日志的配置文件是 /etc/rsyslog.conf
cat /etc/rsyslog.conf (日志的配置文件)
*.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
####################################################
配置文件的格式
facility.priority action
设备. 级别 动作(动作是可以指定路径的)
####################################################
3.日志主要存在路径
日志的配置文件和日志的存放路径是两个不同的概念
日志文件通常存放在/var/log目录,在该目录下出了包括syslogd记录的日志之外,同时还包含所有应用程序的
日志。(值得注意的是用yum或者rpm包安装的服务日志都会存在这个目录下面而且会生成相应的目录源码包安装的服务则不会在这个目录下面)
ls /var/log (说几个主要的日志)
boot.log 记录系统启动的日志
messages 有rsyslog记录的info或更高级别的消息日志
wtmp 一个用户每次登陆进入和退出时间的永久记录
cups 存储cups打印系统的日志目录
secure 用rsyslog记录的认证日志
dmesg 记录系统启动时的消息日志
maillog 记录邮件系统的日志
yum.log 记录yum安装包卸载更新的日志
日志文件中的每一行表示一个消息,而且都有四个域的固定格式组成
时间标签 主机名 方括号里的是进程的PID message
查看文件的方法
cat grep vim 这些就不说了
如果打开一个文件发现是乱码,表示这个文件时二进制文件 查看二进制文件的方法 strings 文件名
lastlog 命令来检查某个特定用户上次登录的时间
last 命令往回搜索 /var/log/wtmp来显示自从文件第一次创建以来登录过的用户
lastb 命令搜索 /var/log/wtmp来显示登录未成功的信息(如果来着同一个ip用不同的用户反复的登录则可能是***)
4.重启日志服务器
service rsyslog restart
5.防止日志文件本修改,加入某些属性。
1)chattr 命令可以使某个文件属性改变
chattr +a /var/log/messages 文件messages的数据只允许增加,不允许减少。
chattr -a /var/log/messages 去掉数据只允许增加而不允许减少的属性。
2)lsattr 命令查看chattr命令的效果
lsattr /var/log/messages
------------a-----------------messages
日志滚动
所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成
磁盘空间的不必要的浪费,同时也加快了管理员查看日志所用的时间。
1.logrotate
命令格式
logrotate [选项]
-d:详细显示指令执行过程,便于排错或了解程序执行的情况
-f:强行启动记录文件维护操作,即使logrotate 直接认为无需要。
-m command:指定发送邮件的程序,默认是/usr/bin/mail
-s statefile:使用指定的状态文件。
-v:在执行日志滚动时显示详细信息。
2.日志滚动的默认的配置文件是/etc/logrotate.conf
/etc/logrotate.d目录下的文件,这些文件被include到主配置文件中
sed -e '/^#/d' -e '/^$/d' /etc/logrotate.conf (查看配置文件)
######
weekly //每周清理一次日志文件
rotate 4 //保存过去四周的日志文件
create //清楚旧日志的同时,创建新的空日志文件
dateext //使用日期为后缀的旋转文件
include /etc/logrotate.d //包含/etc/logrotate.d目录下的所有配置文件
/var/log/wtmp ///var/log/wtmp这个日志文件按照下面的设定轮转
{
Monthly //每月轮转一次
minsize 1M // 文件大小最小1M
create 0664 root utmp // wtmp这个日志文件,权限644,所有者root,所属组utmp
rotate 1 //只备份一个月的数据就轮换
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
#########
3./etc/logrotate.d 里面的文件是自定义轮转方式。默认是/etc/logrotate.conf,是一个全局配置文件,而/etc/logrotate.d 下面的文件是局部的。只对自己生效。
自定义syslog的轮转方式
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts //调用日志滚动通用函数
postrotate //在日志滚动之后只需语句括号postrotate和endscripts之间的命令
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true 重新启动服务
endscript
}
日志主服务器和客户端的配置
日志服务器端的配置
1:修改配置文件/etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS=" -x -m 0" 修改为 SYSLOGD_OPTIONS="-r -x -m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
2:修改文件syslog 之后
2.1 重启syslog服务
Service syslog restart
客户端的配置
1:修改/etc/syslog.conf
*.* @日志服务器的主机名或IP地址
2:重启客户端syslog
Service syslog restat
3:客户端产生的所有的日志文件将在日志服务器的/var/log/*.* 生成。
测试
最后一步我们需要做的是验证所有的配置是否正常工作. 我们可以这样来
做, 首先从客户端登出和登陆:
然后检查logserver上的日志文件/var/log/messages或者/var/log/secure)