Linux日志分析

news2024/11/16 0:05:25

日志的分类

内核以及系统日志

        内核及系统日志由系统服务 rsyslog 统一管理,主配置文件为/etc/rsyslog.conf,主程序/sbin/rsyslogd
        Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。

        系统日志基于rsyslog服务,需要开启rsyslog

systemctl status rsyslog.server
查看rsyslog服务开启状态

用户日志

        记录系统用户登录以及退出系统的相关信息

         用户日志分析工具          

users
who
w 
last
lastb

last 查询成功登陆系统的用户记录
lastb 查询登陆系统失败的用户记录

                

程序日志

        应用程序的独立日志

        程序日志分析工具

        文本查看,grep过滤内容,webmin管理套件内查看

        awk,sed等文本过滤工具

        webalizer,awstats等专业日志分析工具(图形化)

日志管理策略

  • 及时备份归档
  • 延长保存期限
  • 控制访问权限
    • 日志可能包含敏感信息
  • 集中管理日志
    • 统一发送给日志服务器(小规模使用rsyslog,python,shell 20台服务器一台日志,大规模使用ELK 100台服务器3,5台日志)
    • 杜绝丢失日志,恶意篡改和删除

常见日志文件

内核及公共消息日志

/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

计划任务日志

/var/log/cron:记录crond计划任务产生的事件信息。

系统引导日志

/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。

邮件系统日志

/var/log/maillog:记录进入或发出系统的电子邮件活动。

用户登录日志

/var/log/secure:记录用户认证相关的安全事
/var/log/lastlog:记录每个用户最近的成功登录事件。二进制格式
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式

公共日志/var/log/messages 文件的记录格式

时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。
 

日志根据rsyslog配置文件的设置记录相关信息。

rsyslog配置文件

vim /etc/rsyslog.conf  
#查看rsyslog.conf配置文件

规则配置格式:【设备.级别】;【设备.级别】;【设备.级别】......         写入的日志文件

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

*.info  #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)

设备字段说明

auth                  用户认证时产生的日志
authpriv            ssh、ftp等登录信息的验证信息
daemon            一些守护进程产生的日志
ftp                     FTP产生的日志
lpr                     打印相关活动
mark                 rsyslog服务内部的信息,时间标识
news                 网络新闻传输协议(nntp)产生的消息。
syslog               系统日志
uucp                  Unix-to-Unix Copy 两个unix之间的相关通信
console              针对系统控制台的消息。
cron                   系统执行定时任务产生的日志。
kern                   系统内核日志
local0~local7     自定义程序使用
mail                    邮件日志
user                   用户进程

Linux系统内核日志消息的优先级别

(数字等级越小,优先级越高,消息越重要)
0 EMERG(紧急):会导致主机系统不可用的情况。如系统崩溃
1 ALERT(警告):必须马上采取措施解决的问题。如数据库被破坏
2 CRIT(严重):比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3 ERR(错误):运行出现错误。不是非常紧急,尽快修复的
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。无需处理
6 INFO(信息):一般信息。正常的系统信息
7 DEBUG(调试):程序或系统调试信息等。包含详细开发的信息,调试程序时使用
none:没有优先级,不记录任何日志消息。

一般设置0-3级记录,或是0-5级记录,考虑到日志文件大小不会记录全部的等级

举例
mail.info  /var/log/maillog :比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
mail.=info  /var/log/maillog :明确指定日志级别为info,保存至/var/log/maillog
mail.!info  /var/log/maillog :除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
*.info      /var/log/maillog :所有facility的info级别,保存至/var/log/maillog
mail.*     /var/log/maillog :mail的所有日志级别信息,都保存至/var/log/maillog
mail.notice;news.info  /var/log/maillog :mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
mail,news.crit  -/var/log/maillog :mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式(异步模式两个可以不分先后同时处理。如果是同步模式则必须要按照顺序)

补充 local7

第三方安装的程序若需要使用rsyslog服务进行记录,而不是使用自己的记录文件,

可将应用程序配置文件内的log目录位置修改为local*,表示使用local*设备承载,再去/etc/rsyslog.conf配置文件最后一行对应修改。

 

 

 例如

---------- rsyslog 收集 apache 日志 ----------

vim /etc/httpd/conf/httpd.conf
#ErrorLog logs/error_log
方法一:

ErrorLog syslog     #修改配置表示对 error_log 启用 syslog
LogLevel notice    #notice 及以上的 log 全部记录,默认的 facility 是 local7

方法二:

应用程序配置文件

ErrorLog "|/usr/bin/logger -p local5.notice"   
#ErrorLog 使用管道符号调用/usr/bin/logger程序,写入系统日志,
#承载设备为local5,notice级别以上的信息写入

#error_log 全部通过管道写入 syslog,并且 log 的 facility 配置为 local5

#LogLevel warn
#CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -p local4.info" combined   
#access_log全部通过管道写入syslog,并且log的facility配置为local4
#logger -p 指定输入消息的优先级,优先级可以是数字或者指定为 "facility.level" 的格式

 rsyslog配置文件

# Save local4 to a file
local4.*   /opt/apache_access_log

# Save local5 to a file
local5.*   /opt/apache_error_log

配置日志服务器通过网络收集日志

rsyslog是一个C/S架构,可以通过套接字来进行监听记录工作,可以基于TCP和UDP工作,默认的监听端口是514,只需要在MODULES打开即可。

发送服务器:客户端 192.168.80.20
收集服务器:服务端 192.168.80.30

关闭服务端和客户端防火墙、selinux

setenforce 0
systemctl stop firewalld
systemctl disable firewalld

修改客户端配置文件,并启动服务

vim /etc/rsyslog.conf
 
#### MODULES ####
#将下面四行前的注释取消掉
$ModLoad imudp 
$UDPServerRun 514
$ModLoad imtcp 
$InputTCPServerRun 514

#### RULES ####
#添加下列内容
$template myFormat, "%timestamp% %hostname% %syslogseverity-text% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myFormat
*.info;mail.none;authpriv.none;cron.none      @@192.168.80.30:514

#%timestamp% :时间戳
#%fromhost-ip% :接收的信息来自于哪个节点的 IP
#%hostname% :主机名
#%syslogseverity-text% :日志等级
#%syslogtag% :服务进程
#%msg% :日志内容
#接收方 IP 前面一个 @ 表示 TCP 传输,两个 @ 表示 UDP 传输

systemctl restart rsyslog

修改服务端配置文件,并启动服务

vim /etc/rsyslog.conf

将下面四行前的注释取消掉

#### MODULES ####
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

添加以下内容

#### RULES ####
$AllowedSender tcp, 192.168.80.0/24 
#允许 192.168.80.0 网段内的主机以tcp协议来传输

$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" 
#定义模板,接受日志文件路径,区分了不同主机的日志
:fromhost-ip, !isequal, "127.0.0.1" ?Remote  #过滤掉 server 本机的日志

systemctl restart rsyslog

在服务端创建/data/log目录,以接受大量日志信息,配置文件中的路径应当与该路径一致

mkdir -p /data/log

验证   客户端的终端命令行输入或者重启一个服务

logger "hello world"

在服务端查看日志文件

tree /data/log/

journalctl 日志管理工具

日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。
Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。
日志的配置文件是/etc/systemd/journald.conf

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

journalctl
journalctl -r    #-r表示倒序,从尾部看(推荐)

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

journalctl -k

查看系统本次启动的日志

journalctl -b  [-0]

查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)

journalctl -b -1

显示尾部指定行数的日志

查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已

-f 为实时跟踪查看 类似tail -f /var/log/messages

journalctl -n 20 [-f]

查看某个服务的日志

journalctl -u nginx.service [-f]

查看指定进程的日志

ps aux | grep httpd
journalctl _PID=1

查看指定用户的日志

journalctl _UID=0  --since today

查看报错日志

journalctl -xe
# -x 是目录(catalog)的意思,在报错的信息下会,附加解决问题的网址
#-e  pager-end 从末尾开始看

例如修改/etc/sysconfig/network-scripts配置文件
添加错误的配置,例如监听端口设置为不存在的ip
systemctl restart network重启
journalctl -xe即可看到错误信息

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

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

相关文章

【LeetCode】剑指 Offer 63. 股票的最大利润 p304 -- Java Version

题目链接:https://leetcode.cn/problems/gu-piao-de-zui-da-li-run-lcof/ 1. 题目介绍(63. 股票的最大利润) 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 【测试用…

自然语言处理 —— 02 基于规则的词法分析

一、什么是词法分析? 词:是自然语言中能够独立运用的最小单位,是语言信息处理的基本单位。 词法分析:是词汇层的分析技术。主要包括词的识别、形态分析、词性标注等任务。 1. 词的识别 将句子转换成词序列【就是分词?】 2. 形态分析 词的构成、形态变化、词形还原。 …

物联网定位技术|实验报告|实验三 PDM定位算法

目录 1. 实验目标 2. 实验要求 3. 算法介绍 3.1 PDM算法 4. 算法实现 第一步:将数据读入内存 第二步:判断锚节的个数 第三步:将所有的两点间的距离关系读入距离矩阵 第四步:利用最短路径算法 第五步:构造节点跳数矩…

JVM-0419~20

类的加载 类的加载过程(生命周期) 类的加载分几步? 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 基本数据类型在虚拟机里面都预…

【智能座舱系列】-华为发布全球首款车载光场屏 开拓车载视觉体验新航道

4月16日,2023华为智能汽车解决方案“内赋智能,焕发新生”新品发布会在上海举行,华为正式发布全新车载娱乐屏品类:HUAWEI xScene 光场屏。该产品采用独创的光学引擎技术,具有大画幅、景深感、低晕动、眼放松等特点,大幅提升车内视觉体验。 华为光场屏:私人影院装入车内,…

非常详细的阻抗测试基础知识

编者注:为什么要测量阻抗呢?阻抗能代表什么?阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师,都在关注各类器件的阻抗,本文非常值得一读。全文13000多字&#…

2. 算法分析

2. 算法分析 研究算法的最终目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求。 我们要计算算法时间耗费情况,首先我们得度量算法的执行时间,那么如何度量呢? 2.1 算法的时间复杂度分析 事后分析估算方法&#x…

关于web安全测试在功能测试中的应用

关于web安全测试在功能测试中的应用 一、安全基本概念1.1实施安全评估1.1.1资产等级划分1.1.2威胁分析1.1.3风险分析1.1.4 安全方案 1.2 安全原则 二、我的安全测试模型三、安全测试在功能测试中的应用3.1 更改url3.2 逻辑缺陷:3.3 破坏流程顺序3.4 接口提示信息3.5…

HNU-计算机系统-讨论课5

WARNING: 本题为开放性题目,所设计的也仅仅是一个可能的模型而已,再考虑到个人水平有限。在呈现效果上难免会有缺漏以及可行性的缺陷。故请批判性地接收! 所以如果知识有错误或者缺漏,请一定要指出,您的建…

计算机类大学生竞赛经验分享

如果你是作为一个科班出生的学习编程方向的一名在校大学生,那么如果对竞赛感兴趣,可以看看这篇文章 本人作为一名前端开发方向的学生,将自己这几年的参赛经验和比赛相关类型介绍分享给大家 首先我们要知道,竞赛分为三种大概的方向…

《类和对象》(上篇)

本文主要对类和对象有一个初步的了解。 文章目录 前言1、类的引入和定义2、类的访问限定符及封装2.1 访问限定符2.2 封装 3 、类的作用域4 、类的实例化5 、类对象的模型5.1 类对象的大小5.2 类对象存储方式 6、this 指针6.1 引子6.2 特性6.3 this指针的一个问题 前言 C语言是面…

MySQL插入和查询blob字段类型的sql语句

创建表: CREATE TABLE t_inpatient_medical_records ( id bigint(20) NOT NULL AUTO_INCREMENT, inpatient_record_code varchar(32) DEFAULT NULL COMMENT 就诊流水号, patient_name varchar(256) DEFAULT NULL COMMENT 患者姓名, pat_id varchar(16) DEFAULT NULL…

java数据类型的转换以及精度丢失

java数据类型的转换以及精度丢失_long转double会丢失精度吗_ღLiJia的博客-CSDN博客 一.浮点类型在计算机当中的存储 float存储需求是4字节(32位), 其中1位最高位是符号位,中间8位表示阶位,后32位表示值 float的范围: -2^128 ~ …

搞懂哈希散列

文章目录 1. 哈希概念2. 如何解决哈希冲突?3. 哈希函数概念4. 闭散列(目前淘汰的方法,了解)**4.1.线性探测****4.2. 二次探测**4.3 闭散列查找与删除 5. 开散列6. 开散列与闭散列比较 1. 哈希概念 搜索树需要多次的关键码比较来搜索到结果&a…

AutoGPT、AgentGPT、BabyAGI、HuggingGPT、CAMEL:各种基于GPT-4自治系统总结

ChatGPT和LLM技术的出现使得这些最先进的语言模型席卷了世界,不仅是AI的开发人员,爱好者和一些组织也在研究探索集成和构建这些模型的创新方法。各种平台如雨后春笋般涌现,集成并促进新应用程序的开发。 AutoGPT的火爆让我们看到越来越多的自…

Linux 3.14的设备树-实战开发代码

OF提供的函数主要集中在drivers/of/目录下,有address.c,base.c,device.c,fdt.c,irq.c,platform.c等等 1,根据deice_node结构的full_name参数,在全局链表of_allnodes中,查找合适的device_node struct device_node *of_find_node_by…

概率/期望dp

思维方式 概率/期望dp都是分析从当前状态能否去到其他情况,然后进行期望/概率公式的运算,最后消元推导出一般式。 ​​​​​​Problem - 4089 (hdu.edu.cn) 思路:概率dp,正推 分类讨论,设dp[i][j]表示i人的队伍在…

力扣sql中等篇练习(八)

力扣sql中等篇练习(八) 1 确认率 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 分别统计没确认的用户和已经确认了的用户 SELECT s.user_id,ROUND(SUM(IF(c.actionconfirmed,1,0))/count(*),2) co…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例应用

如今,Earth Engine凭借其强大的功能正受到越来越多国内外科技工作者的关注,应用范围也在不断扩大。学习致力于帮助科研工作者掌握Earth Engine的实际应用能力,以Python编程语言为基础,结合实例讲解平台搭建、影像数据分析、经典应…

JAVA开发(H5商城嵌套到第三方H5商城进行异业合作方案)

需求背景: 很多电商网站或者说是购物网站都是H5商城的方式,每个公司都有自己的H5商城。当公司和公司之间进行异业合作,商城互相导流甚至商城聚合时就需要H5商城和H5商城的嵌套和对接。假如存在A商城和B商城,现在需要B商城入驻到A商…