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

CENTOS9+RSYSLOG+LOGROTATE收集日志

系统版版本为CentOS Stream release 9

rsyslog和lograte通常系统已经安装了。

#rpm -qa | grep rsyslog
rsyslog-logrotate-8.2310.0-4.el9.x86_64
rsyslog-8.2310.0-4.el9.x86_64
rsyslog-gnutls-8.2310.0-4.el9.x86_64
rsyslog-gssapi-8.2310.0-4.el9.x86_64
rsyslog-relp-8.2310.0-4.el9.x86_64
rsyslog-mysql-8.2310.0-4.el9.x86_64
#
rpm -qa | grep logrotate
logrotate-3.18.0-8.el9.x86_64
rsyslog-logrotate-8.2310.0-4.el9.x86_64

rsyslog高配本支持低版本的配置语法,下面附上我的配置

cat /etc/rsyslog.conf | egrep -v "^#|^$"
global(workDirectory="/var/lib/rsyslog")
$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myformat
module(load="imuxsock" 	  # provides support for local system logging (e.g. via logger command)SysSock.Use="off") # Turn off message reception via local log socket; # local messages are retrieved through imjournal now.
module(load="imjournal" 	    # provides access to the systemd journalUsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates fromFileCreateMode="0644" # Set the access permissions for the state fileStateFile="imjournal.state") # File to store the position in the journal
module(load="ommysql")
$ModLoad ommysql
include(file="/etc/rsyslog.d/*.conf" mode="optional")
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
127.0.0.1.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
$template NetworkDevices,"/data/logs/network-devices/%FROMHOST-IP%.log"
*.* ?NetworkDevices
*.* :ommysql:127.0.0.1,Syslog,rsyslog,dbpasswd

其中

$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myformat

rsylog传过来的时间差8小时的问题,折腾了一周没解决,传过来的timestamp使用的就是utc时间格式就是差8小时,这个问题不关rsyslog配置的事。

 处理方法:在华为web界面添加ip是不会添加“local-time facility local7”这个参数的, 需要在命令行进入system-view模式添加。

info-center loghost 172.18.6.91 local-time facility local7

输入时一定要带“local-time facility local7”,虽然配置完在查看配置中发现“facility local7”不显示。

info-center loghost 172.18.6.91 local-time

 

下面这二行的使用是接收网络设备log

$template NetworkDevices,"/data/logs/network-devices/%FROMHOST-IP%.log"
*.* ?NetworkDevices

还有

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

被我改成,避免local7的日志发到message文件里。

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

 bootlog的一行给我删除了,没什么意义。

在/etc/logrotate.d下添加一个lograte配置 

# cat network-devices 
# Note that logs are not compressed unless "compress" is configured,
# which can be done either here or globally in /etc/logrotate.conf.
/data/logs/network-devices/*log {dailyrotate 180dateextmissingoknotifemptysharedscriptsdelaycompresspostrotate/bin/systemctl reload rsyslog.service > /dev/null 2>/dev/null || trueendscript
}

参数dateext的作用是在文件名结尾添加日期。 

手动验证下 

cd /etc/logrotate.d
logrotate -f network-devices

检验效果

在防墙配置syslog发送到日志服务器,防火墙是华为的,日志类型为local7,日志的量比较大,一天有20G左右,所以配置按天生成日志。

不使用elk和数据库是因为需要统一记录日志的设备不多,在命令行下查找更快

如下

 cat 172.18.5.1.log | egrep "172.18.111.160" | more

 

参考文档:

Linux日志切割工具Logrotate_logrotate日志切割-CSDN博客

Rsyslog发送日志时间转化_rsyslog时间格式-CSDN博客

CentOS7下日志轮转logrotate简单入门与实践-腾讯云开发者社区-腾讯云

https://zhuanlan.zhihu.com/p/606684608

​​​​​https://www.cnblogs.com/ggngggg/articles/17170721.html

                 

                  


 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AI融合新突破:CNN与Transformer的强强联合!
  • 收银系统源码—多商户平台入驻商城+门店线下收银
  • 英伟达元宇宙平台Omniverse的学习,技术调研
  • 缺失值处理方法:代数/统计/机器学习算法补全数据(附Python-sklearn代码精美可视化绘图)
  • C# 事件总线 Event Bus
  • STM32G070KBT6的RTC HAL库使用
  • FFmpeg For Android入门NDK打印版本号
  • python自动化笔记:os模块和异常处理
  • 什么是设计模式?一文理解,通俗易懂!
  • Nacos原理自问
  • Spring Cloud Gateway实现API访问频率限制
  • uniapp 自定义图片预览组件PicturePreview(Vue3、组合式、ts)
  • 新书速览|Python数据可视化:科技图表绘制(送书)
  • 【机器学习】 Sigmoid函数:机器学习中的关键激活函数
  • jmeter-beanshell学习16-自定义函数
  • Centos6.8 使用rpm安装mysql5.7
  • Docker 笔记(2):Dockerfile
  • HTTP--网络协议分层,http历史(二)
  • JavaScript DOM 10 - 滚动
  • JAVA并发编程--1.基础概念
  • js算法-归并排序(merge_sort)
  • python学习笔记-类对象的信息
  • spring security oauth2 password授权模式
  • vue 个人积累(使用工具,组件)
  • 订阅Forge Viewer所有的事件
  • 给github项目添加CI badge
  • 简析gRPC client 连接管理
  • 一个SAP顾问在美国的这些年
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • ​​​​​​​​​​​​​​Γ函数
  • ###项目技术发展史
  • #565. 查找之大编号
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (汇总)os模块以及shutil模块对文件的操作
  • (四)opengl函数加载和错误处理
  • (学习总结16)C++模版2
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • .bat批处理出现中文乱码的情况
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net mvc 获取url中controller和action
  • .NET 设计模式初探
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net流程开发平台的一些难点(1)
  • .NET企业级应用架构设计系列之开场白
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .net与java建立WebService再互相调用
  • .NET运行机制
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面