本文和大家探讨如何利用linux日志系统来管理系统。为方便阅读,在作者原文的基础上,有所修改。

对于日志信息的管理通常采用两种方法,一种方法是不同服务器的日志信息都存放在各自系统内,系统管理员对各服务器进行分散管理。

另一种方法则是使用日志主机系统,这是一个从其他主机收集日志,并将它们存放在同一个地方的系统,很容易使来自多个主机的日志条目关联起来,对其进行统一管理、分析,甚至配合自动化工具进行实时的监控,有效提高管理的效率。

第一种方法往往是大多数系统管理员的常用的方法,这种传统的管理方法在服务器数量较少时还能勉强应付,但在处理多主机状况时却并非一种有效的方法。

本文主要讲述二种日志管理方法,探寻一种提高系统管理效率的途径。

一、日志主机系统的部署

日志主机系统包括日志主机及各主机系统两个部分,其中日志主机相当于服务器端,而各主机系统相当于客户端,将日志信息实时的传送到日志主机上来。

1. 日志主机的部署

日志主机采用一台RHEL 5的服务器(假设其主机名为loghost),日志收集软件采用Linux平台上的Syslog,Syslog一般都随Linux系统安装时已经安装,对于我们部署整个系统提供了极大的便利性,因此在此不对其安装步骤进行阐述,仅讲述其配置方法。

Syslog既可作为客户端,也可作为服务器端,并且支持远程的日志收集。其配置文件为/etc/sysconfig/syslog,要配置其作为服务器端,需对此配置文件相应部分改为如下所示:

SYSLOGD_OPTIONS=“-r-m 0”

“-r”选项表示使syslog接收客户端的远程日志信息。

接下来重启Syslog服务器端使配置生效:

#service syslogd restart

由于Syslog采用514端口监听来自各客户端的日志信息,因此需要在日志主机的防火墙上开放514端口,以iptables为例,对特定网段开放514端口:

/sbin/iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/16 -dport 514 -syn -j ACCEPT

2.客户端的部署

2.1 Linux平台下客户端的部署

在Linux平台下依然选择syslog作为客户端进行部署,此时此配置文件为/etc/syslog.conf,其默认配置为(仅以/var/log/message日志为例):

*.info;mail.none;authpriv.none;cron.none /var/log/messages

/var/log/message即Sysolg存放系统日志的绝对路径,将此值替换为日志主机名即可。例子如下:

*.info;mail.none;authpriv.none;cron.none @loghost

根据上述配置,当Syslog重启使用配置生效后,客户端服务器的日志信息将会实时的传送到日志主机的/var/log/message文件里,对各服务器的日志信息进行统一的管理。

使用如下命令重启Syslog服务使配置生效:

#service syslogd restart

依上述方法将其他系统日志信息(如/var/log/secure)导入到日志主机上。

笔者建议,采用添加配置而非修改的方法,同时在本地及日志主机上保存系统日志。

2.2 Windows平台下客户端的部署

在Windows平台下采用软件evtsys进行客户端的部署,其下载链接为http://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/evtsys_exe.zip 解开后得到两个文件:evtsys.ext和evtsys.dll。

将这两个文件放到C:WINDOWSsystem32目录下,在命令行状态下运行如下命令进行安装: %systemroot%system32evtsys –i-h loghost

当安装成功后,可查看服务列表看到相应的信息。

卸载evtsys的命令为:

%systemroot%system32evtsys -u

更改日志主机名的命令为:

Net stop evtsys //停止 evtsys

evtsys-u //卸载 evtsys

evtsys-l-h newloghost //指定新的日志主机名

net start evtsys //启动 evtsys

二、日志主机的自动日志分析与监控

当整个系统部署好后,可以从日志主机里验证各服务器是否将日志信息发送到了日志主机上。

以/var/log/message为例,打开此文件,当看到具有不同主机名字的日志信息标志着日志主机已经正常工作,节选部分日志如下:

Jan 9 08:39:38 dog crond(pam_unix)[4528]:ses-sion opened for user root by (uid=0)

Jan 9 08:39:36 dog crond(pam_unix)[4528]:session closed for user root

Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion opened for user root by(uid=0)

Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion closed for user root

Jan 9 08:39:53 app last message repeated 8 times

Jan 9 08:40:11 apple net-snmp[657]:Connection from udp:92.168.1.11:4298

Jan 9 08:40:11apple net-snmp[657]:Received SNMP packet(s) from udp:159.226.2.144:42988

Jan 9 08:41:15orangesshd(pam_unix)[28389]:ses-sion opened for user tom by(uid=2011)

Jan 9 08:41:28 orange sshd(pam_unix)[28389]:ses-sion opened for user tom by (uid=2011)

Jan 9 08:41:28 orange 1月9 08:41:28 su` (pam_unix)[28425]:session opened for user root by tom (uid=2011)

对于如此庞大的日志信息,大部分并没多大的用处,但在跟踪某一具体问题或者安全漏洞时却可能很有用。那么我们如何对其进行有效地分析与监测,发挥其真正作用呢?在此推荐两款比较常用的日志分析与监控软件,对这些日志信息进行自动地分析与监控。

1. 利用Logwatch 进行日志监控

在Linux系统中,已经默认安装了Logwatch,配合Sendmail的邮件发送功能,向系统管理员发送前一天的日志分析结果邮件。其配置文件为/etc/log.d/logwatch.conf,下面是省略注释后的配置文件,一般只需将MailTo部分改为系统管理员邮箱地址即可,更多的配置细节可参考其官方http://www.logwatch.org

LogDir =/var/log

MallTo=admin@local.com

Pnnt=No

Range=yesterday

Detail=High

Service=All

2. 利用Swatch进行日志的实时监控

Swatch 下载链接为http://sourceforge.net/projects/swatch/ 要安装 Swatch,需要先安装两个perl模块包:Date-Calc-5.4.tar.gz和TimeDate-1.16.tar.gz 接着安装Swatch,安装步骤如下:

#tar-zxvf swatch-3.2.1.tar.gz

#cd swatch-3.2.1

#perl Makefile.pl

#make

#make test

#make install

配置Swatch使其作,需建立配置文件~/.swatchrc,按照其语法规则添加监测的相关内容,可使用“man swatch”命令查看具体配置内容及含义。

下面是一个简单的范例,仅供参考:

Watch for = /Failed fuseraddllnvalid/i #采用正则表达式的形式指定监测的内容#

echo #使得匹配的行通过stdout显示#

mail address=admin@local.com,subject=Monitor Result #向系统管理员发送监测结果邮件,并设定相应的主题#

使用“swatch--help”查看Swatch运行时的具体选项。

下面是一个运行命令范例,仅供参考:

#swatch-config-file=~/.swatchrc-examine=/var/log/messages

当出现监控到的信息时,Swatch即会实时地发送邮件给系统管理员,及时杜绝入侵者的各种入侵尝试,保护系统的安全。

三、总结

日志主机系统的建立,不但能够有效提高日志管理、分析及监测的效率,同时它也对于日志信息的安全保护起到了极为重要的作用,它将各服务器的日志信息在日志主机上进行备份,同时也能够有效防止入侵痕迹,为系统管理工作提供了极大的便利性,是有效保障系统安全的重要途径之一。

linux下日志管理系统,Linux管理日志系统详解相关推荐

  1. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  2. Linux下的tar归档及解压缩功能详解

    Linux下的tar归档及解压缩功能详解 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.L ...

  3. Linux下解析域名命令-dig 命令使用详解

    Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息.dig 命令主要用来从 DNS 域名服务器查询主机地址信息.dig的全称是 (dom ...

  4. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  5. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  6. linux 子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 for ...

  7. linux添加nginx,linux下安装Nginx1.16.0的教程详解

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 ? 创 ...

  8. Linux环境下怎么使用pip,linux下pip的安装步骤及使用详解

    linux下pip的安装步骤及使用详解 pip类似RedHat里面的yum,安装软件非常方便.下面话不多说,来看看详细的介绍: pip下载:# wget "https://pypi.pyth ...

  9. linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...

  10. linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

最新文章

  1. 南邮java实验一报告_南邮JAVA程序设计实验1 综合图形界面程序设计
  2. 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )
  3. 作为阿里的面试官,我有话想说
  4. android 高德地图设置不能旋转_你以为高德地图只是个地图,并不是?它其实还是个PPT制作神器...
  5. Linux翻页命令more和less
  6. 开发指南专题四:JEECG微云快速开发平台--JEECG开发环境搭建
  7. equals和== 的用法
  8. JavaScript要点 (一) 变量-作用域
  9. 软件的黑盒和白盒分析方法
  10. 计算机网络教室建设方案,计算机网络教室设计方案汇总.doc
  11. python统计学生平均成绩和及格人数_SQL 查询:查询学生平均成绩
  12. python怎么检查页面边距_Matplotlib页边距
  13. 转:[IDEA]Java:“程序包XXX不存在”问题的三种解决方案
  14. BPM平台为企业“增值”
  15. 旋转卡(qia)壳 平面最远点对
  16. [CodeForces]CodeForces - 1025F Disjoint Triangles
  17. 2019.6月全国房价地图
  18. JAVA中的各种引用
  19. 产后一定要喝生化汤吗?
  20. 论文阅读_Same Coverage, Less Bloat: Accelerating Binary-only Fuzzing with Coverage-preserving Coverage-g

热门文章

  1. MVC3+Entity Framework 实现投票系统(一)
  2. 基于ArcSDE的影像数据管理-解决篇(转载)
  3. ubuntu下Tensorflow 报错: ImportError: No module named 'matplotlib'
  4. 三种编程命名规则:驼峰命名法 (壹)
  5. 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)
  6. 数据结构与算法(C语言) | 栈和队列——栈(自己做过测试)
  7. 云上如何做冷热数据分离
  8. windows下生成github ssh key详解
  9. Win谷歌插件加载失效
  10. atlas单机模式代码_游戏日报:3DS源码遭泄露,COD吃鸡更新经典模式,重装机兵再跳票...