Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
应用 syslog 和 syslog-ng http://www.juruntang.net 200903
目 录 <ul><li>syslog 基本概念 </li></ul><ul><li>下一代日志: syslog-ng </li></ul><ul><li>应用 syslog 开发 </li></ul><ul><li>windows 下使用 sy...
syslog 服务 <ul><li>广泛应用与 *nix 系统 </li></ul><ul><li>系统日志,应用日志 </li></ul><ul><li>syslog 服务的三种形式 </li></ul><ul><ul><li>发送  Dev...
syslog 进程层次结构
RFC 3164 <ul><li>UDP 514 端口,不需要应答 </li></ul><ul><li>UDP 报文不超过 1024 </li></ul><ul><li>全部为可打印字符 </li></ul><ul><li>三部分 </li><...
日常使用关心的结构 <ul><li>正文 (Content) </li></ul><ul><li>程序模块 (Facility) </li></ul><ul><li>严重性 (Severity 或 Level) </li></ul><ul><l...
Facility <ul><li>0-23 ,共 24 个设备 </li></ul><ul><li>几个重要 </li></ul><ul><ul><li>0: kernel </li></ul></ul><ul><ul><li>2: mail ...
Level <ul><li>8 个等级 </li></ul><ul><ul><li>0-emerg( 系统不可用) </li></ul></ul><ul><ul><li>1-alert( 紧急情况) </li></ul></ul><ul><ul...
syslog 配置文件 (1) <ul><li>/etc/syslog.conf, 多条规则 </li></ul><ul><li>每条规则都要匹配 </li></ul><ul><li>规则:条件 (F.L)  操作 </li></ul><ul>...
syslog 配置文件 (2) <ul><li>文件前用 -, 表示缓冲写文件 </li></ul><ul><li>不同的 F 用 , 隔开 </li></ul><ul><li>不同条件可以用 ; 隔 </li></ul><ul><li>non...
调试工具 -logger <ul><li>系统自带 </li></ul><ul><li>最常用参数  -p ,不同 *nix 必有 </li></ul><ul><li>用法: logger -p f.l “content” </li></ul>...
<ul><li>syslog-ng </li></ul><ul><li>下一代系统日志工具 </li></ul>
syslog-ng 概述 <ul><li>API : syslog() 不变 </li></ul><ul><li>兼容 syslog </li></ul><ul><li>开源 & 商业版本 </li></ul><ul><li>特点 </li><...
syslog-ng 配置文件 <ul><li>/etc/syslog-ng/syslog-ng.conf </li></ul><ul><li>核心参数 </li></ul><ul><ul><li>sync(0); # 立刻写磁盘 </li></...
syslog-ng 配置例子 - 发送 <ul><li>发送方配置 </li></ul># 目的 destination d_loghost { tcp(&quot;192.168.1.215&quot; port(8514)); file(&...
syslog-ng 配置例子 - 接收 <ul><li>接收方配置 </li></ul>source s_remote { tcp(ip(192.168.1.215) port(8514)); }; filter f_paycard_a { #...
syslog 开发 <ul><li>c </li></ul><ul><li>php </li></ul><ul><li>python </li></ul><ul><li>应用类型 </li></ul>
syslog 开发 -c <ul><li>void openlog(const char *ident, int logopt, int facility) </li></ul><ul><ul><li>指定 ident </li></ul></...
syslog 开发 -PHP <ul><li>完全和 c 开发相同 </li></ul><ul><li>只能在 *nix 上使用 </li></ul><ul><li>内嵌模块 </li></ul>
syslog 开发 -python <ul><li>import syslog </li></ul><ul><li>syslog.openlog('paycard',    syslog.LOG_LOCAL0) </li></ul><ul><l...
应用类型 <ul><li>程序应用日志 </li></ul><ul><li>Message Queueu :并行变串行 </li></ul><ul><li>中央日志服务器监控 </li></ul><ul><li>对 syslog/syslog-...
Windows 上使用 syslog <ul><li>作为发送方 </li></ul><ul><li>直接实现 RFC3164 , UDP 方式 </li></ul><ul><li>将 win 的 Eventlog 转换 syslog 格式发送...
参考资料 <ul><li>syslog </li></ul><ul><ul><li>http://www.cnblogs.com/yoleung/articles/1183375.html </li></ul></ul><ul><ul><li>...
End Thanks
Upcoming SlideShare
Loading in …5
×

intro syslog syslogng

1,149 views

Published on

Published in: Technology, Design
  • Be the first to comment

  • Be the first to like this

intro syslog syslogng

  1. 1. 应用 syslog 和 syslog-ng http://www.juruntang.net 200903
  2. 2. 目 录 <ul><li>syslog 基本概念 </li></ul><ul><li>下一代日志: syslog-ng </li></ul><ul><li>应用 syslog 开发 </li></ul><ul><li>windows 下使用 syslog </li></ul><ul><li>参考资料 </li></ul>
  3. 3. syslog 服务 <ul><li>广泛应用与 *nix 系统 </li></ul><ul><li>系统日志,应用日志 </li></ul><ul><li>syslog 服务的三种形式 </li></ul><ul><ul><li>发送 Device </li></ul></ul><ul><ul><li>转发 Relay </li></ul></ul><ul><ul><li>接收 Collector </li></ul></ul><ul><li>2001 年 RFC3164 , BSD syslog 协议,非强制性 </li></ul>
  4. 4. syslog 进程层次结构
  5. 5. RFC 3164 <ul><li>UDP 514 端口,不需要应答 </li></ul><ul><li>UDP 报文不超过 1024 </li></ul><ul><li>全部为可打印字符 </li></ul><ul><li>三部分 </li></ul><ul><ul><li>PRI </li></ul></ul><ul><ul><li>HEADER </li></ul></ul><ul><ul><li>MSG </li></ul></ul>
  6. 6. 日常使用关心的结构 <ul><li>正文 (Content) </li></ul><ul><li>程序模块 (Facility) </li></ul><ul><li>严重性 (Severity 或 Level) </li></ul><ul><li>时间 </li></ul><ul><li>主机名或 IP </li></ul><ul><li>进程名或进程 ID </li></ul>
  7. 7. Facility <ul><li>0-23 ,共 24 个设备 </li></ul><ul><li>几个重要 </li></ul><ul><ul><li>0: kernel </li></ul></ul><ul><ul><li>2: mail </li></ul></ul><ul><ul><li>3: system daemons </li></ul></ul><ul><li>预留给其他 </li></ul><ul><ul><li>1: user </li></ul></ul><ul><ul><li>16-23: Local0-Local7 </li></ul></ul>
  8. 8. Level <ul><li>8 个等级 </li></ul><ul><ul><li>0-emerg( 系统不可用) </li></ul></ul><ul><ul><li>1-alert( 紧急情况) </li></ul></ul><ul><ul><li>2-crit (严重错误) </li></ul></ul><ul><ul><li>3-err (一般性错误) </li></ul></ul><ul><ul><li>4-warning (警告) </li></ul></ul><ul><ul><li>5-notice (值得注意的消息) </li></ul></ul><ul><ul><li>6-info (一般消息) </li></ul></ul><ul><ul><li>7-debug (调试消息) </li></ul></ul>
  9. 9. syslog 配置文件 (1) <ul><li>/etc/syslog.conf, 多条规则 </li></ul><ul><li>每条规则都要匹配 </li></ul><ul><li>规则:条件 (F.L) 操作 </li></ul><ul><ul><li>mail.err /var/log/mail.err </li></ul></ul><ul><li>通配符 * = ! </li></ul><ul><ul><li>mail.*;auth.!info /var/log/mail </li></ul></ul><ul><ul><li>* 等同于 7(debug) 等级 </li></ul></ul>
  10. 10. syslog 配置文件 (2) <ul><li>文件前用 -, 表示缓冲写文件 </li></ul><ul><li>不同的 F 用 , 隔开 </li></ul><ul><li>不同条件可以用 ; 隔 </li></ul><ul><li>none ,排除这个设备 </li></ul><ul><ul><li>*.debug;auth,mail.none -var/log/debug </li></ul></ul><ul><li>发送网络 </li></ul><ul><ul><li>*.err @192.168.1.1 </li></ul></ul><ul><li>在控制台 </li></ul><ul><ul><li>*.err /dev/console </li></ul></ul>
  11. 11. 调试工具 -logger <ul><li>系统自带 </li></ul><ul><li>最常用参数 -p ,不同 *nix 必有 </li></ul><ul><li>用法: logger -p f.l “content” </li></ul><ul><ul><li># logger -p local0.debug“info msg” </li></ul></ul><ul><li>例子: </li></ul><ul><ul><li>规则 </li></ul></ul><ul><ul><ul><li>mail.info /var/log/mail.info </li></ul></ul></ul><ul><ul><ul><li>mail.err /var/log/mail.err </li></ul></ul></ul><ul><ul><li># logger -p mail. err “err from roger” </li></ul></ul>
  12. 12. <ul><li>syslog-ng </li></ul><ul><li>下一代系统日志工具 </li></ul>
  13. 13. syslog-ng 概述 <ul><li>API : syslog() 不变 </li></ul><ul><li>兼容 syslog </li></ul><ul><li>开源 & 商业版本 </li></ul><ul><li>特点 </li></ul><ul><ul><li>TCP </li></ul></ul><ul><ul><li>正则消息过滤 </li></ul></ul><ul><ul><li>多种归档方式 </li></ul></ul><ul><ul><li>配置更清晰,更灵活 </li></ul></ul><ul><ul><li>主机链 </li></ul></ul><ul><li>被多个 os 采用 ,debian,freebsd 等 </li></ul>
  14. 14. syslog-ng 配置文件 <ul><li>/etc/syslog-ng/syslog-ng.conf </li></ul><ul><li>核心参数 </li></ul><ul><ul><li>sync(0); # 立刻写磁盘 </li></ul></ul><ul><ul><li>log_fifo_size(2048); # 设置输出队列的缓存,防止消息丢失 </li></ul></ul><ul><li>规则 </li></ul><ul><ul><li>消息路径 『消息源 - 过滤器 - 目的站』 </li></ul></ul><ul><ul><li>通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个消息路径。 </li></ul></ul>
  15. 15. syslog-ng 配置例子 - 发送 <ul><li>发送方配置 </li></ul># 目的 destination d_loghost { tcp(&quot;192.168.1.215&quot; port(8514)); file(&quot;/tmp/loglocal&quot;); // 本机做的备份 }; # 过滤器,只发送 local0.info 的 filter f_local0_info { facility(local0) and level(info); }; # 消息路径 log { source(s_all); filter(f_local0_info); destination(d_loghost); };
  16. 16. syslog-ng 配置例子 - 接收 <ul><li>接收方配置 </li></ul>source s_remote { tcp(ip(192.168.1.215) port(8514)); }; filter f_paycard_a { #match(&quot;<v001>&quot;); # 正则过滤,暂时没有使用 program(&quot;paycard&quot;); }; # 存放在发送时间命名的文件中,例如: paycard_one.log.2008-12-05 # 这样自动文件就分割了 destination d_paycard_a { file(&quot;/tmp/paycard_one.log.$S_YEAR-$S_MONTH-$S_DAY&quot;); }; log { source(s_remote); filter(f_paycard_a); destination(d_paycard_a); };
  17. 17. syslog 开发 <ul><li>c </li></ul><ul><li>php </li></ul><ul><li>python </li></ul><ul><li>应用类型 </li></ul>
  18. 18. syslog 开发 -c <ul><li>void openlog(const char *ident, int logopt, int facility) </li></ul><ul><ul><li>指定 ident </li></ul></ul><ul><ul><li>指定 facitlity </li></ul></ul><ul><li>void syslog(int priority, const char *message, ...) </li></ul><ul><ul><li>指定 level </li></ul></ul><ul><ul><li>发送消息 </li></ul></ul><ul><li>void closelog(void) </li></ul>
  19. 19. syslog 开发 -PHP <ul><li>完全和 c 开发相同 </li></ul><ul><li>只能在 *nix 上使用 </li></ul><ul><li>内嵌模块 </li></ul>
  20. 20. syslog 开发 -python <ul><li>import syslog </li></ul><ul><li>syslog.openlog('paycard', syslog.LOG_LOCAL0) </li></ul><ul><li>syslog.syslog(syslog.LOG_INFO, “msg”) </li></ul>
  21. 21. 应用类型 <ul><li>程序应用日志 </li></ul><ul><li>Message Queueu :并行变串行 </li></ul><ul><li>中央日志服务器监控 </li></ul><ul><li>对 syslog/syslog-ng 进行监控 </li></ul>
  22. 22. Windows 上使用 syslog <ul><li>作为发送方 </li></ul><ul><li>直接实现 RFC3164 , UDP 方式 </li></ul><ul><li>将 win 的 Eventlog 转换 syslog 格式发送 </li></ul><ul><li>开源实现 </li></ul><ul><ul><li>http://sourceforge.net/projects/ntsyslog/ </li></ul></ul><ul><ul><li>https://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/ </li></ul></ul>
  23. 23. 参考资料 <ul><li>syslog </li></ul><ul><ul><li>http://www.cnblogs.com/yoleung/articles/1183375.html </li></ul></ul><ul><ul><li>http://bbs.tech-lab.cn/viewthread.php?tid=30253 </li></ul></ul><ul><li>syslog-ng </li></ul><ul><ul><li>http://coolerfeng.blog.51cto.com/133059/79964 </li></ul></ul><ul><ul><li>http://coolerfeng.blog.51cto.com/133059/80152 </li></ul></ul><ul><ul><li>http://www.campin.net/syslog-ng/faq.html ★ </li></ul></ul>
  24. 24. End Thanks

×