(服务运维)日志服务管理rsyslog和journalctl工具

Posted 林炜玮_51CTO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(服务运维)日志服务管理rsyslog和journalctl工具相关的知识,希望对你有一定的参考价值。

rsyslog特性

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • mysql, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式
  • 适用于企业级中继链

(服务运维)日志服务管理rsyslog和journalctl工具_rsyslog

rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成

GLOBAL DIRECTIVES:

  • 全局配置MODULES:
  • 相关模块配置GLOBAL DIRECTIVES:
  • 全局配置RULES:日志记录相关的规则配置

通常的日志文件的格式:

日志文件有很多,如: /var/log/messages,cron,secure等,基本格式都是类似的。格式如下

事件产生的日期时间 主机 进程(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的日志

(服务运维)日志服务管理rsyslog和journalctl工具_日志文件_02

启用网络日志服务

启用网络日志服务功能,可以将多个远程主机的日志,发送到集中的日志服务器,方便统一管理。

(服务运维)日志服务管理rsyslog和journalctl工具_rsyslog_03

配置步骤

172.16.10.10(service)配置

(服务运维)日志服务管理rsyslog和journalctl工具_日志文件_04

 vim /etc/rsyslog.conf

(服务运维)日志服务管理rsyslog和journalctl工具_rsyslog_05

systemctl restart rsyslog.service   #重启服务,查看是否开启514端口

(服务运维)日志服务管理rsyslog和journalctl工具_journalctl_06

172.16.10.18(client)配置

vim /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none @172.16.10.10:514  #UDP

#如果是TCP传输

*.info;mail.none;authpriv.none;cron.none @@172.16.10.10:514  #TCP

(服务运维)日志服务管理rsyslog和journalctl工具_journalctl_07

systemctl restart rsyslog.service  #重启服务

由于日志的格式是时间+主机名+事件,为了日志易于识别,需要区分主机名

(服务运维)日志服务管理rsyslog和journalctl工具_日志文件_08

logger "this is a test log on 172.16.10.18"  #手动打印测试日志

(服务运维)日志服务管理rsyslog和journalctl工具_rsyslog_09

拓展玩法

利用mysql存储日志,利用loganalyzer图形化展示日志,利用logrotate日志转储或滚动

(服务运维)日志服务管理rsyslog和journalctl工具_journalctl_10

(服务运维)日志服务管理rsyslog和journalctl工具_journalctl_11

日志管理工具 journalctl

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用

journalctl一个命令,查看所有日志(内核日志和应用日志)。

命令格式:journalctl [OPTIONS...] [MATCHES...]


常用参数  

  • -a 正向显示所有
  • -r 反向显示所有
  • -e 分页显示,日志尾部默认显示1000行
  • -p 日志等级
  • -k 只看内核日志
  • -n 100 最新100条内容
  • _PID=1  查看指定进程日志

以上是关于(服务运维)日志服务管理rsyslog和journalctl工具的主要内容,如果未能解决你的问题,请参考以下文章

CentOS6.8下使用rsyslog+ldap部署日志服务器来实现日志收集

rsyslog+loganalyzer日志服务器部署记录

Nginx 日志分析

Nginx 日志分析

Linux基于rsyslog启用网络日志服务实现日志实时转储

Linux基础——rsyslog日志管理