利用日志使管理Linux更轻松
利用日志使管理Linux更轻松
操作系统的日志主要具有审计与监测的功能,通过对日志信息的分析,可以检查错误发生的原因,监测追踪入侵者及受到攻击时留下的痕迹,甚至还能实时的进行系统状态的监控。有效利用日志信息并对其进行分析与实时的监控管理,对于系统的安全性具有极为重要的作用。
本文就是和大家探讨如何利用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:\WINDOWS\system32目录下,在命令行状态下运行如下命令进行安装:%systemroot%\system32\evtsys –i-h loghost
当安装成功后,可查看服务列表看到相应的信息,如图1所示。
卸载evtsys的命令为:
%systemroot%\system32\evtsys-u
图1
更改日志主机名的命令为:
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 #向系统管理员发送监测结果邮件,并设定相应的主题#
mall addresses=admin\@local.com,subject=Monitor Result,when=2-5:8-17 #向系统管理员发送监测结果邮件,并设定相应的主题及监控的时间#
使用“swatch--help”查看Swatch运行时的具体选项。
下面是一个运行命令范例,仅供参考:
#swatch-config-file=~/.swatchrc-examine=/var/log/messages
当出现监控到的信息时,Swatch即会实时地发送邮件给系统管理员,及时杜绝入侵者的各种入侵尝试,保护系统的安全。
三、总结
日志主机系统的建立,不但能够有效提高日志管理、分析及监测的效率,同时它也对于日志信息的安全保护起到了极为重要的作用,它将各服务器的日志信息在日志主机上进行备份,同时也能够有效防止入侵痕迹,为系统管理工作提供了极大的便利性,是有效保障系统安全的重要途径之一。
本文出自 “李晨光原创技术博客” 博客,转载请与作者联系!
利用日志使管理Linux更轻松的更多相关文章
- ssh登陆linux服务器 实际场景讲解 让你管理服务器更安全
很多时候我们管理linux系统,都谁使用ssh登陆,因为都知道ssh是加密传输的协议的,可以有效保证我们与 服务器之间的数据通信安全.但是我们忽略了一点,但是登陆的时候我们是输入的账号和密码,这一点其 ...
- Http请求封装(对HttpClient类的进一步封装,使之调用更方便。另外,此类管理唯一的HttpClient对象,支持线程池调用,效率更高)
package com.ad.ssp.engine.common; import java.io.IOException; import java.util.ArrayList; import jav ...
- 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理
目录 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理 17.1 计划任务-at-cron-计划任务使用方法 17.1.1 at计划任务的使用 17.1.2 查看和删除at将要执行 ...
- 人生维艰,何不利用开源.NET函数库让工作更轻松
今天推荐的文章会谈到一些让你工作更轻松的开源.NET函数库. 即使业界有时候认为.NET开源社区不太健康,很多开发团队都更多依赖于微软提供的东西来开发.不过最近在.NET世界中还是诞生了一些优秀和有意 ...
- Linux - 利用systemctl命令管理服务
systemctl命令是系统服务管理器指令,融合了service和chkconfig的功能,可以查看和设置服务. 这里以docker服务为例. 利用systemctl命令管理 显示服务状态:syste ...
- webmin纯web界面管理linux系统
关键字: 摘要:从Windows环境的管理转到Linux环境的管理时所面临的挑战之一是,您需要去学习利用新的工具.作为一个管理员,您希望理解操作系统的细节以发挥它的最大功效.但是,当您还处在学习阶段时 ...
- 【原创】利用doxygen来管理项目文档或注释
一.doxygen应用场景: doxygen可以用来管理目前主流的编程语言的注释而形成文档系统.(包括C, C++, C#, Objective-C, IDL, Java, VHDL, PHP, Py ...
- 嵌入式 使用udev高效、动态地管理Linux 设备文件
本文以通俗的方法阐述 udev 及相关术语的概念.udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例.本文会使那 ...
- 【转】使用 udev 高效、动态地管理 Linux 设备文件
简介: 本文以通俗的方法阐述 udev 及相关术语的概念.udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例.本 ...
随机推荐
- AJAX--XMLHttpRequest五步使使用方法
传统浏览方式和AJAX方式的不同 多数Web应用程序都使用请求/响应模型从server上获得完整的HTML页面.经常是点击一个button,等待server对应,在点击还有一个button.然后在等待 ...
- 【Hibernate步步为营】--(一对多映射)之单向关联
上篇文章讨论了双向关联的一对一映射,用了两个章节,主要是从主键和外键两种关联映射展开具体讨论.双向关联的映射须要在两个映射文件里分别加入相互的相应关系.斌刚在相应的类中加入相应的关联类的属性.这样在一 ...
- HDU 4462 Scaring the Birds (暴力枚举DFS)
题目链接:pid=4462">传送门 题意:一个n*n的区域,有m个位置是能够放稻草人的.其余都是玉米.对于每一个位置(x,y)所放稻草人都有个作用范围ri, 即abs(x-i)+ab ...
- oracle之ROWNUM的查询应用
1 在ORACLE数据库中,ROWNUM是ORACLE数据库为查询结果加入的一个伪列.起始值为1.经常使用来处理查询结果的分页. 2 因为ROWNUM的特殊性,使用时候一般是分三层: 第一层:先进行查 ...
- 基于matlab的音频波形实时採集显示 v0.1
robj = audiorecorder(44100,16,1); %设置採样频率.採样位数.通道数 recordblocking(robj,1); %採集初步数据(1s长度) rdata = get ...
- 关于checkbox的一些jquery操作
表单在前端开发中是经常会遇到的,其中自然也少不了checkbox复选框,对于复选框的操作无外乎有以下三种:全选,全不选,反选.下面零度逍遥就给大家分析分析. 一.checkbox全选 大家都知道选择c ...
- Debian9 ifconfig命令找不到解决办法
Debian9 ifconfig命令找不到解决办法 ifconfig.route.arp和netstat等命令行工具(它们统称为net-tools),管理和排查各种网络配置.这类工具原先起源于BSD ...
- 学习TF:《TensorFlow机器学习实战指南》中文PDF+英文PDF+代码
从实战角度系统讲解TensorFlow基本概念及各种应用实践.真实的应用场景和数据,丰富的代码实例,详尽的操作步骤,带你由浅入深系统掌握TensorFlow机器学习算法及其实现. <Tensor ...
- 紫书 例题 9-8 UVa 1625 (滚动数组+公共字符串处理)
这题看题解看了很久,学到了挺多(自己还是太弱,唉!) (1)这道题的思路非常的巧妙.我一开始看到就觉得不好来记录开始位置以及 结束位置.但是题解换了一个思路,记录每一次开始了但还没有结束的字符有多少个 ...
- oracle基础入门(二)
一:Oracle和plsql都安装成功 我们现在要链接自己本机Oracle 或者 远程服务器的Oracle 所有我们要找到tnsnames.ora 找到PLsql的 db_1我的地址F:oracle\ ...