码迷,mamicode.com
首页 > 其他好文 > 详细

CentOS下的日志管理

时间:2021-02-27 13:03:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:global   分析   facility   报警   lang   存放位置   日期   拍错   不清楚   

日志进程rsyslog

httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志

Rsyslog 是处理系统相关日志的进程

处理日志的进程 rsyslog

rsyslog可以处理绝大部分日志记录,比如系统操作有关信息,如登录信息,程序的启动关闭信息

[root@CatdeXin-PC ~]# ps -aux | grep rsyslog
root       1297  0.0  0.3 222764  7292 ?        Ssl  2月21   0:07 /usr/sbin/rsyslogd -n

rsyslogd = rsyslog deamon(守护进程)

常见的日志文件(系统进程应用程序)

/var/log/目录是系统绝大多数日志的存放位置

/var/log/messages 	# 系统主日志文件
/var/log/secure 	# 认证,安全,登录相关日志 
/var/log/cron 		# crond,at计划任务进程产生的日志
/var/log/dmesg 		# 系统启动相关进程
/var/log/yum.log	# yum相关日志

tail /var/log/messages 		# 查看最新日志
tail -f /var/log/messages 	# 动态查看最新日志 (tail -f 可以简写为 tailf)

-------
# 了解内容
/var/log/audit/audit.log 	# 系统审计日志
/var/log/mysqld.log 		# MySQL日志
/var/log/xferlog 			# 和访问FTP服务器相关日志
/var/log/wtmp 				# 当前登录的用户(快捷命令: w)
/var/log/btmp 				# 最近登录的用户(快捷命令: last)
/var/log/lastlog 			# 所用用户的登录情况(快捷命令: lastlog)

rsyslogd配置

rsyslogd软件是默认被安装的状态 如果你的系统rsyslogd有问题 可以尝试重新安装

yum install rsyslog logrotate

启动程序

systemctl start rsyslog.service

相关文件

[root@CatdeXin-PC ~]# rpm -q rsyslog
rsyslog-8.24.0-55.el7.x86_64
[root@CatdeXin-PC ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog

# -q 查询版本号
# -c 配置文件 config 只能放在q后面使用

/etc/rsyslog.conf # rsyslog主配置文件(关键)
/etc/sysconfig/rsyslog # rsyslogd相关文件,定义级别(了解)
/etc/logrotate.d/syslog # 和日志轮转(切割)相关(任务二)

主配置文件

vim /etc/rsyslog.conf 告诉rsyslog进程什么日志,应该存放在哪里

主配置文件分为三大段

  • MODULES模块

  • GLOBAL DIRECTIVES全局指令

  • RULES规则

    • rules 即规则,是一套生成日志 以及存储日志的策略

    • 规则由设备 + 级别 + 存放位置组成

    • 存储

      # Rules由设备,级别,存放位置(Facility.Level LogFilePath)组成 *代表所有
      authpriv.*          /var/log/secure(认证设备)
      mail.*     			-/var/log/maillog
      cron.*    			/var/log/cron
      
      

多种规则 ; 是增加条件

*.info;mail.none;authpriv.none;cron.none   /var/log/messages
# mail.none ---》 none 是排除的意思 不降mail的日志信息写入该文件
```

Facility&Level

系统会将不同软件归属于几种类型的软件,然后集中存放日志

技术图片

Facility设备

  • facility

    • 是系统对某种类型APP事件的定义,如AUTHPRIV是安全事件,CRON是计划任务事件,用来收集同类程序日志
    • man 3 syslog
  • 设备类型

    # 了解内容
    LOG_SYSLOG						# syslogd自身产生的日志
    LOG_AUTHPRIV					# 安全认证
    LOG_CRON						# 调度程序(cron and at)
    LOG_MAIL						# 邮件系统(mail subsystem)
    LOG_USER()						# 用户相关
    LOG_DAEMON						# 后台进程
    LOG_FTP							# ftp文件服务器
    LOG_KERN						# 内核设备
    LOG_LPR							# 打印机相关设备
    LOG_LOCAL0 through LOG_LOCAL7	# 用户自定义设备
    
  • 程序类型示例

    • 关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备,如ssh程序,安全类设备,这一点由开发者定义

level级别

LOG_EMERG		# 紧急,致命,服务无法继续运行,如配置文件缺失丢失
LOG_ALERT		# 报警,需要立即处理,如磁盘空间使用95%
LOG_CRIT		# 致命行为
LOG_ERR			# 错误行为
LOG_WARNING		# 警告信息
LOG_NOTICE		# 普通 重要的标准信息
LOG_INFO		# 标准信息
LOG_DEBUG		# 调试信息,拍错所需,一般不建议使用

修改Rsyslog RULES配置

# 修改配置文件时 备份一下原有的配置 最好在加一下注释
# authpriv.*   /var/log/secure
# 2020-12-24-nayue-testing
authpriv.*   /var/log/test

# 修改了配置文件之后 如何让程序重新加载配置文件呢 这里有三种方式

# 重启系统  --> 服务器不可以随意重启 该改法不允许使用
# 重启进程  --> 重启进程的过程中会漏掉一些日志 不建议使用
#     > systemctl restart rsyslogd
# 重新加载文件 --> 推荐使用方法 在不结束进程的前提下 重新加载配置文件
# 	  > kill -1 ProcessID

[root@CatdeXin-PC ~]# ps -aux | grep rsyslogd
root       1204  0.0  0.3 216400  6568 ?        Ssl  2月23   0:10 /usr/sbin/rsyslogd -n
root      64362  0.0  0.0 112828   980 pts/0    S+   09:43   0:00 grep --color=auto rsyslogd
[root@CatdeXin-PC ~]# kill -1 1204

# 修改配置之后无法生效 可能有两种原因
#	> 没有日志产生 所以没有文件产生
#	> 配置信息没有装载成功 

日志轮转logrotate

    日志记录了程序运行的信息,通过日志可以分析用户行为,记录运行轨迹,查找程序问题。但是磁盘是有限的,日志轮转就像飞机里的黑匣子,记录信息再重要也只能记录最后一段时间发生的事,为了节省空间和整理方便,日志文件经常按时间或大小等维度分成多份,删除时间久远的日志文件

主文件夹

/etc/logrotate.conf (决定每个日志文件如何轮转)
/etc/logrotate.d/* (子配置文件 自定义 方便管理)

# 程序的运行需要主配置文件 配置的时候建议修改子配置文件 

主配置文件降价

/etc/logrotate.conf

# 通用配置
weekly						# 按周轮转
rotate 4					# 保留4份日志文件
create						# 轮转后创建新文件
dateext						# 使用日期作为后缀
#compress					# 是否压缩
include /etc/logrotate.d	# 包含该目录下的子配置文件 启动轮转时 也去该目录读一下配置文件

# 专有配置
/var/log/wtmp {				# 对某日志文件设置轮转的方法
    monthly					# 每月一次
    create 0664 root utmp	# 轮转后创建新文件,并设置权限
        minsize 1M			# 最小达到1M才轮转 monthly and minsize
    rotate 1				# 保留一份
}
/var/log/btmp {
    missingok				# 丢失不提示
    monthly
    create 0600 root utmp
    rotate 1
}

# 没有针对配置的程序 按照通用配置来执行

YUM日志轮转配置示例

/etc/logrotate.d/yum

/var/log/yum.log {
    missingok		# 丢失不提示 不执行
    notifempty		# 如果日志文件为空,不做rotate
    maxsize 30k		# 最大30k
    # yearly		# 一年一轮转
    # daily			# 天轮转
    create 0600 root root
}

# 注释掉轮转时间 将停止时间轮转

扩展

不清楚有什么用

# 调用系统中的logrotate工具 手动读取配置 手动轮转
/usr/sbin/logrotate /etc/logrotate.conf

# 调用系统中的logrotate工具 按照logrotate.status 执行logrotate.conf配置
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

修改系统时间

# data 指令可以查看当前时间 也可以修改系统时间

[root@CatdeXin-PC ~]# date
2021年 02月 24日 星期三 15:12:17 CST
[root@CatdeXin-PC ~]# date 02280100
2021年 02月 28日 星期日 01:00:00 CST

CentOS下的日志管理

标签:global   分析   facility   报警   lang   存放位置   日期   拍错   不清楚   

原文地址:https://www.cnblogs.com/CatdeXin/p/14452689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!