您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

操作系统学习 认识Linux日志系统

时间:2020-08-04 11:05:59  来源:  作者:

一、系统日志

日志在所有应用系统中都占有极其重要的位置,本文主要介绍linux系统内核的日志,另外还介绍了一些日志分析工具。

1. 说明

看Linux系统信息日志主要的两种途径:

  • dmesg,用来检测和控制内核环缓冲。
  • /var/log 下的文件

2. dmesg

Linux将系统启动信息传到ring buffer中,内核产生的信息由printk()函数打印出来。printk()函数打出的信息用数字表示消息重要级别,高于一定级别会打印到屏幕。

sudo dmesg > message.txt

打印最近一次的信息

sudo dmesg | tail -f

Linux系统启动后,由/etc/init.d/sysklogd先后启动klogd,syslogd两个守护进程。

- klogd:kernel,记录内核相关的日志​ - syslogd:service,记录应用程序的日志

3. klogd

使用klogd读取内核信息有两种方式:

  1. syslog()函数
  2. 读取/proc/kmsg/得到内核printk()发出的信息。

klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log信息输出到/var/log/下的不同文件中.

4. 常用的系统日志文件

/var/log/boot.log

记录本次开机时的启动信息,包括内核检测硬件、各种内核支持的功能等。

/var/log/cron 计划任务的日志

/var/log/dmesg

系统启动时,内核检测过程中产生的信息。

/var/log/lastlog

记录账号最后一次登陆信息。

/var/log/maillog或/var/log/mail/*

邮件往来记录。

/var/log/messages

记录很多信息,系统有问题时的必查文件。

/var/log/secure

记录一些账号登陆信息,如pop3、ssh、telnet、ftp登陆信息。

/var/log/wtmp,/var/log/faillog

成功与失败登陆的记录。

/var/log/httpd/*,/var/log/samba/*

一些网络服务产生的日志。

5. syslogd

syslogd是一个分发器,它将接收到的所有日志按照/etc/syslog.conf的配置策略发送到这些日志应该去的地方,当然也包括从klogd接收到的日志。klogd首先接收内核的日志,然后将之发送给syslogd。syslog函数原型:

syslog(priority, "%s", string);

二、Rsyslog服务收集日志

1. Rsyslog服务说明

Rsyslog是Linux下强大而安全的日志处理系统。

Rsyslog可以单机运行,也可以C/S方式运行。

  • 单机模式下,日志信息发送到本机的Rsyslog服务中,Rsyslog服务将日志记录到本地存储中;
  • C/S模式下,服务端和客户端都启动Rsyslog进程,客户端向服务端指定的Rsyslog端口发送日志。

2. 在Deepin或Ubuntu系统上安装Rsyslog

# 安装
sudo apt install rsyslog
rsyslogd -v
# 查看状态
systemctl status rsyslog.service
# 重启
systemctl restart rsyslog.service
# 启动
systemctl start rsyslog.service
操作系统学习 认识Linux日志系统

 

3. rsyslog.service的配置文件

  • /etc/rsyslog.conf

2.3.1 配置C/S工作模式

服务端

配置文件:

vim /etc/rsyslog.conf

#################
#### MODULES ####
#################

# 开启UDP端口
module(load="imudp")
input(type="imudp" port="514")

# 开启TCP端口
module(load="imtcp")
input(type="imtcp" port="514")

# 可选配置--用于限制特定子网、IP等的访问
$AllowedSender TCP, 127.0.0.1, 10.10.10.0/8, *.xiem.com

服务器端要配置放行指定的端口号。

客户端

vim /etc/rsyslog.conf

$PreserveFQDN on                                      # 允许主机名保留FQDN


##Enable sending of logs over UDP add the following line:
# 配置使用UDP发送消息
*.* @服务器ip或域名:514                              # 添加远程RSYSLOG服务器


##Enable sending of logs over TCP add the following line:
# 配置使用TCP发送消息
*.* @@服务器ip或域名:514

# 配置当服务端不在线时的处理方式:进行本地缓存
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

2.3.2 查看日志

ls /var/log/rsyslog-client/

2.3.3 查看服务端监听的端口

netstat -4altunp | grep 514

三、logrotate 日志管理工具

1. logrotate说明

logrotate是一个Linux系统日志的管理工具。它可以切割、压缩等其他软件的日志文件软件。logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,其脚本是/etc/cron.daily/logrotate。Logrotate会调用配置文件/etc/logrotate.conf。可以在/etc/logrotate.d目录里放置自定义好的配置文件,用来覆盖Logrotate的缺省值。

2. centos使用logrotate切分Nginx日志示例:

yum -y install logrotate

查看配置文件位置:

rpm -ql logrotate

其中:

  • /etc/logrotate.conf logrotate的配置文件是
  • /etc/logrotate.d/ 是用于存储其他配置文件的目录

我们主要用它来切分nginx日志。

vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 7
missingok
notifempty
dateext
compress
sharedscripts
postrotate
    if [ -f /run/nginx.pid ]; then
        kill -USR1 `cat /run/nginx.pid`
    fi
endscript
}

其中 /var/log/nginx/*.log /run/nginx.pid要以 log位置和nginx.conf里 pid的实际位置为准。

  • 生产服务器 pid /var/run/nginx.pid;
  • 测试服务器 pid /run/nginx.pid

手工运行:

/usr/sbin/logrotate -f /etc/logrotate.d/nginx
/usr/sbin/logrotate -d -f /etc/logrotate.d/nginx

四、logwatch日志分析工具

logwatch 是一个Perl编写的开源日志分析器,可以对原始的日志文件进行解析并转换成结构化文档。

五、logger

在写bash时可以用来记录标准日志信息。

六、阿里云日志服务

阿里云日志服务给集中化日志管理提供了一个新的解决方案。其服务类似于ELK(Elasticsearch、Kibana 和 Logstash),支持多种数据数据的接入。

操作系统学习 认识Linux日志系统

 

使用此服务需要在客户机安装阿里的logtail客户端。支持正则表达式等多种查询方式,也支持API接入。



Tags:Linux日志   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最近发现点好玩的工具,迫不及待地想跟大家分享一下。大家平时都怎么查Linux日志呢?像我平时会用tail、head、cat、sed、more、less这些经典系统命令,或者awk这类三方数据过滤工...【详细内容】
2021-07-16  Tags: Linux日志  点击:(123)  评论:(0)  加入收藏
一、系统日志日志在所有应用系统中都占有极其重要的位置,本文主要介绍Linux系统内核的日志,另外还介绍了一些日志分析工具。1. 说明看Linux系统信息日志主要的两种途径: dmesg,...【详细内容】
2020-08-06  Tags: Linux日志  点击:(160)  评论:(0)  加入收藏
一、系统日志日志在所有应用系统中都占有极其重要的位置,本文主要介绍Linux系统内核的日志,另外还介绍了一些日志分析工具。1. 说明看Linux系统信息日志主要的两种途径: dmesg,...【详细内容】
2020-08-04  Tags: Linux日志  点击:(110)  评论:(0)  加入收藏
前言本文主要介绍实时监控Linux日志文件的4种方法。如何在Linux中实时查看日志文件的内容?有很多实用工具可以帮助用户在文件修改或不断更新时跟踪或监控文件发生的变化。在...【详细内容】
2020-05-25  Tags: Linux日志  点击:(474)  评论:(0)  加入收藏
“ 最近开始用kpt记录自己的日常工作,本文将是该系列的第一篇,主要讲解linux下如何快速逻辑处理数据”Keep正在做日志筛选数据的事情,需要从服务日志中捞出含关键字的日志,并且...【详细内容】
2019-12-10  Tags: Linux日志  点击:(142)  评论:(0)  加入收藏
前言在 Linux 环境中能够帮助我们分析问题蛛丝马迹的有效办法之一便是日志,常见的如操作系统 syslog 日志 /var/log/messages,应用程序 Nginx 日志 /var/log/nginx/*.log。但...【详细内容】
2019-11-07  Tags: Linux日志  点击:(109)  评论:(0)  加入收藏
日志的三种类型# 内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统...【详细内容】
2019-10-08  Tags: Linux日志  点击:(186)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(13)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(21)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(21)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(34)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(26)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(16)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(24)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条