当前位置: 首页 > news >正文

Linux系统服务Syslog服务

Syslog服务
Syslog 概述
syslog 常被称为系统日志或系统记录,系统日志通过 syslog 进程记录系统的有关事件,也可以记录应用程序运作事件。通过适当配置,甚至可以实现运行 syslog 协议的机器之间的通信。

早期的 syslog 日志服务对应的是 syslogd 守护进程,而目前很多 linux 发行版本已经使用 rsyslog 服务替换了 syslog 服务预装在 linux 系统中了,相应的守护进程就变成了rsyslogd(ubuntu 18中已经更新为 rsyslog)。

syslog 协议标准
syslog 协议是一种用来在互联网协议(TCP/IP)的网络中传递记录档讯息的标准,属于一种主从式协议:

如上图所示,syslog 消息主要分为 priority、head 以及 message 三个部分,priority 是由两个部分组成的——facility、level。

facility 表明该日志消息是由谁产生的,是内核 kern?还是用户 user?又或是邮件 mail?不同的 facility对应不同的代号,可通过 man 3 syslog 查看:

level 表明该日志消息的重要程度,是导致系统不能正常使用了的紧急级别 emerg?还是需要被及时处理的警告级别 alert?又或仅仅是需要调试的 debug 级别的信息?同样可通过 man 3 syslog 查看:

facility 和 level 分别定义了不同的代号,其各自的宏定义可见 /usr/include/sys/syslog.h 头文件,它们两者的组合构成了 priority 头的值。

syslog API
linux C 中提供了一套系统日志写入的接口—syslog 库,syslog 库可以将应用程序中的日志消息写入日志系统,主要涉及三个函数 openlog,syslog,closelog。如下所示:

syslog 日志文件
日志文件介绍
日志一般都在 /var/log 目录下。该目录下有以下几个重要的的日志文件。

/var/log/maillog:记录邮件的往来信息,其实主要是记录 sendmail 与 dovecot 所产生的信息。

/var/log/dmesg:记录开机开始到现在的内核检测过程所产生的各项信息。如果内核编程的模块中使用printk(),将会把相关信息打印到这里。

/var/log/messages:系统发生的重要信息或者是错误信息都会记录在这个文件中,如果系统发生错误,这个文件就是需要查阅的文件之一。

/var/log/httpd:这个文件里面主要记录各种网络服务信息。

/var/log/cron:这个日志跟例行工作调度有关。即crontab有没有被执行,执行过程中有没有发生错误,在这个日子中均有体现。

上述的这些日志都是系统进程打印出的 log 日志。我们怎么能打印出自己的 log 日志呢?首先,我们要分清楚需求是什么,是通过内核打印出来?还是非内核应用中打印出来?

1、内核打印日志

相信很多使用过内核模块的朋友已经很清楚,在 linux 内核模块中编程的话,使用简单的 printk("helloworld"); 就能达到打印日志的效果。在linux中使用 dmesg 命令即可查看内核输出的日志。

2、非内核编程打印日志

若想在非内核的环境下打印日志,就必须要使用 syslog(或者 rsyslog) 了。若你的系统还是使用的 syslog,那就直接运行以下测试代码:

Mar 16 23:48:44 是日志记录的时间;

192 是主机名;

syslog_test 是 openlog 函数的第一个参数指定的字符串;

[126266] 是openlog第二个参数指定了 LOG_PID 的结果;

The pid of syslog_test=126266 则是 syslog 函数指定的日志消息内容了。

该条日志输出到了/var/log/syslog 文件内,其实输出路径以及各种 facility 和 level 都是可以通过配置文件进行相应的设置的,我们后面再说。

【注意】大家如果想删除日志,千万不要把日志文件直接删除,如果这样很有可能系统找不到文件,就无法再打印日志,恢复起来也是比较麻烦。直接清空日志内容即可:cat /dev/null > syslog。

日志配置
如果需要修改系统日志配置,修改以下两个文件。

1)/etc/rsyslog.conf

2)/etc/rsyslog.d/50-default.conf:日志文件的记录规则和路径

rsyslogd 进程的操作:

产生本地日志

1、修改 /etc/rsyslog.d/50-default.conf 配置文件:

在文件最后添加如下一行:

【注意】

local0—local7 均可。

/var/log/mylocal.log 是自己定义的日志文件。

表示所有的日志,可以保存部分日志,例如 local0.info 只会保留 LOG_INFO 级别的日志。

2、配置完需要重启 rsyslogd 程序

3、程序中用以下记入日志

CentOS7搭建syslog日志服务器

1、安装rsyslog软件

yum install -y rsyslog

2、配置rsyslog.conf文件

    vi  /etc/rsyslog.conf

  • 修改内容,注释打开,启用UDP、TCP协议,监听514端口

配置接收日志的存放目录和文件名规则

##配置begin

# 使用RemoteLogs模板接受客户端的日志,保存到本地的/var/log/remote目录下,然后是每台客户端的ip_年份_月份_日期的log

$template RemoteLogs,"/var/log/remote/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"

# 所有服务所有级别的日志都记录

*.* ?RemoteLogs

#服务端本机的日志不记录

:fromhost-ip, !isequal, "127.0.0.1" ?Remote

#指示rsyslog在将消息写入文件后停止处理消息。如果不包含"& ~",则消息将被写入本地文件,导致消息被记录2次。

& ~

##配置end

3、重启rsyslog服务,查看日志
systemctl restart rsyslog

日志目录: /var/log/remote/


文章转载自:

http://fZIj3m7Z.yxdrf.cn
http://A4wZDAQK.yxdrf.cn
http://vOjb7O7t.yxdrf.cn
http://FywsTM3f.yxdrf.cn
http://bfZqowZv.yxdrf.cn
http://11BUIErj.yxdrf.cn
http://RqubGrYS.yxdrf.cn
http://uGv1x5fW.yxdrf.cn
http://CcM8TvWK.yxdrf.cn
http://OOOihJvW.yxdrf.cn
http://4HNtL1u9.yxdrf.cn
http://cZUPKiG3.yxdrf.cn
http://45NLOouX.yxdrf.cn
http://USx7djyW.yxdrf.cn
http://xuKEL1Hy.yxdrf.cn
http://eAlyS0KU.yxdrf.cn
http://WJI9gSld.yxdrf.cn
http://LC0CNDW6.yxdrf.cn
http://mEikCJeL.yxdrf.cn
http://OUrjiRcT.yxdrf.cn
http://wD4uUCxC.yxdrf.cn
http://VtFWgnqV.yxdrf.cn
http://Vrgesu2M.yxdrf.cn
http://wbUlLZZI.yxdrf.cn
http://yfusg4Ok.yxdrf.cn
http://WCETdP65.yxdrf.cn
http://VRFImKN2.yxdrf.cn
http://11sN29Pj.yxdrf.cn
http://6QgUqjnL.yxdrf.cn
http://2fRuFtrW.yxdrf.cn
http://www.dtcms.com/a/387406.html

相关文章:

  • 985高校标杆项目:基于大数据的商店销售数据分析与可视化系统技术解析
  • OpenCV内置分类器实现简单的人脸识别
  • 基于vue社区养老管理系统3849x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 破解云VR教育普及难题:点量实时云渲染——实现跨终端无界协同
  • 智能合约安全常见攻击与防御
  • Docker多容器编排:Compose 实战教程
  • StarRocks 助力数禾科技构建实时数仓:从数据孤岛到智能决策
  • 重构多任务爬虫
  • 语音DDS系统核心组件详解与实现方案
  • 部署CephFS文件存储
  • 元宇宙与物流产业:数字孪生重构物流全链路运营
  • 通信算法之328:Vivado中FIFO的IP核
  • Android MediaCodec 编解码
  • Resolve JSON Reference for ASP.NET backend
  • 十一、vue3后台项目系列——封装请求,存储token,api统一化管理,封装token的处理工具
  • 一个OC的十年老项目刚接手编译报错:No Accounts: Add a new account in Accounts settings.
  • 苹果个人开发者如何实现应用下载安装
  • 【CSS】文档流
  • App 自动化:从环境搭建到问题排查,全方位提升测试效率
  • 微信小程序转uni-app
  • 深入理解线性回归与 Softmax 回归:从理论到实践
  • SSM-----Spring
  • ubuntu 24.04.02安装android-studio
  • WebRTC 定时任务Process Module
  • 【服务器挂掉了】A40和A800:“性能不足”和“系统崩溃”
  • EJS(Embedded JavaScript)(一个基于JavaScript的模板引擎,用于在HTML中嵌入动态内容)
  • 前端路由模式:Vue Router的hash模式和history模式详解
  • 信创电脑采购指南:选型要点与避坑攻略
  • 前端高级开发工程师面试准备一
  • window下Qt设置生成exe应用程序的图标