文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Linux & Advanced Application » Linux操作系统的日志管理常用技巧介绍       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: Linux操作系统的日志管理常用技巧介绍  ( 查看:147  回复:0 )   
 
ministone11
副版主  点击可查看详细


论坛万户侯  
帖子 184
精华 0
无忧币 1016
积分 422
阅读权限 140
来自 (保密)
注册日期 2005-11-17
最后登录 2008-5-28 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-3-3 10:58   标题:Linux操作系统的日志管理常用技巧介绍
上一帖 |
1.使用Shell向Syslog日志文件写入信息
  应用程序使用Syslog协议发送信息给Linux系统的日志文件(位于/var/log目录)。Sysklogd提供两个系统工具: 一个是系统日志记录, 另一个是内核信息捕获。通常大多程序都使用C语言或者Syslog应用程序或库来发送Syslog消息。
  下面介绍如何使用sShell向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命令。看下面的实例:
  #!/bin/bash
  HDBS="db1 db2 db3 db4"
  BAK="/sout/email"
  [ ! -d $BAK ] && mkdir -p $BAK || :
  /bin/rm $BAK/*
  NOW=$(date +"%d-%m-%Y")
  ATTCH="/sout/backup.$NOW.tgz"
  [ -f $ATTCH ] && /bin/rm $ATTCH || :
  MTO="[url=mailto:you@yourdomain.com]you@yourdomain.com[/url]"
  for db in $HDBS
  do
  FILE="$BAK/$db.$NOW-$(date +"%T").gz"
  mysqldump -u admin -p'password' $db | gzip -9> $FILE
  done
  tar -jcvf $ATTCH $BAK
  mutt -s "DB $NOW" -a $ATTCH $MTO
  EOF
  [ "$?" != "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
  输出:
  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
  Oct 4 01:14:19 debian kernel:
  IN=ra0 OUT= MAC=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标志)。例如:
  # DROP everything and Log it
  iptables -A INPUT -j LOG –log-level 4
  iptables -A INPUT -j DROP
  举一个例子, 丢弃和记录所有来自IP地址65.55.11.2的连接信息到/var/log/iptables.log文件。
  iptables -A INPUT -s 64.55.11.2 -m limit
  limit 5/m --limit-burst 7 -j LOG
  log-prefix ‘** HACKERS **’ --log-level 4
  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



网络工程师到底该不该去考CCIE认证?
2008-3-3 10:581楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号