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)