日志

日志服务管理

在现实生活中,记录日志也非常重要,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用日志记录的内容包括:

  • 历史事件:时间,地点,人物,事件
  • 日志级别:事件的关键性程度,Loglevel

sysklogd系统日志服务

CentOS 5 之前版本采用的日志管理系统服务

  • syslogd: system application 记录应用日志
  • klogd: linux kernel 记录内核日志

事件记录格式:

日期时间 主机 进程[pid]: 事件内容

C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理

rsyslog系统日志软件帮助管理日志

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。

http://www.rsyslog.com/
官网

rsyslog 特性

  • 多线程

  • UDP, TCP, SSL, TLS, RELP

  • MySQL, PGSQL, Oracle实现日志存储

  • 强大的过滤器,可实现过滤记录日志信息中任意部分

  • 自定义输出格式 可以日志

  • 适用于企业级

    [root@localhost ~]#rpm -qi rsyslog   服务器 
    

在这里插入图片描述

系统日志术语

  • facility:设施,从功能或程序上对日志进行归类

    #内置分类
    auth(验证), authpriv, cron(定时任务), daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, syslog
    #自定义的分类
    local0-local7
    
  • Priority 优先级别,从低到高排序

debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

日志等级

等级名称说 明
debug (LOG_DEBUG)一般的调试信息说明
info (LOG_INFO)基本的通知信息
notice (LOG_NOTICE)普通信息,但是有一定的重要性
warning(LOG_WARNING)警吿信息,但是还不会影响到服务或系统的运行
error(LOG_ERR)错误信息, 一般达到err等级的信息已经可以影响到服务成系统的运行了
crit (LOG_CRIT)临界状况信思,比err等级还要严®
alert (LOG_ALERT)状态信息,比crit等级还要严重,必须立即采取行动
emerg (LOG_EMERG)疼痛等级信息,系统已经无法使用了
*代表所有日志等级。比如,“authpriv.*”代表amhpriv认证信息服务产生的日志,所有的日志等级都记录

服务名称

服务名称说 明
auth(LOG AUTH)安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron (LOG_CRON)系统定时任务cront和at产生的日志
daemon (LOG_DAEMON)与各个守护进程相关的曰志
ftp (LOG_FTP)ftp守护进程产生的曰志
kern(LOG_KERN)内核产生的曰志(不是用户进程产生的)
Iocal0-local7 (LOG_LOCAL0-7)为本地使用预留的服务 某软件 无记录日志的功能,他又支持rsyslog 可以使用 此项来 定义日志
lpr (LOG_LPR)打印产生的日志
mail (LOG_MAIL)邮件收发信息
news (LOG_NEWS)与新闻服务器相关的日志
syslog (LOG_SYSLOG)存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了 syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER)用户等级类别的日志信息
uucp (LOG_UUCP>uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来 也常用在新闻组服务中

inode号是有限资源,如果消耗完毕,无法继续新建文件,解决方法删除无用文件

inode 号在同一设备中是唯一的在不同设备中inode号是可以相同的

1.有些软件程序是没有单独的日志服务,我们可以利用rsyslog软件给一些重要的程序生成独立的日志文件

ssh 远程登陆程序的日志独立出来

ssh 软件默认的日志在 /var/log/secure 是很多程序一起使用,并不是独立的

配置文件中的rules

通式:

服务程序.记录的日志级别 日志文件的绝对路径

local0 - local7 给你自定义使用

local0 - local6

一个程序想利用rsyslog 软件生成日志,手心的和rsyslog兼容

ssh程序配置的文件

/etc/ssh/sshd_config

原来ssh   日志     在/var/log/secure
将 ssh服务的日志 文件 独立出来


[root@localhost ~]#tail -f /var/log/secure
#查看ssh服务的日志位置

[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定义
32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6

[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
local6.*                                                /opt/ssh.log

[root@localhost log]#systemctl restart rsyslog.service sshd
#重启服务

ssh  自己的ip地址

rsyslog  统一收集日志

2.搭建日志服务器

服务程序启动不了

#开启日志的远程传输功能在192.168.91.100    10  - 20 台左右的服务器
[root@localhost ~]#rpm -ql rsyslog 
/usr/lib64/rsyslog/imtcp.so
/usr/lib64/rsyslog/imudp.so
[root@localhost ~]#ss -ntap |grep 514
[root@localhost ~]#systemctl   stop  firewalld
[root@localhost ~]#setenforce  0  
[root@localhost ~]#vim /etc/rsyslog.conf 
#打开19 20 行    两端都要开
19 #$ModLoad imtcp
20 #$InputTCPServerRun 514
[root@localhost ~]#ss -ntap |grep 514
#查看514端口是否打开

#在192.168.91.101 上设置发送到哪台主机去
[root@centos7-2 ~]#vim /etc/rsyslog.conf 
#修改配置文件
54 *.info;mail.none;authpriv.none;cron.none                /var/log/messages
#复制54行                                                   改成ip地址
55 *.info;mail.none;authpriv.none;cron.none                @@192.168.91.100
                                                           #两个@ 代表使用  tcp  一个代表udp
如果修改 的是udp  @192.168.91.100
如果要想指定端口  @192.168.91.100:端口号

[root@centos7-2 ~]#logger "this is test log from 192.168.91.101 22"
#测试,写日志进去

systemctl status 服务名称

日志管理工具journalctl

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)

日志的配置文件:

/etc/systemd/journald.conf

journalctl命令格式

journalctl [OPTIONS...] [MATCHES...]

journalctl -xe

-x提示信息
-e显示到末尾
–no-pager自动换行

在这里插入图片描述

分割日志

1.写脚本 制定crontab 计划任务每天执行

2.logrorate centos7 自带的一个

logrotate 配置

软件包:logrotate

相关文件

  • 计划任务:/etc/cron.daily/logrotate
  • 程序文件:/usr/sbin/logrotate
  • 配置文件: /etc/logrotate.conf
  • 日志文件:/var/lib/logrotate/logrotate.status

配置文件主要参数如下:

[root@localhost ~]#vim /etc/logrotate.conf 

# see "man logrotate" for details
# rotate log files weekly
weekly 
#一周生成一个新的日志文件

# keep 4 weeks worth of backlogs
rotate 4
#只保留最近的4个文件


# use date as a suffix of the rotated file
dateext
# 添加一个日期后缀



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值