Linux系统日志管理服务和配置

news2024/9/28 11:15:39

文章目录

  • Linux系统日志服务
    • rsyslog
    • 日志分类
    • rsyslog相关文件
    • /var/log/message
      • 重启失败分析
    • /var/log/secure
    • 自定义日志输出路径
      • 1.修改sshd_config配置文件
      • 2.修改rsyslog.conf
      • 3.重启服务
  • 常见日志文件
  • 日志管理工具journalctl
    • 选项说明
    • journalctl用法示例
  • 日志分析实战
    • host无法解析
      • 1.查看日志什么原因导致无法解析
    • Httpd启动失败分析
      • 1.80端口占用
      • 2. 查找端口占用进程
      • 3.关掉端口占用进程

Linux系统日志服务

虽然运行在Linux系统上的各个服务都有自己的日志系统 ,如redis,nginx,mysql等,它们各自的日志都只是单独记录了它们自身服务的运行状况。如果这些服务自身宕掉了或起不来了该去查看什么日志呢?此时就需要去看Linux的系统日志了。

Linux系统日志记录着Linux本身和运行在Linux系统上各种应用服务的事件和运行信息,它就是Linux系统的公用日志服务。
在这里插入图片描述
在这里插入图片描述

日志记录的内容包括:
  1.历史事件: 时间,地点,人物,事件
  2.日志级别: 事件的关键性程度,Loglevel

rsyslog

rsyslog是CentOS 6以后版本的系统管理服务,它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但已发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,rsyslog每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是“惊人的"。

官方网站:https://www.rsyslog.com/

rsyslog是linux的标配,linux系统已装好就有
在这里插入图片描述

rsyslog特性
  1.多线程
  2.UDP,TCP,SSL,TLS,RELP
  3.MySQL, PGSQL, Oracle实现日志存储
  4.强大的过滤器,可实现过滤记录日志信息中任意部分
  5.自定义输出格式
  6.适用于企业级中继链

ELK:由Elasticsearch, Logstash, Kibana三个软件组成非关系型分布式数据库

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

centos中rsyslog的详细信息

[root@centos8 ~]# rpm -qi rsyslog
Name        : rsyslog
Version     : 8.1911.0
Release     : 7.el8
Architecture: x86_64
Install Date: Sun 12 Nov 2023 10:29:14 AM CST
Group       : System Environment/Daemons
Size        : 2431186
License     : (GPLv3+ and ASL 2.0)
Signature   : RSA/SHA256, Fri 11 Dec 2020 11:38:51 PM CST, Key ID 05b555b38483c65d
Source RPM  : rsyslog-8.1911.0-7.el8.src.rpm
Build Date  : Thu 10 Dec 2020 11:01:43 AM CST
Build Host  : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys <bugs@centos.org>
Vendor      : CentOS
URL         : http://www.rsyslog.com/
Summary     : Enhanced system logging and kernel message trapping daemon
Description :
Rsyslog is an enhanced, multi-threaded syslog daemon. It supports MySQL,
syslog/TCP, RFC 3195, permitted sender lists, filtering on any message part,
and fine grain output format control. It is compatible with stock sysklogd
and can be used as a drop-in replacement. Rsyslog is simple to set up, with
advanced features suitable for enterprise-class, encryption-protected syslog
relay chains.

ubuntu中rsyslog软件包的详细信息

root@ubuntu:~# dpkg -s rsyslog
Package: rsyslog
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 1655
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 8.2001.0-1ubuntu1.3
Provides: linux-kernel-log-daemon, system-log-daemon
Depends: libc6 (>= 2.27), libestr0 (>= 0.1.4), libfastjson4 (>= 0.99.7), libsystemd0 (>= 209), libuuid1 (>= 2.16), zlib1g (>= 1:1.1.4), adduser, ucf
Pre-Depends: init-system-helpers (>= 1.54~)
Recommends: logrotate
Suggests: rsyslog-mysql | rsyslog-pgsql, rsyslog-mongodb, rsyslog-doc, rsyslog-openssl | rsyslog-gnutls, rsyslog-gssapi, rsyslog-relp, apparmor (>= 2.8.96~2541-0ubuntu4~)
Conflicts: linux-kernel-log-daemon, system-log-daemon
Conffiles:
 /etc/apparmor.d/usr.sbin.rsyslogd 88fe4a6a37a5cbb88fcadf1e564874c2
 /etc/init.d/rsyslog bd41a0654a192d74dfb9c551b06fa855
 /etc/logcheck/ignore.d.server/rsyslog 80e9fc074b97751dd4de99855bb8d0e0
 /etc/logrotate.d/rsyslog 8159203bf98416c898849057f585e31f
 /etc/rsyslog.conf 8f03326e3d7284ef50ac6777ef8a4fb8
Description: reliable system and kernel logging daemon
 Rsyslog is a multi-threaded implementation of syslogd (a system utility
 providing support for message logging), with features that include:
  * reliable syslog over TCP, SSL/TLS and RELP
  * on-demand disk buffering
  * email alerting
  * writing to MySQL or PostgreSQL databases (via separate output plugins)
  * permitted sender lists
  * filtering on any part of the syslog message
  * on-the-wire message compression
  * fine-grained output format control
  * failover to backup destinations
  * enterprise-class encrypted syslog relaying
 .
 It is the default syslogd on Debian systems.
Homepage: http://www.rsyslog.com/
Original-Maintainer: Michael Biebl <biebl@debian.org>
root@ubuntu:~# dpkg -L rsyslog

/etc
/etc/apparmor.d
...
/etc/init.d
/etc/init.d/rsyslog
/etc/logcheck
....
/etc/logrotate.d
/etc/logrotate.d/rsyslog
/etc/rsyslog.conf
/etc/rsyslog.d
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/dmesg.service
/lib/systemd/system/rsyslog.service
/usr
/usr/lib
/usr/lib/rsyslog
....

/usr/sbin
/usr/sbin/rsyslogd
/usr/share
/usr/share/doc
/usr/share/doc/rsyslog
....
/usr/share/man
/usr/share/man/man1
....
/usr/share/rsyslog
/usr/share/rsyslog/50-default.conf
/var
/var/spool
/var/spool/rsyslog

日志分类

facility:设施,从功能或程序上对日志进行归类

#内置分类
auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security(auth), user, uucp, syslog

#自定义的分类
local0-local7

Priority 优先级别,从低到高排序

debug, info, notice, warn(warning), err(error), crit(critica1), alert, emerg(panic)

参看帮助: man 3 syslog,man logger

[root@centos8 ~]#yum -y insta11 man-pages
[root@centos8 ~]#man 3 syslog

man syslog
在这里插入图片描述

rsyslog相关文件

在这里插入图片描述

vim /etc/rsyslog.conf

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog

# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

在这里插入图片描述

/var/log/message

由配置文件,我们可以看出系统的主要日志是记录在“/var/log/messages”里的

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

当我开启httpd服务时,/var/log/message日志里也会有httpd服务的相关信息记录
在这里插入图片描述

重启失败分析

在这里插入图片描述
那我们就去45行找错误

vim +45 /etc/httpd/conf/httpd.conf

在这里插入图片描述
在这里插入图片描述

/var/log/secure

/var/log/secure里记录着远程登录信息又记录着用户授权信息auth和privilege
在这里插入图片描述

1.远程登录信息
在这里插入图片描述
2.用户授权信息
在这里插入图片描述
/var/log/message是个需要经常关注的日志文件,它记录者远程登录的ip,是否有人一直在尝试登录密码。

自定义日志输出路径

1.修改sshd_config配置文件

SyslogFacility
在这里插入图片描述

2.修改rsyslog.conf

主配置文件中可包含子配置文件,于是我们单独写一个子配置文件
在这里插入图片描述

[root@rocky ~]# vim /etc/rsyslog.d/sshd.config
local6.*     /var/log/ssh.log

3.重启服务

systemctl restart sshd rsyslog

在这里插入图片描述
此时/var/log/secure文件中没有了具体远程登录的ip地址信息了
在这里插入图片描述

常见日志文件

/var/log/secure:  系统安全日志,文本格式,应周期性分析

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

日志管理工具journalctl

CentOS 7以后版本,利用Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl—个命令,查看所有日志(内核日志和应用日志)。

journalctl的配置文件

/etc/systemd/journald.conf

journalctl的命令格式

journalctl [OPTIONS...] [MATCHES...]

选项说明

-e, --pager-end
    在分页工具内立即跳转到日志的尾部。此选项隐含了-n1000
    以确保分页工具不必缓存太多的日志行。不过这个隐含的行数可以被明确设置的 -n选项覆盖。
    注意,此选项仅可用于less(1)分页器。

-×, --catalog
    在日志的输出中增加一些解释性的短文本,以帮助进一步说明日志的含义、问题的解决方案、支持论坛、开发文档、以及其他任   何内容。
    并非所有日志都有这些额外的帮助文本,详见 Message catalog DeveloperDocumentation[5]文档。
    注意,如果要将日志输出用于bug报告,请不要使用此选项。

journalctl用法示例

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

#查看内核日志(不显示应用日志)
 journalctl -k

#查看系统本次启动的日志
 journalctl -b
 journalctl -b -0
 
#查看上一次启动的日志(需更改设置)
 journalctl -b -1

#查看指定时间的日志
 journalctl --since="2017-10-30 18:10: 30"
 journa1ctl --since "20 min ago"
 journalctl --since yesterday
 journalctl --since "2017-01-10"--until "2017-01-11 03:00"
 journalctl --since 09:00 --unti1 "1 hour ago"

#显示尾部的最新10行日志
 journalctl -n

#显示尾部指定行数的日志
 journalctl -n 20

#实时滚动显示最新日志
 journalctl -f

#查看指定服务的日志
 journalctl /usr/lib/systemd/systemd

#查看指定进程的日志
 journalctl _PID=1

#查看某个路径的脚本的日志
 journalctl /usr/bin/bash

#查看指定用户的日志
 journalctl _UID=33 --since today

#查看某个unit 的日志
 journalctl -u nginx.service
 journalctl -u nginx.service --since today

#实时滚动显示某个unit 的最新日志
 journalctl -u nginx.service -f

#合并显示多个unit 的日志
 journa1ctl -u nginx.service -u php-fpm. service --since today

#查看指定优先级(及其以上级别)的日志,共有8级
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug
 journalctl -p err -b

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

#日志管理journa1ct1
#以JSON格式(单行)输出
 journalctl -b -u nginx.service -o json

#以 SON格式(多行)输出,可读性更好
 journalctl -b -u nginx.service -o json-pretty

#显示日志占据的硬盘空间
 journalct1 --disk-usage

#指定日志文件占据的最大空间
 journalctl --vacuum-size=1G

#指定日志文件保存多久
 journalctl --vacuum-time=1years

日志分析实战

host无法解析

1.查看日志什么原因导致无法解析

在这里插入图片描述
当我修改了DNS为114后就解析正常了,因为我自己的DNS服务确实有问题
在这里插入图片描述
在这里插入图片描述

Httpd启动失败分析

1.80端口占用

在这里插入图片描述

2. 查找端口占用进程

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat -tunlp | grep 端口号
 -t (tcp) 仅显示tcp相关选项
 -u (udp)仅显示udp相关选项
 -n 拒绝显示别名,能显示数字的全部转化为数字
 -l 仅列出在Listen(监听)的服务状态
 -p 显示建立相关链接的程序名

在这里插入图片描述

3.关掉端口占用进程

关掉nginx服务
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1919754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt creator中右边的的类和对象如何显示出来

qt creator中右边的的类和对象如何显示出来&#xff1f; 解决方法&#xff1a; 鼠标右键&#xff0c;重置为默认布局。

未来互联网的新篇章:深度解析Web3技术

随着技术的不断演进&#xff0c;Web3正逐渐成为引领未来互联网发展的关键驱动力。本文将深入探讨Web3技术的核心概念、关键特征以及其对未来互联网生态的深远影响&#xff0c;旨在帮助读者全面理解和把握这一新兴技术的发展方向和潜力。 1. Web3的基本概念和演进 Web3并非简单…

【AI大模型】通义灵码的部署与使用

【AI大模型】通义灵码的部署与使用 目前已支持&#xff1a; JetBrains IDEsIDE 版本&#xff1a;IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等 2020.3 及以上操作系统&#xff1a;Windows 7 及以上、macOS、LinuxVisual Studio CodeIDE 版本&#xff1a;1.68.…

minio在redhat7.9上面的单节点单驱动离线安装(docker)

问题 最近需要在红帽上面离线安装minio&#xff0c;并且还是要离线安装到服务器中的Docker里面去。 检查服务器磁盘 # lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs xxxxsx-xxx-xxx…

软链接node_modules

公司项目很多微应用的子项目公用同一套模板&#xff0c;也就会使用同一个node_modules 1.先创建3个同样的项目,并安装一个其中的一个node_modules给他丢到外边 2.win r -------> cmd --------> ctrlshift enter(已管理员身份打开cmd) 3.在窗口分别执行以下代码…

【手撸RPC框架】zookeeper入门(安装+常用命令)

&#x1f43c;作者简介&#xff1a;一名大三在校生&#x1f38b; 空有想法&#xff0c;没有实践&#xff0c;难成大事 专栏前言&#xff1a;探索RPC框架的奥秘 简介&#xff1a;在现代软件开发中&#xff0c;随着微服务架构的普及&#xff0c;远程过程调用&#xff08;RPC&…

Mybatis左连接的实现方式

在使用 MyBatis Plus 进行数据库操作时&#xff0c;我们有时需要从多个表中获取数据。这篇文章将介绍如何在 MyBatis Plus 中实现左连接查询。我们将以两个表格为例&#xff0c;一个是部门领导表 (system_dept_leader)&#xff0c;另一个是用户表 (system_user)&#xff0c;并演…

tk 对文本设置下划线

import tkinter as tkdef underline_text():# 获取当前选中的文本范围selected_text text_widget.tag_ranges(tk.SEL)if selected_text:# 如果有文本被选中tag_name "underline"# 检查选中文本是否已经有下划线if text_widget.tag_names(selected_text[0]):if &quo…

Qt | 绘制直线与 QLineF 类

点击上方"蓝字"关注我们 01、绘制直线 02、Qline和QLineF 【1】QLine 是整型版本,成员函数较少,QLineF 是精度更高的浮点型版本,本文以 QLineF 类 进行讲解。 QLineF 类提供了一个二维向量,使用 QLineF 类绘制直线可以利用该类中的成员函数方便 的对线条的属…

【EIScopus稳检索-高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024)

大会官网&#xff1a;www.icbdss.org 大会时间&#xff1a;2024年8月16-18日 大会地点&#xff1a;中国-上海 接受/拒稿通知&#xff1a;投稿后1-2周内 收录检索&#xff1a;EI,Scopus *所有参会者现场均可获取参会证明&#xff0c;会议通知&#xff08;邀请函&#xff09;&…

vscode里最好用的A股量化神器

shares vscode 插件A 股量化交易系统后台开发语言 Go/Python gmsec算法使用&#xff1a;pytorchK 线标注中意榜黄金上穿全链路量化&#xff0c;行业板块分析&#xff0c;直接贴图。欢迎体验 源码地址&#xff1a; GitHub - xxjwxc/shares: A-share quantitative system. A股量…

Python学习笔记35:进阶篇(二十四)pygame的使用之音频文件播放

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

对接高德开放平台API

高德开放平台API&#xff1a; https://lbs.amap.com/ 一、天气查询 天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo adcode城市码表下载: https://lbs.amap.com/api/webservice/download Component public class WeatherUtil {Resourceprivate GdCon…

异步任务中传递用户信息的一种优雅写法

目录 前言基础写法测试示例 升级写法测试示例 前言 在异步任务中&#xff0c;我们通常会遇到子任务获取当前用户的场景。我们可能会采取ThreadLocal来存储主线程传递的用户信息。然后在业务开始时set&#xff0c;业务结束时remove&#xff0c;来保证不会出现OOM的场景。 基础…

vue使用 “xlsx-style“: “^0.8.13“ 报错

关于jszip not a constructor报错配置config.js文件后可能还报错的问题&#xff1a; 在node_modules处找到node_modules\xlsx-style\xlsx.js 文件。 将 if(typeof jszip undefined) jszip require(./jszip).JSZip;(应该在xlsx.js文件1339行左右) 替换成 if(typeof jszip und…

聚类分析方法(三)

目录 五、聚类的质量评价&#xff08;一&#xff09;簇的数目估计&#xff08;二&#xff09;外部质量评价&#xff08;三&#xff09;内部质量评价 六、离群点挖掘&#xff08;一&#xff09;相关问题概述&#xff08;二&#xff09;基于距离的方法&#xff08;三&#xff09;…

外贸达人的秘密武器:提升效率的插件神器

每一位外贸从业者都在寻找能够提升工作效率、优化业务流程的利器。今天&#xff0c;我要向大家介绍几款外贸工作中的实用的浏览器插件工具&#xff0c;它们将是你业务成功的得力助手。 语言翻译类&#xff1a; Acronyms&#xff1a;外贸交流中&#xff0c;缩写的快速识别至关重…

高级语言与机器级代码之间的对应

目录 一. 汇编语言的基础知识二. 常用的X86汇编指令三. AT&T格式和Intel格式四. 选择语句的机器级表示五. 循环语句机器级表示 \quad 一. 汇编语言的基础知识 \quad X86就是能被能够被以86结尾的CPU&#xff08;如8086&#xff0c;80286&#xff0c;80386&#xff09;支持的…

基于前馈神经网络 FNN 实现股票单变量时间序列预测(PyTorch版)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…

使用 Plotly.js 在 Vue 中创建交互式散点图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 使用 Plotly.js 在 Vue 中创建交互式散点图 应用场景介绍 Plotly.js 是一个功能强大的 JavaScript 库&#xff0c;用于创建交互式数据可视化。它支持各种图表类型&#xff0c;包括散点图、折线图和直方图。在…