Centos7#基础服务之Log日志服务

日志服务

一、日志服务log (rsyslog 514)

1、日志重要性
  日志分类:系统日志,进程日志,应用程序日志
  记录日志的用处: 排错,追溯事件,统计流量,审计安全行为

2、常见系统日志 /var/log
  常见的日志文件(系统、进程、应用程序)
  tailf /var/log/messages //动态查看系统主日志文件的尾部
  tailf /var/log/secure   //动态查看系统认证、安全日志文件的尾部
  tailf /var/log/cron   //动态查看计划任务日志文件的尾部
  tailf /var/log/yum.log //动态查看yum日志文件的尾部
  二进制日志(直接查看是乱码,通过前面对应命令查看)
  w //当前登录的用户即: /var/log/wtmp日志
  last //最近登录的用户 /var/log/btmp
  lastlog //所有用户的登录情况 /var/log/lastlog
  进程以自己的方式去记录日志
  tail /var/log/mysqld.log //MySQL进程自己记录的日志
  tail /var/log/httpd/access_log //Apache自己记录的日志
  tail /var/log/xferlog //和访问FTP服务器相关
  
3、日志的配置文件分析
  日志存放位置: 存放本地 /var/log
  日志服务启动: systemctl start rsyslog
  日志配置文件: /etc/rsyslog.conf
  日志服务默认开机自启

自定义日志:自己定义日志的名字和位置
  查看日志文件是开启:systemctl status rsyslog
  vim /etc/rsyslog.conf → 日志的主配置文件 include 包含
  /etc/rsyslog.d/*.conf → 日志的子配置文件

日志对象.日志级别 日志的存储位置
  facility.priority logpath
  facility 英 [fəˈsɪləti] 美 [fəˈsɪləti] n.设施;设(日志对象)
  priority 英 [praɪˈɒrəti] 美 [praɪˈɔːrəti] n.优先(日志级别)

日志对象和日志级别可以在man 5 rsyslog.conf 搜索/mail查看
  日志对象:
  authpriv(认证安全) cron(计划任务) kern(内核) mail
  local0 through local7(自己定义的日志文件)
  日志级别
  级别低,越详细,低的包含高的日志级别
  notice:相当与提示
  warn/warning:警告,错误
  error/err:错误,严重错误
  *全部级别

========================================================

实验操作一:将内核日志文件自定义到/var/log/kern.log

在rsyslog.conf中修改日志规则RULES模块
  [root@rsyslog-server ~]# vim /etc/rsyslog.conf
  日志对象.日志级别 日志存储路径
  在RULES模块中添加:kern.* /var/log/kern.log
  [root@rsyslog-server ~]# systemctl restart rsyslog
  日志文件也可以不创建,有日志信息的时候会自动创建

=========================================================

实验操作二、把ssh的日志定义到别的目录下

local0-local7日志设备的使用: ssh的配置文件:/etc/ssh/sshd_config
  服务修改日志记录的facility(日志对象),rsyslog修改相关服务facility的facility.priority logpath
  
  ①、修改sshd服务主配置文件:
  [root@rsyslog-server ~]# vim /etc/ssh/sshd_config
  # Logging
  #SyslogFacility AUTH
  SyslogFacility AUTHPRIV
  SyslogFacility AUTHPRIV改为 SyslogFacility local2(local0-local7)
  SyslogFacility local2 //设置ssh的日志定义由local2设备来记录
  [root@rsyslog-server ~]# systemctl restart sshd
  ②、在rsyslog的主配置文件里加上
  local2.* /var/log/ssh
  [root@rsyslog-server ~]# vim /etc/rsyslog.conf
  [root@rsyslog-server ~]# systemctl restart rsyslog
  服务产生日志之后就会在制定的日志文件位置产生相应的日志记录

==========================================================

实验操作三:远程日志,发送机与接收机

远程日志:
  两台机器:一台接收日志、一台发送日志
  产生日志服务器指定收集日志服务器IP,收集日志服务器打开日志接收功能

产生日志服务器:
[root@log-sending ~]# vim /etc/rsyslog.conf

*.* @10.11.67.31                //注意@:使用udp  @@:使用tcp

第一个*可以改为别的,设定只接受指定服务日志

kern.* @10.11.67.31 
local0.* @10.11.67.31 

[root@log-sending ~]# systemctl restart rsyslog

日志收集服务器
  [root@log-receive ~]# vim /etc/rsyslog.conf 修改配置文件打开日志接收功能
  MODULES模块

  打开@udp接收功能
  # Provides UDP syslog reception
  $ModLoad imudp
  $UDPServerRun 514

  打开@@tcp接收功能
  # Provides TCP syslog reception
  $ModLoad imtcp
  $InputTCPServerRun 514

[root@log-receive ~]# systemctl restart rsyslog
  [root@log-receive ~]# tailf /var/log/messages    //通过系统主日志文件查看远程接收

如果想在日志接收机上自定义远程日志的存储位置
  [root@log-receive ~]# vim /etc/rsyslog.conf

syslog.* /mnt/receive.log

[root@log-receive ~]# systemctl restart rsyslog
  [root@log-receive ~]# tailf /mnt/receive.log

==================================================

二、logrotate日志轮转(切割)

①、如果没有日志轮转,日志文件会越来越大,最后导致日志打不开或者是打开时间过长
  ②、将丢弃系统中最旧的日志文件,以节省空间
  ③、 logrotate本身不是系统进程,即日志的轮转不会自动执行,它是通过写到相应的配置文件中使用计划任务crond每天执行
  ④、对日志的切割,你只需要给他定义一个规则

[root@logrotate ~]# rpm -qa |grep logrotate
  logrotate-3.7.8-16.el6.x86_64

logrotate是一个异类,安装即可用
  系统默认都是安装好了的,没有安装就安装一下,并且这个程序安装后不用开启服务,修改后写到配置文件后会自动执行

logrotate 配置文件:主配置文件决定全局日志轮转规则,子配置文件决定特定服务(rpm安装的程序)的日志轮转规则
  服务日志的轮转规则文件是在安装rpm包时就自动提供的,无需人为手动编写,只有自己创建的日志文件才需要自己编写日志轮转规则文件

logrotate主配置文件:[root@logrotate ~]# vim /etc/logrotate.conf
  logrotate子配置文件:[root@logrotate ~]# ls /etc/logrotate.d/
  chrony ppp wpa_supplicant syslog yum httpd

全局配置

hourly、daily、weekly、monthly、yearly //轮转的周期
  rotate 4 //保留4份
  create //轮转后创建新文件 create mode owner group 创建新文件、权限、属主、属组
  dateext //使用日期作为后缀 
  compress //是否压缩
  minsize 1M //最小达到1M才轮转,即到了规定的时间未达到大小不会轮转
  maxsize 100M //最大达到100M才轮状
  missingok //丢失不提示
  notifempty //如果为空,不轮转

可以模仿/etc/logrotate.d/目录下面已经存在的日志切割配置格式,进行配置自己的日志文件
  [root@logrotate ~]# vim /etc/logrotate.d/ssh
/mnt/ssh.log {
  dateext
  rotate 4
  missingok
  notifempty
  size 30k
  yearly
  create 0600 root root
}
  [root@logrotate ~]# logrotate -f /etc/logrotate.conf
  [root@logrotate ~]# ls /mnt
  ssh.log ssh.log-20201026

说明:
  当切割之后创建新文件,新文件有新的inode number
  如果希望进程如rsyslog、nginx进程会把新的日志写入新日志文件中,应该在日志切割后,告诉一下rsyslog、nginx进程reload 或 信号(1 or HUP)
  postrotate
    kill -1 进程pid
  endscript
  在这里插入图片描述

[root@logrotate ~]# logrotate -f /etc/logrotate.conf 强制立即执行,检验设置是否成功

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值