Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份

Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份同步

一、管理系统服务
1、chkconfig命令使用
chkconfig --list httpd #查看httpd服务启动状态
chkconfig --level 级别列表 服务名 on|off
chkconfig --level 35 httpd on #设置httpd在3、5运行级别开机自动启动
/etc/init.d -> /etc/rc.d/init.d #服务脚本位置,链接到rc.d下
2、ntsysv系统服务管理工具
当设置单个服务启动时,使用chkconfig更有效率,设置多个服务启动时,使用ntsysv工具比较适合
启动和停止服务脚本:service httpd start|stop|restart|reload|status或/etc/init.d/httpd start

Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份

二、日志管理
操作系统的日志主要具有审计与监测的功能,通过对日志信息的分析,可以检查错误发生的原因,监测追踪入侵者及受到攻击时留下的痕迹,甚至还能实时的进行系统状态的监控。有效利用日志信息并对其进行分析与实时的监控管理,对于系统的安全性具有极为重要的作用;日志文件所处的位置都在/var/log目录下。
1、rsyslog主配置

grep -v "^#" /etc/rsyslog.conf |grep -v "^$"  #筛选掉注释和空行
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog  # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none    /var/log/messages  #内核及应用程序公共消息日志
authpriv.*                                  /var/log/secure #系统安全日志             
mail.*                                      /var/log/maillog  #电子邮件系统的功能
cron.*                                      /var/log/cron  #计划任务相关的日志
*.emerg                                          *        #syslog对日志所设置的级别
uucp,news.crit                              /var/log/spooler
#syslog对news和uucp的日志所设置的级别,crit表示危急,但事故还没有发生,将要发生。news 是新闻组服务器的;uucp全称是UNIX-TO-UNIX COPY PROTOCOL的信息
local7.*                                    /var/log/boot.log  #开机系统日志

2、日志级别,由高到低
emerg:系统已经不可用,级别为紧急
alert:警报,需要立即处理和解决
crit:既将发生,得需要预防。事件就要发生
warnig:警告。
error:错误信息,普通的错误信息
notice:提醒信息,很重要的信息
info:通知信息,属于一般信息
debug:这是调试类信息
三、日志管理两种方法
方法1:比较常用,适合几台主机,不同服务器的日志信息都存放在各自系统内,系统管理员对各服务器进行分散管理。
方法2:适合多台主机,则是使用日志主机系统,即集中进行日志的存储和管理;这是一个从其他主机收集日志,并将它们存放在同一个地方的系统,很容易使来自多个主机的日志条目关联起来,对其进行统一管理、分析,甚至配合自动化工具进行实时的监控,有效提高管理的效率。
1、liunx系统日志集中存储,将A主机的系统日志存储到B主机(日志主机)上
A主机:IP:192.168.0.1/24
B主机:IP:192.168.0.2/24
B主机配置:(日志主机)

vi /etc/sysconfig/rsyslog  #修改如下
SYSLOGD_OPTIONS="-r -c 2"
vi /etc/rsyslog.conf  #去掉注释13、14、17、18
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
service rsyslog restart  #重启rsyslog
netstat -tupln | grep rsyslog    #已经启动,监听是TCP/UDP协议514
tcp    0  0 0.0.0.0:514    0.0.0.0:*  LISTEN  1408/rsyslogd
tcp    0  0 :::514          :::*    LISTEN      1408/rsyslogd
udp    0  0 0.0.0.0:514    0.0.0.0:*            1408/rsyslogd
udp    0  0 :::514          :::*                1408/rsyslogd

A主机配置:(客户端主机)

vi /etc/rsyslog.conf
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none          @192.168.0.2
authpriv.*                                        @192.168.0.2
mail.*                                            /var/log/maillog
cron.*                                            /var/log/cron
*.emerg                                              *
uucp,news.crit                                    /var/log/spooler
local7.*                                                /var/log/boot.log
service rsyslog restart  #重启rsyslog

我们是把公共消息日志和安全日志发送到日志主机上,在日志主机上tail -30 /var/log/message看到客户端主机名,说明运行正常。

2、对于这样庞大的日志信息,大多数是没用的,怎么样去分析和检测我们要的信息呢?
利用Logwatch 进行日志监控:logwatch是一款专门监测Linux log文件(日志文件)的软件。可以再加上mail对分析的文件不定时发送到邮箱。
在日志主机安装logwatch并修改配置文件

yum install -y logwatch
cp -rf /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
vi /etc/logwatch/conf/logwatch.conf
LogDir = /var/log  #日志文件
TmpDir = /var/cache/logwatch  #缓存文件
Detail = High    #日志详细程度为高
MailTo = user@test.com  #收件人邮箱地址,多个邮箱有逗号隔开
MailFrom = root@test.com  #发件人邮箱地址,默认每天执行一次向邮箱发送邮件,可以从/etc/cron.daily里看到
Print = No                    #可选项, Yes 会被打印到系统标准输出, 并且不会以邮件的形式发送到 MailTo 设定的邮箱里 , No 选项则会发到邮箱中
Range = yesterday  #处理什么时候的日志,可选项All,Yesterday,Today,即所有,昨天的,今天的
Detail = Low  # 日志详细度,可选项 Low,Med,High ,或是 0-10数字
Service = All  #监控所有服务all
Service = "-httpd"    #不监控的服务前面加“-”,可以添加多条

Logwatch命令常用的选项有:

--detail <level>: 报告的详细程序,可用的值为:High, Med, Low or 0-10;
--logfile <name>: 日志文件文件名,如:messages、auth.log等;
--service <name>: 服务名,各个服务有对应的解析脚本,这些脚本位与以下目录中(/usr/share/logwatch/scripts/services/或/etc/log.d/scripts/services);
--print: 打印标准输出;
--mailto <addr>: 收件人地址;
--archives: 使用压缩的文件或轮转的文件,如:messages.1、messages.1.gz;
--save <filename>: 保存到文件 <filename>.
--range <range>: 日期范围:Yesterday、Today、All;
--debug <level>: 试调级别: High、Med、Low ;
--splithosts: 为每个主机创建一份报告;
--multiemail: 将报告发送给多个邮件地址;
手动执行logwatch的命令生成日志报告

perl /usr/share/logwatch/scripts/logwatch.pl

写一个脚本让系统定时给指定邮箱发送邮箱

vi  /usr/local/sbin/logwatch.sh
#!/bin/bash
perl /usr/share/logwatch/scripts/logwatch.pl
chmod u+x /usr/local/sbin/logwatch.pl

创建一个cron计划任务

crontab –e
30 08  * * *  /usr/local/sbin/logwatch.sh #每台早上八点三十发一次邮件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19146.html