【日志1】rsyslog,logrotate,post_code,journalctl

news2024/9/27 7:25:40

文章目录

  • 1.rsyslog:rsyslogd一个进程 ,管理每个进程发来的log并往/var/log里写,syslog函数将log写给rsyslogd进程,rsyslogd -v
  • 2.logrotate:logrotate /etc/logrotate.rsyslog(bb中重命名)
  • 3.post_code:即sel的sensor_type
  • 4.journalctl:linux内存中日志是二进制无法查看,用journalctl查看


1.rsyslog:rsyslogd一个进程 ,管理每个进程发来的log并往/var/log里写,syslog函数将log写给rsyslogd进程,rsyslogd -v

在这里插入图片描述
ident将是一个标记,省略的话即打印出进程的名字如下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

grep -v "^#" /etc/rsyslog.conf | grep -v "^$"   #排除文件中以#开头和去除空行

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

// logger命令打印显示: 年...
$template LogUtilFileFormat,"%$year% %timegenerated%.%timegenerated:::date-subseconds% %HOSTNAME% %syslogseverity-text:::uppercase% bmc#%syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

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

# 如下在37客户端,/etc/rsyslog.conf中,将info级别及其以上级别(可改成crit等其他级别)的日志发送给target服务端
*.info action(type="omfwd" name="remoteLog" template="LogUtilFileFormat" target="10.75.159.146" port="514" protocol="udp"
           queue.type="LinkedList" action.resumeRetryCount="1" action.resumeInterval="60"
           queue.size="500" queue.workerthreadminimummessages="101" queue.discardseverity="0"
           queue.timeoutenqueue="0" queue.timeoutshutdown="10" queue.timeoutactioncompletion="100"
           action.reportSuspension="off" action.reportSuspensionContinuation="off")

$IncludeConfig /etc/rsyslog.d/*.conf
# 如下在146服务端,/etc/rsyslog.conf中打开如下配置,tcp打开tcp的配置
module(load="imudp")
input(type="imudp" port="514")
$IncludeConfig /etc/rsyslog.d/*.conf
# /etc/rsyslog.d/remote.conf 配置如下(修改完需重启rsyslog进程),sonic将如下直接写在rsyslog.conf:
:fromhost,isequal, "10.75.159.37"  /var/log/remote_37.log

2.logrotate:logrotate /etc/logrotate.rsyslog(bb中重命名)

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

# rsyslog.logrotate
     postrotate  #脚本只执行一次 开始
         /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
        # HUP/USR1/USR2(挂起信号,重新加载配置文件)
     endscript   #结束

在这里插入图片描述
在这里插入图片描述
logrotate是有两种方式做定时任务的,如果使用Crontab模式,则把 /etc/cron.daily/logrotate这个文件里检测/run/systemd/system目录的这3行注释掉就可以;然后停掉logrotate.timer(systemctl stop logrotate.timer)。

如下20 * 1024 * 1024 = 20971520
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下不换行输出。
在这里插入图片描述
如下处理特殊字符。
在这里插入图片描述
在这里插入图片描述

3.post_code:即sel的sensor_type

在这里插入图片描述
如下Sensor-specific offset一列对应event data 1,Event一列对应event data 2。
在这里插入图片描述
在这里插入图片描述

// obmc-pal.c
struct system_fw_progress {
  uint8_t EventData1;   // 8bit,1字节
  char DecodeString[128];
};
struct system_fw_progress system_fw_error[] = {
  {0x00, "Unspecified"},   // 一个{}就是一个system_fw_progress结构体,129字节
  {0x01, "No system memory is physically installed in the system"},
  {0x02, "No usable system memory, all installed memory has experienced an unrecoverable failure"}, // 88字节
  {0x03, "Unrecoverable hard-disk/ATAPI/IDE device failure"},
  {0x04, "Unrecoverable system-board failure"},
  {0x05, "Unrecoverable diskette subsystem failure"},
  {0x06, "Unrecoverable hard-disk controller failure"},
  {0x07, "Unrecoverable PS/2 or USB keyboard failure"},
  {0x08, "Removable boot media not found"},
  {0x09, "Unrecoverable video controller failure"},
  {0x0A, "No video device detected"},
  {0x0B, "Firmware (BIOS) ROM corruption detected"},
  {0x0C, "CPU voltage mismatch"},
  {0x0D, "CPU speed matching failure"},
};
struct system_fw_progress system_fw_hang_or_progress[] = {
  {0x00, "Unspecified"},
  {0x01, "Memory initialization"},
  {0x02, "Hard-disk initialization"},
  {0x03, "Secondary processor(s) initialization"},
  {0x04, "User authentication"},
  {0x05, "User-initiated system setup"},
  {0x06, "USB resource configuration"},
  {0x07, "PCI resource configuration"},
  {0x08, "Option ROM initialization"},
  {0x09, "Video initialization"},
  {0x0A, "Cache initialization"},
  {0x0B, "SM Bus initialization"},
  {0x0C, "Keyboard controller initialization"},
  {0x0D, "Embedded controller/management controller initialization"},
  {0x0E, "Docking station attachment"},
  {0x0F, "Enabling docking station"},
  {0x10, "Docking station ejection"},
  {0x11, "Disabling docking station"},
  {0x12, "Calling operating system wake-up vector"},
  {0x13, "Starting operating system boot process, e.g. calling Int 19h"},
  {0x14, "Baseboard or motherboard initialization"},
  {0x15, "reserved"},
  {0x16, "Floppy initialization"},
  {0x17, "Keyboard test"},
  {0x18, "Pointing device test"},
  {0x19, "Primary processor initialization"},
};

  uint8_t *ed = &event_data[3];
  char temp_log[512] = {0};
  char add_sol_log_com[512] = "logger -p local3.info ";

  case POST_ERROR:
    if (((ed[0] >> 6) & 0x03) == 0x3) {  // table29 eventdata1第6和7位为11
      switch (ed[0] & 0xF) { // table29取eventdata1低四位 去匹配即=Sensor-specific offset这一列
        case 0x00:
          strcat(error_log, "System Firmware Error (POST Error), IPMI Post Code"); // 50字节
          if (ed[1] <  (sizeof(system_fw_error) / sizeof(system_fw_error[0]))) { // 13*129/129=0x0d
            sprintf(temp_log, ", %s", system_fw_error[ed[1]].DecodeString); // 88字节,ed[1]即eventdata2
          } else {
            sprintf(temp_log, ", reserved");
          }
          break;
        case 0x01:
          strcat(error_log, "System Firmware Hang, IPMI Post Code");
        case 0x02:
          if (strcmp(error_log, "") == 0) {
            strcat(error_log, "System Firmware Progress, IPMI Post Code");
          }
          if (ed[1] <  (sizeof(system_fw_hang_or_progress) / sizeof(system_fw_hang_or_progress[0]))) {
            sprintf(temp_log, ", %s", system_fw_hang_or_progress[ed[1]].DecodeString);
          } else {
            sprintf(temp_log, ", reserved");
          }
          break;
        default:
          sprintf(temp_log, "Unknown");
          break;
      }
      strcat(error_log, temp_log); //138

      // send post code sel to sol log
      sprintf(temp_log, " '%s' ", error_log);
      strcat(add_sol_log_com, temp_log);
      system(add_sol_log_com);
      break;

4.journalctl:linux内存中日志是二进制无法查看,用journalctl查看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
journalctl -t obmc-console-server -f &
journalctl -o verbose -f

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

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

相关文章

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(6月 26 日论文合集)

文章目录 一、检测相关(4篇)1.1 Bridging the Performance Gap between DETR and R-CNN for Graphical Object Detection in Document Images1.2 Cascade Subspace Clustering for Outlier Detection1.3 Lesion Detection on Leaves using Class Activation Maps1.4 Deep Omni-…

UI还不错的视频播放器:GOMPlayerPlus

之前给各位小伙伴们测试过一款叫【完美解码】开源的播放器&#xff0c;今天给各位同学测试了一款小编认为不错的UI视频播放器&#xff0c;大家也可以测试学习下&#xff0c;顺便也可以对比下看看是【完美解码】好用还是【GOMPlayerPlus】好用。 一、简单介绍 这款影音播放器是…

Git Bash介绍

Git Bash介绍 Git是一个版本控制工具&#xff0c;而Git Bash是在Windows系统中运行Git命令的命令行界面工具。您可以使用Git Bash来管理和操作Git仓库。当你在Windows系统上安装Git时&#xff0c;它会默认安装Git Bash。 Git Bash是git(版本管理器)中提供的一个命令行工具&am…

数据库监控与调优【九】—— 索引数据结构

索引数据结构-B-Tree索引、Hash索引、空间索引、全文索引 二叉树查找 对于相同深度的节点&#xff0c;左侧的节点总是比右侧的节点小。在搜索时&#xff0c;如果要搜索的值key大于根节点&#xff08;图中6&#xff09;&#xff0c;就会在右侧子树里查找&#xff1b;key小于根…

制造业开出每月1.8万给程序员?掌握IT技术就是“铁饭碗”

在知乎上看到一个问题&#xff1a; 这个问题的浏览次数超过了七百万次。 今年&#xff0c;许多毕业生面临着就业难问题。社交网站上也疯传着“缩招”、“裁员”的消息&#xff0c;但为什么还是源源不断的有人选择加入IT行业&#xff1f; 真实现状是&#xff0c;在这个智能时代&…

第2讲 Camera Sensor 类型

本讲是Camera Sensor驱动专题的第2讲&#xff0c;我们讲解Camera Sensor的类型。 更多资源&#xff1a; 资源描述在线课程极客笔记在线课程知识星球星球名称&#xff1a;深入浅出Android Camera 星球ID: 17296815Wechat极客笔记圈 Camera Sensor 介绍 Charge-coupled devic…

windows下VScode搭建IDApython脚本开发环境遇到的问题

开发环境 IDA pro 7.7 vscode 最新版 python版本 与IDA 自带python 一致 3.8.10 (小版本号也必须要一致) 安装插件 下载 插件仓库的地址&#xff1a;https://github.com/ioncodes/idacode release版本 将插件安装到 IDApath/plugins/ idacode ->setting.py 设置如下:…

SASE架构的概念

一、概念 SASE 是一种基于实体的身份、实时上下 文、企业安全/合规策略&#xff0c;以及在整个会话中持续 评估风险/信任的服务实体的身份可与人员、人员组&#xff08;分支办公室&#xff09;、设备、应用、服务、物联网系统或边缘计算场地相关联。SASE是一个融合了SD-WAN&am…

关于安全生产月宣传教育答题活动的策划方案

安全生产月宣传教育活动 推荐功能&#xff1a;答题 安全生产月采用答题活动&#xff0c;可以最大化的检测到员工的安全生产意识&#xff0c;可设置门槛抽奖&#xff0c;规定满分员工可以参与抽奖&#xff0c;促进员工更快掌握安全知识&#xff0c;还可以从后台数据检测到每个人…

成为行业风向标,亚马逊云科技近年在数据库排名逐年上升

近10年&#xff0c;全球数据库市场加速变革&#xff0c;云数据库尤其是云原生数据库成为整个数据库市场的关键变量。某种程度上&#xff0c;亚马逊云科技作为全球云原生数据库的领导者&#xff0c;具有行业风向标的价值。 近期&#xff0c;发生了一件对全球数据库市场具有标志性…

MyBatis-Plus:条件构造器Wrapper

目录 1.Wrapper概述 1.1.Wrapper的继承关系 1.2.Wapper介绍 1.3.各个构造器使用区别 1.4.构造器常用方法 2.Wrapper常用构造器介绍 2.1.QueryWrapper 2.2.UpdateWrapper 2.3.LambdaQueryWrapper 2.4.AbstractWrapper 3. Lambda条件构造器 3.1.示例 4.鸣谢 MyBati…

Kubernetes(k8s)容器编排数据存储

目录 1 什么是数据卷1.1 存储卷概述1.2 存储卷类型1.2.1 非持久性存储1.2.2 网络连接性存储1.2.3 分布式存储1.2.4 云端存储 2 emptydir2.1 使用场景2.2 使用示例2.2.1 案例说明2.2.2 创建资源清单2.2.3 创建deploy2.2.4 访问测试 2.3 测试存储卷2.3.1 登录sidecar2.3.2 登录ng…

springboot+shiro+redis实现session共享和cache共享

在分布式应用中&#xff0c;若是使用了负载均衡&#xff0c;用户第一次访问&#xff0c;连接的A服务器&#xff0c;进行了登录操作进入了系统&#xff0c;当用户再次操作时&#xff0c;请求被转发到了B服务器&#xff0c;用户并没有在B进行登录&#xff0c;此时用户又来到了登录…

MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

MySQL 主从复制 1、什么是读写分离&#xff1f; 读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作&#xff08;INSERT、UPDATE、DELETE&#xff09;&#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据…

MVP: Multi-view Prompting Improves Aspect Sentiment Tuple Prediction

MVP: Multi-view Prompting Improves Aspect Sentiment Tuple Prediction 论文地址: https://arxiv.org/pdf/2305.12627.pdf 论文代码: https://github.com/ZubinGou/multi-view-prompting 1. 介绍 Multi-view Prompting (MVP) 1.1 研究目标 本文提出了多试图提示(MVP)模型…

python 深度学习 解决遇到的报错问题

目录 一、解决报错ModuleNotFoundError: No module named ‘tensorflow.examples 二、解决报错ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 三、安装onnx报错assert CMAKE, ‘Could not find “cmake“ executable!‘ 四、ImportError: cannot import na…

67、基于51单片机ADXL345计步器系统设计(程序+原理图+PCB源文件+参考论文+开题报告+设计资料+元器件清单等)

摘 要 计步器是一种颇受欢迎的日常锻炼进度监控器&#xff0c;可以激励人们挑战自己&#xff0c;增强体质&#xff0c;帮助瘦身。早期设计利用加重的机械开关检测步伐&#xff0c;并带有一个简单的计数器。晃动这些装置时&#xff0c;可以听到有一个金属球来回滑动&#xff0c…

MongoDB集群搭建(四)

基础环境准备 安装Docker 创建Docker网络 因为需要使用Docker搭建MongoDB集群&#xff0c;所以先创建Docker网络 docker network create mongo-cluster docker network ls 创建挂载目录 创建对应的挂载目录来存储配置文件以及日志文件 # 创建配置文件目录 mkdir -p /opt/mongo…

MYSQL数据类型介绍

一、MySQL的数据类型 主要包括以下五大类&#xff1a; 整数类型&#xff1a;BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT 浮点数类型&#xff1a;FLOAT、DOUBLE、DECIMAL 字符串类型&#xff1a;CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY…

测试进阶面试必问12个算法题,洞悉出题思路,拿的就是高薪!

可以明确的一点是&#xff0c;面试算法题目在难度上&#xff08;尤其是代码难度上&#xff09;会略低一些&#xff0c;倾向于考察一些基础数据结构与算法&#xff0c;对于高级算法和奇技淫巧一般不作考察。 代码题主要考察编程语言的应用是否熟练&#xff0c;基础是否扎实&…