linux日志系统

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
├── 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • macOS 安装 Docker

    前几天,docker入门是在aws的ubuntu机器上演示的,下面介绍如何在macOS安装Docker。 ? 系统要求 Docker for Mac 要求系统最...

    若与
  • redis用法分析redis基本介绍PHP操作redis服务器python使用redis总结

    redis基本介绍 redis也是一个内存非关系型数据库,它拥有memcache在数据存储上的全部优点,而且在memcache的基础上增加了数据持久性功能,re...

    若与
  • docker学习之使用镜像

    原文在此 ? 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像并运行。 从 Docker Regist...

    若与
  • 【高并发】redis队列缓存 + mysql 批量入库 + php离线整合

    需求背景:有个 调用统计日志存储和统计需求 ,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于 直接入库并发太高,可能会把mysql干垮 。

    猿哥
  • OpenStack日志大全

    日志路径: 服务 路径 认证服务(keystone) /var/log/keystone/keystone.log ...

    院长技术
  • MySQL源码解析之slow log实现机制

    Mysql slow log提供了一种方式对数据库中慢查询进行记录并且对日志进行输出,以便于我们定位服务器性能问题。我们可能会简单的把它理解为记录所有执行时间超...

    数据库架构之美
  • 理论探究篇-MySQL源码解析之slow log实现机制

    Mysql slow log提供了一种方式对数据库中慢查询进行记录并且对日志进行输出,以便于我们定位服务器性能问题。我们可能会简单的把它理解为记录所有执行时间超...

    数据库架构之美
  • SqlException:ConnectionTimeout Expired. The timeout period elapsed during the po

    linux系统部署.netcore程序后,访问某台sqlserver 2008 R2数据库

    HueiFeng
  • 活学活用 PostgreSQL 逻辑复制实现 I U D 历史记录

    PostgreSQL 本身没有这样的功能的,但这里有一个想法可以来通过逻辑复制的方法来模拟这样的功能。当然通过trigger 也是可以完成这样的功能,但是考虑到...

    AustinDatabases
  • 解锁竞赛新姿势-伪标签技术

    伪标签技术现在几乎在所有的Kaggle数据竞赛中都会被提到或者使用到,而且很多情况下都可以帮助选手拿到更好的分数,伪标签技术作为一种半监督的方法,其实在很久之前...

    linhw

扫码关注云+社区

领取腾讯云代金券