详细介绍Linux日志管理

运维 系统运维
2009年已经过去了,Linux受到了广大用户的关注。Linux是一个成熟而稳定的网络操作系统,目前,越来越多的网站采用Linux操作系统,你可能会遇到Linux日志管理的问题,这里将介绍Linux日志管理的技巧,在这里拿出来和大家分享一下。

2009年已经过去了,Linux受到了广大用户的关注。Linux是一个成熟而稳定的网络操作系统,目前,越来越多的网站采用Linux操作系统,你可能会遇到Linux日志管理的问题,这里将介绍Linux日志管理的技巧,在这里拿出来和大家分享一下。

目录
1. 使用shell向syslog日志文件写入信息
2. 输出iptables日志到一个指定的文件

内容
1. 使用shell向syslog日志文件写入信息

应用程序使用syslog协议发送信息给Linux系统的日志文件(位于/var/log目录). Sysklogd提供两个系统工具: 一个是系统日志记录, 另一个是内核信息捕获. 通常大多程序都使用C语言或者syslog应用程序或库来发送syslog消息.

下面介绍怎么样使用shell向syslog日志文件写入信息:

1). 使用Logger命令

logger命令是一个shell命令(接口). 你可以通过该接口使用syslog的系统日志模块 你还可以从命令行直接向系统日志文件写入一行信息.

比如, 记录硬盘升级后的系统重启信息:
$ logger System rebooted for hard disk upgrade

然后你可以查看/var/log/message文件:

# tail -f /var/log/message

输出为:

Jan 26 20:53:31 dell6400 logger: System rebooted for hard disk upgrade

你也可以通过脚本程序来使用logger命令. 看下面的实例:

  1. #!/bin/bash  
  2. HDBS="db1 db2 db3 db4" 
  3. BAK="/sout/email" 
  4. [ ! -d $BAK ] && mkdir -p $BAK || :  
  5. /bin/rm $BAK/*  
  6. NOW=$(date +"%d-%m-%Y")  
  7. ATTCH="/sout/backup.$NOW.tgz" 
  8. [ -f $ATTCH ] && /bin/rm $ATTCH  || :  
  9. MTO="you@yourdomain.com" 
  10. for db in $HDBS  
  11. do  
  12.  FILE="$BAK/$db.$NOW-$(date +"%T").gz"  
  13.  mysqldump -u admin -p'password' $db | gzip -9> $FILE  
  14. done  
  15. tar -jcvf $ATTCH $BAK  
  16.  mutt -s "DB $NOW" -a $ATTCH $MTO <<EOF 
  17. DBS $(date)  
  18. EOF  
  19. [ "$?" != "0" ] &&  logger "$0 - MySQL Backup failed" || :  

如果mysql数据库备份失败, 上面最后一行代码将会写入一条信息到/var/log/message文件.

2). 其它用法

如果你需要记录/var/log/myapp.log文件中的信息, 可以使用:
$ logger -f /var/log/myapp.log

把消息发送到屏幕(标准错误), 如系统日志:
$ logger -s "Hard disk full"

你可以参考man参考页获得更多的选项信息:
man logger
man syslogd

2. 输出iptables日志到一个指定的文件

Iptables的man参考页中提到: 我们可以使用iptables在linux内核中建立, 维护和检查IP包过滤规则表. 几个不同的表可能已经创建, 每一个表包含了很多内嵌的链, 也可能包含用户自定义的链.

Iptables默认把日志信息输出到/var/log/messages文件. 不过一些情况下你可能需要修改日志输出的位置. 下面向大家介绍怎么样建立一个新的日志文件/var/log/iptables.log. 通过修改或使用新的日志文件, 你可以创建更好的统计信息或者帮助你分析网络攻击信息.

1). Iptables默认的日志文件
例如, 如果你输入下面的命令, 屏幕将显示/var/log/messages文件中的iptables日志信息:

# tail -f /var/log/messages

输出:

  1. Oct 4 00:44:28 debian gconfd (vivek-4435): Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults" to a read-only configuration source at position 2  
  2. Oct 4 01:14:19 debian kernel: IN=ra0 OUTMAC=00:17:9a:0a:f6:44:00:08:5c:00:00:01:08:00 SRC=200.142.84.36 DST=192.168.1.2 LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=18374 DF PROTO=TCP SPT=46040 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0 

2). 输出iptables日志信息到一个指定文件的方法
打开你的/etc/syslog.conf文件:
# vi /etc/syslog.conf

在文件末尾加入下面一行信息
kern.warning /var/log/iptables.log

保存和关闭文件.

重新启动syslogd(如果你使用Debian/Ubuntu Linux):
# /etc/init.d/sysklogd restart

另外, 使用下面命令重新启动syslogd(如果你使用Red Hat/Cent OS/Fedora Core Linux):
# /etc/init.d/syslog restart

现在确认你的iptables使用了log-level 4参数(前面有一个log-prefix标志). 例如:

  1. # DROP everything and Log it  
  2. iptables -A INPUT -j LOG –log-level 4  
  3. iptables -A INPUT -j DROP 

举一个例子, 丢弃和记录所有来自IP地址65.55.11.2的连接信息到/var/log/iptables.log文件.

  1. iptables -A INPUT -s 64.55.11.2 -m limit --limit 5/m --limit-burst 7 -j LOG –log-prefix ‘** HACKERS **’ --log-level 4  
  2. iptables -A INPUT -s 64.55.11.2 -j DROP 

命令解释:

. - log-level 4: 记录的级别. 级别4为警告(warning).
. - log-prefix ‘*** TEXT ***’: 这里定义了在日志输出信息前加上TEXT前缀. TEXT信息最长可以是29个字符, 这样你就可以在记录文件中方便找到相关的信息.

现在你可以通过/var/log/iptables.log文件参考iptables的所有信息:
# tail -f /var/log/iptables.log

以上就是Linux日志管理的技巧的介绍。

【编辑推荐】

  1. 全面了解四种级别攻击Linux服务器的方式
  2. 六点Linux安全方法应用
  3. 为什么Linux操作系统和MacOS成长在微软的光环下?
  4. 未来十年Linux操作系统会怎样呢?
  5. 轻松让Linux成为路由器的方法
责任编辑:小霞 来源: NET130
相关推荐

2010-03-10 18:29:41

2009-12-18 11:48:24

网络安装 Linux

2010-06-22 09:28:31

Linux at命令

2010-06-18 17:35:16

Linux Anacr

2010-06-23 15:36:23

Linux Bug B

2009-12-11 15:59:00

Linux grep指

2009-12-25 14:24:59

Linux指令od

2009-06-17 14:57:11

Spring事务管理

2009-12-24 10:04:38

Linux进行C编译

2010-03-02 14:35:58

linux文本环境安装

2017-10-30 16:50:41

Linuxconst

2010-05-28 17:59:55

Linux抓图工具

2010-03-10 11:04:30

Linux时间转化方法

2010-03-09 11:09:05

Linux etcshadow

2010-06-03 12:41:45

Linux 开发工具

2010-03-09 09:55:14

Linux mount

2010-03-09 11:21:41

Linux etcgroup

2010-03-02 15:29:11

Linux图形软件安装

2010-06-17 17:03:31

Linux流量控制

2010-02-04 16:37:40

Android程序
点赞
收藏

51CTO技术栈公众号