应用 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
×

Syslog Ng

3,092

Published on

Published in: Technology, Design
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,092
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
58
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 可以按接收时间,发送时间,总条数,时间间隔归档
  • Syslog Ng

    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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×