solaris学习8:日志syslog

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

三类日志子系统:

1、 连接时间日志:记录写入到/var/log/wtmp、/var/run/utmp中,login程序更新wtmp、utmp文件,使系统管理员跟踪谁在何时登录到系统

2、 进程统计: 由内核执行,当一个进程终止时为每个进程在统计进程文件(pacct、acct)中写入一条记录,为系统中基本服务提供命令使用统计。

3、错误日志: /var/adm/messages、/var/log/syslog

 

日志架构(linux也类似)

源(守护进程、内核、用户进程、程序、logger命令)---》syslog守护进程(配置文件/etc/syslog.conf)---》产生各个日志并写入日志文件

命令:logger 、 logadm

进程:/usr/sbin/syslogd     默认配置文件:/etc/syslog.conf
SMF: online          9:58:24 svc:/system/system-log:default

1、 syslog.conf文件

格式:facility(源). level(程度)       消息接受地

如:

*.err;kern.debug;daemon.notice;mail.crit        /var/adm/messages
*.alert;kern.err;daemon.err                             operator
*.alert                                                                root
注:多个消息,用“;”分号间隔,消息接受地类型:文件(接受日志信息的文件)、远程主机(格式为@servername、@IP)、用户(多个用户用“,”逗号隔离)、*(表示发给所有已登录用户)

解析:

facility

kern 内核产生的消息      user  用户进程产生的消息,默认的facility关键字

mail  邮件系统               daemon  守护进程产生的消息

auth 与验证、安全、授权系统有关的系统消息,如login、su、getty等

lpr  打印消息                   news  网络新闻消息

cron  自动作业消息         audit   与审计有关的消息

syslog  syslogd自身产生的消息    mark 消息的最后保存时间,由syslogd本身产生

*   表示所有的facility,除mark外

 

level

emerg  紧急情况,通常会广播给所有用户,级别最高

alert  应立即纠正的状态,比如系统数据块受到破坏

crit   紧急情况警告,如硬件设备错误

err 不属于crit的其它错误

warning  告警消息

notice  可能需要处理的消息

info  普通消息通知

debug  调试程序时出现的消息

none  facility发出的任何消息不会被发送到目的地

 

 ifdef判断语句

ifdef('LOGHOST',true部分,false部分)

当LOGHOST已定义,执行‘true部分’,LOGHOST未定义,则执行‘false部分’

如:

mail.debug         ifdef(`LOGHOST', /var/log/syslog, @loghost)

 

M4宏处理器   

bash-3.2# ls -l /usr/ccs/bin/m4
-r-xr-xr-x   1 root     bin        32112 2005    23 /usr/ccs/bin/m4

syslogd不直接读取/etc/syslog.conf文件,而是启动M4,M4再读取/etc/syslog.conf文件,并将读取的结果发给syslogd守护进程。

另外syslogd随系统启动时,会检查/etc/hosts文件,判断是否有loghost关键词。如

IP hostname loghost 与 IP hostname 是两种不同情况,如果syslogd读取/etc/hosts时没有loghost关键词,则启动M4的方式为:/usr/css/bin/m4 不带参数表示没有定义LOGHOST。如果有loghost关键词,则启动M4的方式为:/usr/css/bin/m4  -D  LOGHOST ,即定义LOGHOST变量。影响ifdef语句。

 

2、 重启syslogd命令:

pkill -HUP syslogd

       查看日志命令:dmesg

dmesg命令读取/var/adm/messages文件。如:dmesg | less

控制日志命令:logadm  常用参数:-s 文件大小  -p 间隔周期

如:bash-3.2# logadm -s 1k -p 2d /var/adm/messages
 



      本文转自fuhaixiong 51CTO博客,原文链接:http://blog.51cto.com/heliy/789210,如需转载请自行联系原作者





相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
9天前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
2月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
2月前
|
存储 网络协议 Linux
在Linux中,如何通过syslog进行远程日志转发?
在Linux中,如何通过syslog进行远程日志转发?
|
2月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
3月前
|
Unix Python
Python代码示例:使用`syslog`模块进行日志记录
Python代码示例:使用`syslog`模块进行日志记录
|
4月前
|
网络安全 数据安全/隐私保护 网络虚拟化
神州数码DCWS学习日志(二)
神州数码DCWS学习日志
24 1
|
4月前
|
Java Apache
学习Java中的日志系统设计与优化
学习Java中的日志系统设计与优化
|
4月前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
34 0
|
4月前
|
XML Java 程序员
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
52 0
|
4月前
|
XML Java 程序员
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
一篇文章讲明白Log日志框架的学习五.正确使用日志的10个技巧(转载)
34 0
下一篇
无影云桌面