百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

操作系统学习 认识Linux日志系统(linux日志管理系统)

nanshan 2024-10-22 13:03 11 浏览 0 评论


一、系统日志

日志在所有应用系统中都占有极其重要的位置,本文主要介绍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

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),支持多种数据数据的接入。

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

相关推荐

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP和HTTPS的区别?

本文主要讲解http和https的关系与区别,分辨不清区别的同学要注意朝下看完,Web面试中最常问的已到面试题~~一.HTTP和HTTPS的相同点:大多数情况下,HTTP和HTTPS是相同的,...

详解HTTP协议与RESTFUL

1.HTTP简介http协议是一种超文本传输协议,主要应用在浏览器与服务器之间的通信,可以传输文本,图片,视频等。它是一种应用层协议,也是基于TCP协议,当然现在流行的Https协议是在TLS或SSL...

http与https的区别,读完之后,大部分程序员收藏了...

在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和ht...

JMeter测试HTTP GET请求(附实例)

一、HTTPRequest配置项解析●WebServer:1.Protocol[http]:○若为HTTP协议可以不填写(默认为HTTP);○若为HTTPS协议可以填写“https”;还可...

2019山东高考分数线公布:本科文503 理443

刚刚,2019年山东高考各批次录取最低分数线公布了!6月24日下午,山东省教育厅举行2019年山东高考第二场新闻发布会。山东省教育招生考试院在发布会上公布了山东今年高招各批次录取控制分数线。其中,本科...

Linux系统网站出现503错误提示怎么解决?

当Linux系统上的网站出现503ServiceUnavailable错误时,通常表示服务器暂时无法处理请求,可能由后端服务崩溃、资源耗尽或配置错误导致。以下是系统化的排查和解决方案:一、...

三石说:一文带你了解Https

今天我们继续深入http,本篇将介绍Https的内容,相信你看过之后对https有一定的了解。HTTPSHTTPS(全称:HyperTextTransferProtocoloverSecu...

HTTP与HTTPS的区别

首先,需要知道HTTP和HTTPS是什么。HTTP是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,是互联网上应用最为广泛的一种网络协议。也...

Caddy服务器开启HTTP/3:如何让你的网站快如闪电?

Caddy服务器开启HTTP/3:如何让你的网站快如闪电?在互联网技术飞速迭代的今天,HTTP/3正以革命性的姿态颠覆传统网络传输模式。作为首个基于QUIC协议的HTTP标准,它不仅能大幅提升网站加载...

HTTP/1.1、HTTP/2、HTTP/3 演变

HTTP基本概念HTTP是超文本传输协议,也就是HyperTextTransferProtocol。HTTP常见的状态码有哪些?1xx类状态码属于提示信息,是协议处理中的一种中间状态,实际...

HTTP/3 黑科技:三次握手如何进阶 QUIC?30 年通信细节揭秘

大家好,我是“极客运维社”的飞哥,点击右上方“关注”,每天和大家分享关于网络设备及系统和企业组网方面干货。码字不易,如果您觉得文章还可以,就点赞+关注+收藏吧,也许在以后某个时间能够用得到。H...

总结HTTP/HTTPS协议基础的有那些漏洞,怎么检查,怎么防范

以下是基于黑盒测试、白盒测试和灰盒测试视角对HTTP/HTTPS协议漏洞检查与防范的分类整理:一、黑盒测试(外部视角,无内部权限)定义:模拟攻击者视角,仅通过外部网络接口进行测试,不依赖系...

什么是HTTP? HTTP 和 HTTPS 的区别?

HTTP(HyperTextTransferProtocol),即超文本运输协议,是实现网络通信的一种规范。HTTP是一个传输协议,即将数据由A传到B或将B传输到A,并且A与B之间能够存...

一篇文章搞懂HTTP和HTTPS的的本质区别

http协议是基于tcp协议,默认是80端口。它的特点是什么?它是基于请求和响应的,大家抓个包能看到http协议有一个请求报文有一个响应报文,还有它是一个无状态的协议,还有一个无连接的协议。无连接是指...

取消回复欢迎 发表评论: