(转载)把syslog接收的远程日志从/var/log/messages中分开
今天突然要配置Linux的syslog服务器,摸了一早上才弄好。记录远程机器发来的syslog消息倒是容易(网上到处都是),不过按照默认的设置,syslog会将所有信息都给写入 /var/log/messages 中,和本机的消息都混到一块去了。
实在可恨,搜了一上午都找不到解决办法。本来看到个FreeBSD中用脚本处理的方法,兴冲冲的跑去实验,结果一点反应都没有。
后来看到介绍中有一句:“※注意,不能通过“|/var/xxx.sh”方式导向日志到其他脚本中处理!!”,差点气得吐血...
网上有人说syslog不能分离远程日志,于是试图从syslog-ng下手。结果syslog-ng编译起来N麻烦不说,跑起来还有问题,于是回头继续摸索syslog。试了N次终于找到个差强人意的解决办法,算是解决分离的问题。
--------------------------------------------------------------------------------
首先确定远程发来的消息是哪一级的,比如Panabit发过来的都是emerg级消息,某些路由器用的是notice级。实在不行就先用info然后过滤(具体办法见后文)。
(红色字是要添加的内容)
vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-r -x -m 0"
-r: 打开接受外来日志消息的功能,其监控514 UDP端口;
-x: 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
vi /etc/syslog.conf
# 把emerg等级的消息从messages中除开,免得重复记录:
*.info;*.!emerg;mail.none;authpriv.none;cron.none /var/log/messages # *.!emerg 表示不记录emerg级的消息
#*.emerg * # 注释掉原来的emerg,不将emerg级消息显示到控制台
# 输出到/var/log/mylog
*.emerg /var/log/mylog
然后重启syslog:service syslog restart
这样就把远程日志写入/var/log/syslog并且不影响本机syslog工作了。
--------------------------------------------------------------------------------
关于/etc/syslog.conf写法,这里有个详细说明:
/etc/syslog.conf 根据如下的格式定义规则
/etc/syslog.conf 根据如下的格式定义规则:
facility.level action
设备.优先级 动作
1、facility 定义日志消息的范围,其可使用的key有:
auth -由 pam_pwdb 报告的认证活动。
authpriv -包括特权信息如用户名在内的认证活动
cron -与 cron 和 at 有关的计划任务信息。
daemon -与 inetd 守护进程有关的后台进程信息。
kern -内核信息,首先通过 klogd 传递。
lpr -与打印服务有关的信息。
mail -与电子邮件有关的信息
mark - syslog内部功能用于生成时间戳
news -来自新闻服务器的信息
syslog -由 syslog 生成的信息
user -由用户程序生成的信息
uucp -由 uucp 生成的信息
local0-local7 -与自定义程序使用
* 通配符代表除了 mark 以外的所有功能
除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。
2、level级别定义消息的紧急程度。按严重程度由高到低顺序排列为:
emerg -该系统不可用,等同panic
alert -需要立即被修改的条件
crit -阻止某些工具或子系统功能实现的错误条件
err -阻止工具或某些子系统部分功能实现的错误条件,等同error
warning -预警信息,等同warn
notice -具有重要性的普通条件
info -提供信息的消息
debug -不包含函数条件或问题的其他信息
none -没有重要级,通常用于排错
* 所有级别,除了none
其中,panic、error、warn均为旧的标识符,不再建议使用。
在定义level级别的时候,需要注意两点:
1)优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级;
2)低的优先级包含高优先级,例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义)
3、selector选择条件
通过小数点符号“.”把facility和level连接在一起则成为selector(选择条件)。
可以使用分号“;”同时定义多个选择条件。也支持三个修饰符:
* - 所有日志信息
= - 等于,即仅包含本优先级的日志信息
! - 不等于,本优先级日志信息除外
4、action动作 由前面选择条件定义的日志信息,可执行下面的动作:
file-指定日志文件的绝对路径
terminal 或 print -发送到串行或并行设备标志符,例如/dev/ttyS2
@host -远程的日志服务器
username -发送信息本机的指定用户信息窗口中,但该用户必须已经登陆到系统中
named pipe -发送到预先使用 mkfifo 命令来创建的 FIFO 文件的绝对路径
※注意,不能通过“|/var/xxx.sh”方式导向日志到其他脚本中处理!!
另外:如果确定不了远程发来的消息属于哪一级,可以这样做:
# 先分别记录各种消息
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.emerg /var/log/testlog1
*.warning /var/log/testlog2
*.notice /var/log/testlog3
然后分别cat并与messages中比较一下看看哪个里面有需要的日志。比如发现emerg和notice里有需要的内容,再改成这样:
*.info;*.!emerg;*.!notice;mail.none;authpriv.none;cron.none /var/log/messages
*.emerg;*.notice /var/log/mylog
这样写就是将emerg和notice的内容独立出来,存入/var/log/mylog,以免都混到/var/log/messages中不好分析。
转载于:http://www.cnblogs.com/bits/archive/2009/03/09/Linux-syslog_remote_cap2sf.html
本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/456539
(转载)把syslog接收的远程日志从/var/log/messages中分开相关推荐
- 安全日志:/var/log/secure(转载 https://www.cnblogs.com/pzk7788/p/10184740.html)
安全日志:/var/log/secure** 转自: https://www.cnblogs.com/pzk7788/p/10184740.html /var/log/secure 一般用来记录安全相 ...
- linuxmessage日志消失_某工的centos7 启动了rsyslog之后,日志/var/log/messages等都不产生日志了,都是空的。求大神解决!...
之前一直有日志生成的,正常运行,自从前几天搞了下好像重启了下rsyslog ,最后一次轮替日志之后,/var/log/message, /var/log/secure等都不记录了,并且都是空文件. 求 ...
- Linux中log的目录,/var/log目录中Linux日志文件的功能详解
介绍下/var/log/中日志文件的所在位置以及包含的内容. 了解这些不同的日志文件,有助于在遇到紧急情况时,从容找出问题并加以解决. 这里介绍20个位于/var/log/ 目录之下的日志文件. 其中 ...
- /var/log目录中Linux日志文件的功能详解
介绍下/var/log/中日志文件的所在位置以及包含的内容. 了解这些不同的日志文件,有助于在遇到紧急情况时,从容找出问题并加以解决. 这里介绍20个位于/var/log/ 目录之下的日志文件. 其中 ...
- 安全日志:/var/log/secure 详解
安全日志:/var/log/secure /var/log/secure 一般用来记录安全相关的信息,记录最多的是哪些用户登录服务器的相关日志,如果该文件很大,说明有人在破解你的 root 密码,或 ...
- 【CDH】ClouderaManager集群报警,堆转储目录/tmp 或日志目录/var/log 可用空间小于 5.0 吉字节
https://blog.csdn.net/xueyao0201/article/details/79530130
- shell小工具-检查日志目录下log文件中err信息
1.创建check.sh #!/bin/bash #use: check log err if [[ ! -d "$1" ]]; thenecho "folder is ...
- Linux下vm.overcommit_memory的内存分配参数解释(主要是redis服务——redis服务的日志:/var/log/redis_6379.log)
背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: 内核参数overcommit_memory 它是 内存分配策略 可选值:0,1,2 ...
- 通过syslog接收远程日志
通过syslog接收远程日志 通过syslog接收远程主机的日志,需要做一些环境配置. 客户机A通过syslog将日志信息发送到服务主机B(或称日志采集服务器).以下说明配置过程 (我的实验环境是,客 ...
最新文章
- Ext Js MVC系列二 利用Application和Viewport进行应用程序初始化和页面布局
- 將軍苑 - 收藏集 - 掘金
- 安卓加载mysql数据到列表里_Android如何从数据库中加载海量数据
- boost::python::back_reference相关的测试程序
- 牛客网暑期ACM多校训练营(第九场)
- Leetcode--494. 目标和
- Google IO 2017为我们带来了什么
- 【收藏版】长文详解基于并行计算的条件随机场
- python绘图-增加子区域
- 企业年会活动常用的音频类、视频类工具软件
- HiJson(Json格式化工具)64位 V2.1.2绿色版
- Freeswitch部署
- 面试前需要注意的细节点(有需要的朋友可以看看)
- 搞定java面试系列--jvm3 gc垃圾回收
- 八皇后问题(又名: 高斯八皇后)
- 每周分享第 23 期
- 请19级的童鞋们接收一下
- QT状态栏(statusbar)用法
- java nio 缓冲区(二)
- 考研初试备考,感谢曾经努力的自己
热门文章
- 计算机导论第一章试题及答案,计算机导论第一章试题
- blockingqueue java_记录 Java 的 BlockingQueue 中的一些坑
- python知识:*args 和**kwargs
- 索爱麦克风免驱动的语音录入测试
- 快速复制快捷键_复制粘贴额效率之王Ctrl+D都不掌握,那就真的Out了
- 【新星计划】MATLAB绘制图形
- 个人笔记本上win10+yolov3+python+tensorflow+keras训练自己的识别模型
- SpringMVC学习01之回顾Servlet
- c语言容斥原理,容斥原理 | 易学教程
- 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...