操作系统学习 认识Linux日志系统(linux日志管理系统)
nanshan 2024-10-22 13:03 14 浏览 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读取内核信息有两种方式:
- syslog()函数
- 读取/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接入。
相关推荐
- 提升网络安全 cisco asa5512-k8防火墙促
-
(中关村在线网络安全行情)ciscoasa5512-k8为标准下一代防火墙,能够为中小型网络提供出色的安全防护和流量管控服务。最近这款防火墙设备在京东商城的促销价格为14299元,有需要的用户可以关注...
- 太一星晨:负载均衡性能参数如何测评?
-
海外网2014-08-0816:03:568月6日消息,当前,在云计算和大数据为主导的需求环境下,负载均衡和应用交付已为大型企业数据中心“保驾护航”的必备品。不过,负载均衡作为一种比较“新奇”的设备...
- Nginx架构揭秘:如何用5大核心机制扛住百万级并发
-
1.灵魂拷问:为什么全球Top1000网站中65%选择Nginx?17Nginx不仅是Web服务器,更是高并发架构的核武器。其单机支持10万+并发连接的秘密,源于三大设计哲学:事件驱动模型:非阻塞...
- 高并发场景下,Nginx性能如何提升10倍?
-
大家好,我是mikechen。在高并发场景,Nginx是流量入口的第一道防线,如果想拦截亿级流量,需要Nginx合理调优才能应对@mikechen。本文作者:陈睿|mikechen文章来源:mike...
- 紧急避坑!数据库突现数十GB临时文件?原因与根治方案揭秘
-
引言:某天深夜,运维小王突然收到磁盘爆满的告警,追踪发现Kingbase数据库的syssql_tmp目录竟堆积了数十GB的临时文件!这些神秘文件为何产生?会引发哪些风险?如何彻底根治?本文将带你深入探...
- 互联网大厂后端必看!3 步搞定 Nginx IP 限流,服务器扛住百万流量
-
作为互联网大厂的后端开发人员,你是否曾遇到过这样的场景:服务器突然涌入大量请求,服务响应速度急剧下降,甚至出现崩溃?这时候,Nginx的IP访问限流策略就显得尤为重要。然而,不少开发者在配置N...
- MySQL max_connections 达到最大值 – 我们如何解决它
-
您的网站是否显示MySQLmax_connections达到最大限制错误?通常,当我们尝试连接到MySQL服务器时,MySQLmax_connections值不足会导致“Tooma...
- Nginx百万并发背后技术揭秘!(nginx并发能力是多少)
-
在互联网业务高速发展的今天,用户访问量呈指数级增长,服务器面临的并发压力也越来越大。一个高并发的网站,如果处理不当,可能会出现请求超时、服务器宕机、用户体验下降等问题。Nginx作为当前最流行的高性...
- Nginx底层原理:一文解析Nginx为什么并发数可以达到3w!
-
Nginx以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析Nginx为什么这么快!Nginx的进程模型Nginx服务器,正常运行过程中:多进程:一个Mast...
- Nginx合集-并发连接能力优化(nginx高并发调优)
-
一、前言nginx服务器老是报告TIME_WAIT告警,ESTABLISHED告警,检查nginx配置和系统网络配置发现现有的配置并发能力太弱,无法满足现有的并发请求的需求。二、解决方法改进方法...
- 开源OS上安装Gnome Flashback经典桌面
-
1安装GnomeFlashback对于用户来说,相比Unity桌面,GnomeFlashback桌面环境是一个简单的并且不错的选择,可以让你找回过去经典的桌面。GnomeFlashback基于G...
- 新手篇 — 虚拟机系统的使用与常见问题
-
本文章会详细介绍虚拟机系统的使用与常见问题,有很多读者都会遇到这样的情况,软件装不上,自己的电脑中软件很多,又不想换电脑系统,那么虚拟机可以帮你解决这个烦恼,由于文章内容写的比较详细,内容会比较多,可...
- VMware虚拟机与主机之间无法复制粘贴解决
-
问题:VMware安装系统后发现无法直接与主机之间进行复制粘贴了,怎么办?解决办法:按照以下3步进行1、设置中客户机隔离检查2、重新安装VMwareTools3、重启电脑...
- 实现VMware虚拟机与物理主机共享文件夹
-
在安装虚拟机之后,难免会遇到需要将文件从主机拷到虚拟机当中,但是很尴尬的事情就是不能直接将文件从主机拖到虚拟机中,所以只能借助U盘,但是频繁的插拔U盘非常的繁琐。为了解决这一需求,就可以将物理主机和...
- 在 Windows 11 或 10 上安装 Virt-viewer 的单行命令
-
Virt-Viewer(或RemoteViewer)是Redhat提供的一个开源程序,允许用户控制和查看运行在本地或远程服务器上的虚拟机。它体积轻巧,并提供了一个简单的图形用户界面来访问由L...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)