Linux日志管理基础

本文介绍了Linux下日志管理的基础,包括CentOS5和6以后版本的变化,重点讲解了rsyslog服务的配置和管理,如何使用rsyslog将ssh服务日志定向到自定义文件,以及CentOS7后的journalctl工具。还探讨了使用MySQL集中存储日志数据,并提及了LogAnalyzer作为日志展示的解决方案。
摘要由CSDN通过智能技术生成

一.Linux 下的日志服务简介

1.1 CentOS5 之前的版本

centos5 之前的版本使用系统和内核日志分离的格式记录日志
syslogd:该服务专门用于记录系统日志(system application logs)
klogd: 该服务专门用于记录内核日志(linux kernel logs)
centos5 之前事件的记录格式
日期 时间 主机 进程[PID]: 事件内容
C/S 架构: 通过 TCP 或者 UDP 协议的服务完成日志记录和传输,
可以将分布在不同主机的日志实现集中管理

1.2 CentOS6 以后的版本

centos6 以后的版本将内核日志和系统日志合并为一个,统一使用 rsyslog
服务管理日志。

rsyslog 服务有以下特点:
多线程
支持多种协议: DUP,TCP,SSL,TLS,RELP
可以借助多种数据库存储日志: MySQL,PGSQL,Oracle
使用强大的过滤器过滤日志的任何内容
还可以自定义输出格式

ELK–另一种日志收集和处理的架构

  • ELK:由 Elasticsearch, Logstash, Kibana 三个软件组成,有以下特点
    非关系型分布式数据库
    基于 apache 软件基金会 jakarta 项目组的项目 lucene
    Elasticsearch 是个开源分布式搜索引擎,可以处理大规模日志
    数据,比如:Nginx、Tomcat、系统日志等功能
    Logstash 对日志进行收集、分析,过滤,并将其存储供以后使用
    Kibana 可以提供的日志分析友好的 Web 界面

ELK 和 LAMP 类似,三个开源软件的组合可以让日志管理变得极其便利和直观,
前提了解各个软件的特点和用法,有机的组合。

二.使用 rsyslog 服务管理系统日志

2.1 rsyslog 管理日志涉及的俗语

facility:设施,从功能或程序上对日志进行归类
auth
authpriv
cron
daemon
ftp
kern
lpr
mail
news
security(auth)
user
uucp
local0-local7
syslog

local0-local7: 可以用户自定义的日志类型

Priority 优先级别,下面的优先级别从左到右从低到高排序
debug-->info-->notice-->warn(warning)-->err(error)-->crit(critical)-->alert--> emerg(panic)
  • 参看帮助: man syslog,man logger

2.2 rsyslog 相关文件

rsyslog 相关文件
程序包: rsyslog
主程序: /usr/sbin/rsyslogd
CentOS 6: /etc/rc.d/init.d/rsyslog {start|stop|restart|status}
CentOS 7|8: /usr/lib/systemd/system/rsyslog.service
配置文件: /etc/rsyslog.conf,/etc/rsyslog.d/_.conf
库文件: /lib64/rsyslog/_.so

2.3 rsyslog 配置文件

2.3.1 配置文件格式

rsyslog 配置文件格式由三部分组成
MODULES: 相关的模块配置
GLOBAL DIRECTIVES: 全局配置
RULES: 日志记录相关的规则配置
RULES 规则配置格式
facility.priority; facility.prioriry... target
facility 日志类型·
priority 日志
target 目标,表示日志存放的文件路径

facility 格式

*                          # *号表示所有类型的日志
faciluty1,facility2,...    # 多个类型的日志使用逗号分隔

priority 格式

*:         所有级别
none:     没有级别,即不记录
PRIORITY: 指定级别(含)以上的所有级别
=PRIORITY:仅记录指定级别的日志信息

target 格式

文件路径: 通常在/var/log/,文件路径前的-表示异步写入
用户:     将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道:     | COMMAND,转发给其它命令处理
  • 如:
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

上面例子表示记录优先级在info及以上的日志到文件/var/log/messages
日志优先级别 none 为无优先级,即表示不记录 mail,authpriv 和
cron 类型的日志

2.3.2 通常的日志格式

  • 由于日志的多样性,linux 下记录日志的文件很多,记录的基本格式如下:
    事件产生的日期和时间 主机 进程(PID): 事件内容
常见的日志文件有
/var/log/secure : 系统安装日志,文本格式,应周期性分析
/var/log/btmp : 当前系统上,用户的失败尝试登录相关的日
志信息,二进制格式,lastb 命令进行查看
/var/log/wtmp : 当前系统上,用户正常登录系统的相关日志
信息,二进制格式,last 命令可以查看
/var/log/lastlog : 每一个用户最近一次的登录信息,
二进制格式,lastlog 命令可以查看
/var/log/dmesg : CentOS7 之前版本系统引导过程
中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令 dmesg 查看,
可持续记录硬件变化的情况
/var/log/boot.log 系统服务启动的相关信息,文本格式
/var/log/messages : 系统中大部分的信息
/var/log/anaconda : anaconda 的日志
  • 范例:日志文件格式
[root@centos8 ~]#tail /var/log/messages
Nov 12 08:34:18 centos8 dnf[14114]: Metadata cache created.
Nov 12 08:34:18 centos8 systemd[1]: Started dnf makecache.
Nov 12 09:35:14 centos8 systemd[1]: Starting dnf makecache...
Nov 12 09:35:14 centos8 dnf[14249]: Metadata cache refreshed recently.
Nov 12 09:35:14 centos8 systemd[1]: Started dnf makecache.
Nov 12 10:21:22 centos8 systemd[1]: Starting man-db-cache-update.service...
Nov 12 10:21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值