linux日志系统

简介: linux软件syslogsyslog-ng(next generation)日志系统:syslog负责统一记录日志syslog服务:syslogd:系统,非内核产生的信息。
linux

软件

  • syslog
  • syslog-ng(next generation)

日志系统:syslog

负责统一记录日志

  • syslog服务:
  • syslogd:系统,非内核产生的信息。
  • klogd:内核,专门负责记录内核产生的日志信息。
  • kernel-->物理终端(/dev/console )-->/var/log/dmsg klog
  • dmesg dmesg - print or control the kernel ring buffer
    /sbin/init ---syslogd

日志的轮转:日志切割

messge -->message1--->message2

日志轮转条件 /var/log/messages:系统标准错误日志信息。非内核产生引导信息,各子系统产生的信息。

  • logrotate:

    logrotate - rotates, compresses, and mails system logs
    /etc/cron.daily/logrotate
    /etc/logrotate.conf
    全局和局部变量
    /etc/logrotate.d/*

查看帮助文档

man logrotate 
 /var/lib/logrotate.status

 /var/log/maillog:邮件系统产生的日志信息.
 /var/log/secure:系统认证,安全日志。
 chkconfig --list rsyslog
 servcie rsyslog status

配置文件

信息的详细程度:日志级别
定义不同日志信息

子系统:facility:设施
动作:action

配置文件定义格式:
facility.prioriity    action 
facility,可以理解为日志的来源或设备目前常用的facility有以下几种:
auth           认证相关的
authpriv         权限,授权相关的
cron            任务计划相关的
daemon            守护进程相关的
kern            内核相关的
lpr              打印相关的
mail           邮件相关的
mark            标记相关的
news             新闻下相关的
security         安全相关的与auth类似
syslog              syslog自己的
user              用户相关的
uucp              unix to unix cp 相关的
local0到local7   用户自定义
*                表示所有的facility

priority (log level) 日志的级别,一般有以下几种级别(从高到低)
debug         #程序或系统的调试信息
info           #一般信息
notice         #不影响正常功能,需要注意的信息
warning/warn      #可能影响系统正常功能,需要提醒用户的重要事件
err/error          错误信息 
crit              比较严重
alert            必须马上处理
emerg/panic        会导致系统不可用
*               表示所有的日志级别
none         跟*相反,表示啥也没有
注意:级别越低,信息越详细,产生的信息量越多。
action(动作)日志的记录位置
系统上绝对路径     #普通文件,如/var/log/xxx
|             #管道  通过管道送给其他命令处理
终端          #终端   如/dev/console
@HOST        #远程主机  如:@10.0.0.10
用户           #系统用户   如root
*               #登录到系统上的所有用户,一般emerg级别的日志是这样定义的。

日志服务器:

优点

 1.便于管理
 2.安全性提高
 3.备份    

定义格式例子:

mail.info   /var/log/mail.log  #表示将mail相关的,级别为info及info以上级别的的信息记录到/var/log/mail.log文件中
auth.=info   @10.0.0.1  #表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去
user.!=error      #与user.error相反
*.info        #表示记录所有日志的info信息
mail.*            #表示记录mail相关的所有级别的信息
*.*         #所有
cron.info;mail.info     #多个日志来源用“;”隔开
cron,mail.info     #与cron.info;mail.info一个意思
mail.*;mail.!=info     #表示记录mail相关的所有级别的信息,但是不包括info级别的。

vim /etc/rsyslog.conf
    /etc/rsyslog.
*.info;mail.none;authpriv.none;cron.none                /var/log/messages  #除了。。以外都记录
mail.*                             /var/log/secure  权限为 600                -/var/log/maillog   注:-:表示异步写入,其他的是同步写入。
/var/boot.log
syslog默认记录的日志格式有四个字段,时间标签   主机  子系统名称   消息
cron.info    /var/log/ 
service rsyslog restart
service rsyslog  reload
/etc/init.d/rsyslog
/etc/sysconfig/rsyslog  脚本的配置文件
SYSLOGD_OPTIONS="-c 5"  加上-r 重启服务即可
-r :允许接受外来的日志,

查看帮助

man 8 rsyslogd

日志相关的一些命令

dmsg
lastlog
last
lastb
sar
logger
....

赘述两句

以上内容是在 centos, redhat下面的配置和使用,我下面贴出ubuntu发行版的配置以及参数等

日志配置

 ubuntu@youdi >/etc > vim rsyslog.conf
 ubuntu@youdi > /etc > tree rsyslog.d
rsyslog.d
├── 20-ufw.conf
├── 21-cloudinit.conf
└── 50-default.conf  // 不同日记级别产生的日志保存在哪里等一些配置都是在这个文件中

0 directories, 3 files

保存日志相关的文件

ubuntu@youdi  /var/log  tree -L 1                                                                                                                                  
├── alternatives.log
├── alternatives.log.1
├── alternatives.log.2.gz
├── alternatives.log.3.gz
├── alternatives.log.4.gz
├── apt
├── auth.log
├── auth.log.1
├── auth.log.2.gz
├── auth.log.3.gz
├── auth.log.4.gz
├── btmp
├── btmp.1
├── cloud-init.log
├── cloud-init-output.log
├── dist-upgrade
├── dpkg.log
├── dpkg.log.1
├── dpkg.log.2.gz
├── dpkg.log.3.gz
├── dpkg.log.4.gz
├── fontconfig.log
├── fsck
├── kern.log
├── kern.log.1
├── kern.log.2.gz
├── kern.log.3.gz
├── kern.log.4.gz
├── lastlog
├── lxd
├── mysql
├── nginx
├── redis
├── shadowsocks.log
├── supervisor
├── syslog
├── syslog.1
├── syslog.2.gz
├── syslog.3.gz
├── syslog.4.gz
├── syslog.5.gz
├── syslog.6.gz
├── syslog.7.gz
├── unattended-upgrades
├── wtmp
└── wtmp.1

日志轮转的配置


ubuntu@youdi  /etc  vim logrotate.conf                                                                                                                                                                         
 ubuntu@youdi  /etc  tree logrotate.d                                                                                                                                                                           
logrotate.d
├── apport
├── apt
├── dpkg
├── lxd
├── mysql-server
├── nginx
├── redis-sentinel
├── redis-server
├── rsyslog
├── ufw
└── unattended-upgrades

0 directories, 11 files
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
18天前
|
Linux 应用服务中间件 PHP
性能工具之linux常见日志统计分析命令
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的。
57 1
|
1月前
|
运维 监控 安全
在Linux系统中,认证日志
Linux系统中的认证日志对于安全监控和故障排查至关重要,常见的日志文件包括:`/var/log/auth.log`(Debian、Ubuntu)、`/var/log/secure`(RPM发行版)、`/var/log/lastlog`、`/var/log/faillog`、`/var/log/wtmp`和`/var/run/utmp`。这些文件记录登录尝试、失败、当前用户等信息。日志管理可通过文本编辑器、日志查看工具或`rsyslog`、`syslog-ng`等工具进行。注意日志位置可能因发行版和配置差异而变化,应确保日志文件的安全访问,并定期轮转归档以保护敏感信息和节省空间。
26 3
|
1月前
|
Linux
linux定位日志文件
在Linux中查找名为"log.txt"的日志文件,可使用`find`命令从根目录开始搜索:`find / -name log.txt 2>/dev/null`。此命令会忽略错误信息,确保只显示找到的文件路径。
18 1
|
1月前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
243 1
|
2月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
109 0
|
2月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
32 0
|
2月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
56 0
|
1月前
|
存储 监控 安全
Linux系统日志
【4月更文挑战第6天】Linux系统日志,关键用于记录系统状态和事件,包括内核、系统、安全和应用日志,助力管理员诊断问题、确保系统正常运行。日志管理涉及收集、分析、备份等,常用工具如rsyslog、systemd-journal和logrotate(用于日志轮转)。重视日志文件的存储管理,防止空间占用过多。
20 1
Linux系统日志
|
5天前
|
存储 监控 安全
Linux ContOS7 日志管理(rsyslog)
Linux ContOS7 日志管理(rsyslog)
|
26天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF