系统日志服务介绍

1.sysklogd 系统日志服务

syslogd: system  application 记录应用日志

klogd: linux  kernel  记录内核日志

事件记录格式:

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

C/S架构:通过TCP或UDP协议的服务完成日志传送,可以实现将不同主机的日志进行集中管理

 

2.rsyslog 系统日志服务

提供高性能,出色的安全性和模块化设计,可以接收来自各种来源的输入并将其转换,输出到不同的目的地

rsyslog特性:

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

3.ELK:

由Elasticsearch, Logstash, Kibana三个软件组成

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

 

日志优先级

日志 系统 架构 日志管理系统_配置文件

 

 

rsyslog配置文件

 

/etc/rsyslog.conf配置文件组成部分:vim  /etc/rsyslog.conf

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

 

日志文件的格式:

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

相关命令:tail  /var/log/messages

日志 系统 架构 日志管理系统_nginx_02

 

 

 

实际操作,将ssh服务的日志单独设置

1.查看ssh服务的日志位置:tail -f /var/log/secure

2.修改ssh配置文件:vim /etc/ssh/sshd_config

修改内容:

32 #SyslogFacility AUTHPRIV

33 SyslogFacility LOCAL6

local 0-7(可修改的范围为0-7)

3.修改rsyslog.conf文件:vim /etc/rsyslog.conf

修改内容:
添加自己的文件位置
 local6.*                                   /var/log/ssh.log

4.修改配置文件后需重启该服务:

systemctl  restart  rsyslog

systemctl  restart  ssh

日志 系统 架构 日志管理系统_日志 系统 架构_03

日志 系统 架构 日志管理系统_配置文件_04

日志 系统 架构 日志管理系统_配置文件_05

 

 

 

开启日志的远程传输功能

1.修改rsyslog.conf文件:vim /etc/rsyslog.conf

修改内容:

打开514端口

19 #$ModLoad imtcp
20 #$InputTCPServerRun 514

将“#”号删除即可

2.修改配置文件后需重启该服务:systemctl  restart  rsyslog.service

3.查看514端口是否打开:ss -ntap |grep 514

4.设置发送到主机

@主机IP地址(UDP协议传输)

@@主机地址(TCP协议传输)

5.重启服务:

systemctl restart rsyslog.service

6.关闭防火墙

systemctl stop firewalld.service

7.测试

日志 系统 架构 日志管理系统_日志 系统 架构_06

 

 

日志 系统 架构 日志管理系统_vim_07

 

 

日志 系统 架构 日志管理系统_配置文件_08

 

日志 系统 架构 日志管理系统_nginx_09

 

 

日志文件

  • /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的日志

 

示例:

失败登录信息:

日志 系统 架构 日志管理系统_nginx_10

 

每一个用户最近一次的登录信息:

日志 系统 架构 日志管理系统_nginx_11

 

 

日志管理工具journalctl

1、查看所有日志(默认情况下 ,只保存本次启动的日志)

journalctl

2、查看内核日志(不显示应用日志)

journalctl -k

3、查看系统本次启动的日志

journalctl -b

0

4、查看上一次启动的日志(需更改设置)

1

5、查看指定时间的日志

"2017-10-30 18:10:30"

"20 min ago"

journalctl --since yesterday

journalctl --since "2017-01-10" --until "2017-01-11 03:00"

journalctl --since 09:00 --until "1 hour ago"

6、显示尾部的最新10行日志

journalctl -n

7、显示尾部指定行数的日志

20

8、实时滚动显示最新日志

journalctl -f

9、查看指定服务的日志

journalctl /usr/lib/systemd/systemd

10、查看指定进程的日志

1

11、查看某个路径的脚本的日志

bin/bash

12、查看指定用户的日志

33 --since today

13、查看某个 Unit 的日志

journalctl -u nginx.service

journalctl -u nginx.service --since today

14、实时滚动显示某个 Unit 的最新日志

journalctl -u nginx.service -f

15、合并显示多个 Unit 的日志

journalctl -u nginx.service -u php-fpm.service --since today

16、以 JSON 格式(单行)输出

journalctl -b -u nginx.service -o json

17、以 JSON 格式(多行)输出,可读性更好

journalctl -b -u nginx.serviceqq -o json-pretty

18、显示日志占据的硬盘空间

journalctl --disk-usage

19、指定日志文件占据的最大空间

journalctl --vacuum-size=1G

20、指定日志文件保存多久

journalctl --vacuum-time=1years

21、日志默认分页输出,--no-pager 改为正常的标准输出

journalctl -b -u nginx.service --no-pager