syslog日志
Syslog协议
系统日志(Syslog)协议是在一个IP网络中转发系统日志信息的标准,它是在美国加州大学伯克利软件分布研究中心(BSD)的TCP/IP系统实施中开发的,目前已成为工业标准协议,可用它记录设备的日志。Syslog记录着系统中的任何事件,管理者可以通过查看系统记录随时掌握系统状况。系统日志通过Syslog进程记录系统的有关事件,也可以记录应用程序运作事件。通过适当配置,还可以实现运行Syslog协议的机器之间的通信。通过分析这些网络行为日志,可追踪和掌握与设备和网络有关的情况。
在Unix类操作系统上,syslog广泛应用于系统日志。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。
完整的syslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或 Level)、时间、主机名或IP、进程名、进程ID和正文。在Unix类操作系统上,能够按Facility和Severity的组合来决定什么样的日志消息是否需要记录,记录到什么地方,是否需要发送到一个接收syslog的服务器等。由于syslog简单而灵活的特性,syslog不再仅限于Unix类主机的日志记录,任何需要记录和发送日志的场景,都可能会使用syslog。
syslog协议格式定义如下
facility.priority action
facility(设施):标识系统需要记录日志的子系统,大概有以下子系统。
auth #PAM认证相关日志;
authpriv #SSH、FTP登录相关日志;
cron #任务计划相关日志;
daemon #守护进程相关日志;
kern #内核相关日志;
lpr #打印相关日志;
mail #邮件相关日志;
mark #标记相关日志;
news #新闻相关日志;
security #安全相关日志与auth类似;
syslog #Rsyslog自己的日志;
user #用户相关日志;
uucp #UNIX to UNIX cp相关日志;
local0 to local7 #用户自定义使用设置日志;
* #表示所有的facility;
priority(级别):用来标识日志级别,级别越低信息越详细,有以下日志级别,从上到下,级别从低到高,记录的信息越来越少,详细的可以查看手册: man 3 syslog。
debug #程序或系统调试信息;
info #一般信息;
notice #不影响正常功能需要注意的信息;
warning #可能影响系统功能提醒用户的重要事件;
error #错误信息;
crit #比较严重的信息;
alert #必须马上处理的警告信息;
emerg/panic #会导致系统不可用的严重信息;
* #表示所有日志级别;
none #跟*相反表示什么都没有;
action(动作):设置日志记录的位置,有以下几种。
1)记录到普通文件或设备文件
*.* /var/log/file.log #绝对路径
*.* /dev/pts/0 #设备文件
2)”|”,表示将日志送给其他命令处理
3)”@HOST”,表示将日志发送到特定的主机
*.emerg @192.168.10.1
4)”用户”,表示将日志发送到特定的用户
5)”*”,表示将日志发送所有登录到系统上的用户
连接符号
. #表示大于等于xxx级别的信息;
.= #表示等于xxx级别的信息;
.! #表示在xxx之外的等级的信息;
格式定义案例(定义在/etc/rsyslog.conf配置文件)
# 表示将mail相关的,info级别及以上级别都记录到mail.log文件中
mail.info /var/log/mail.log
# 表示将auth相关的基本为info信息记录到远程主机
auth.=info @192.168.10.1
# 表示记录与user和error相反的
user.!error
# 表示记录所有日志信息的info级别及以上级别
*.info
# 所有日志及所有级别信息都记录下来
*.*
PS:多个日志来源可以使用,号隔开,如cron.info;mail.info。
rsyslog日志系统
对于日志管理,其配置文件为”/etc/rsyslog.conf“,信息如下介绍:
# 表示将所有facility的info级别,但不包括mail,authpriv,cron相关的信息,记录到 /var/log/messages文件
#### MODULES #### #定义日志的模块。
$ModLoad imuxsock #imuxsock为模块名,支持本地系统日志的模块。
$ModLoad imjournal #imjournal为模块名,支持对系统日志的访问。
#$ModLoad imklog #imklog为模块名,支持内核日志的模块。
#$ModLoad immark #immark为模块名,支持日志标记。
# Provides UDP syslog reception #提供udp syslog的接收。
#$ModLoad imudp #imudp为模块名,支持udp协议。
#$UDPServerRun 514 #允许514端口接收使用udp和tcp转发来的日志。
# Provides TCP syslog reception #提供tcp syslog的接收。
#$ModLoad imtcp #imtcp为模块名,支持tcp协议。
#$InputTCPServerRun 514 #### GLOBAL DIRECTIVES #### #定义全局日志格式的指令。
# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog #工作目录。
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板。
$IncludeConfig /etc/rsyslog.d/*.conf #所有配置文件路径。
$OmitLocalLogging on #省略本地登录。
# File to store the position in the journal
$IMJournalStateFile imjournal.state #### RULES ####
#kern.* /dev/console
#记录所有日志类型的info级别以及大于info级别的信息到messages文件,但是mail邮件信息,authpriv验证方面的信息和corn时间和任务相关信息除外。
*.info;mail.none;authpriv.none;cron.none /var/log/messages # authpriv验证相关的所有信息存放在/var/log/secure。
authpriv.* /var/log/secure #邮件的所有信息存在/var/log/maillog;这里有一个“-”符号表示是使用异步的方式记录
mail.* -/var/log/maillog #任务计划有关的信息存放在/var/log/cron。
cron.* /var/log/cron #记录所有的≥emerg级别信息,发送给每个登录到系统的日志。
*.emerg :omusrmsg:* #记录uucp,news.crit等存放在/var/log/spooler
uucp,news.crit /var/log/spooler #本地服务器的启动的所有日志存放在/var/log/boot.log
local7.* /var/log/boot.log #发送日志,@表示传输协议(@表示udp,@@表示tcp),后面是ip和端口。
#*.* @@remote-host:514
通过syslog接收远程日志
服务端(sever)
1)检查是否安装了rsyslog软件
# rpm -qa | grep rsyslog //默认系统都安装了该软件
2)安装rsyslog 连接MySQL数据库的模块
# yum install rsyslog-mysql –y
rsyslog-mysql 为rsyslog 将日志传送到MySQL 数据库的一个模块,这里必须安装。
3)配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其他LINUX系统日志
#### MODULES #### $ModLoad ommysql
*.* :ommysql:192.168.10.15,Syslog,root,123456 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514 # Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
4)导入rsyslog-mysql 数据库文件
# mysql -uroot -pabc123 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
mysql> use Syslog;
Database changed
mysql> show tables
-> ;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.01 sec) mysql>
5)重启rsyslog 服务
# /etc/init.d/rsyslog restart
客户端(client)
1)配置rsyslog 客户端发送本地日志到服务端
# vi /etc/rsyslog.conf
*.* @192.168.10.15
2)重启rsyslog 服务
# /etc/init.d/rsyslog restart
3)编辑/etc/bashrc,将客户端执行的所有命令写入系统日志/var/log/messages中。
# vi /etc/bashrc
在文件尾部增加一行
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
设置其生效
# source /etc/bashrc
客户端配置完毕。
通过以上配置即可在服务端的数据库和/var/log/message中接收到客户端操作信息
syslog日志的更多相关文章
- logstash收集syslog日志
logstash收集syslog日志注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# cat ...
- 利用Syslog Watcher在windows下部署syslog日志服务器
1.概述 syslog协议是各种网络设备.服务器支持的网络日志记录标准.Syslog消息提供有关网络事件和错误的信息.系统管理员使用Syslog进行网络管理和安全审核. 通过专用的syslog服务器和 ...
- syslog之三:建立Windows下面的syslog日志服务器
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- 关于syslog日志功能详解 事件日志分析、EventLog Analyzer
关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...
- ELK学习笔记之ELK分析syslog日志
0x00 配置FIlebeat搜集syslog并发送至 #配置 mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak vim /et ...
- syslog之一:Linux syslog日志系统详解
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- syslog日志格式解析
在网上搜的文章,写的很全乎.摘抄如下,供大家参考学习 1.介绍 在Unix类操作系统上,syslog广泛应用于系统日志.syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog ...
- 编译bash实现history的syslog日志记录
摘要: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1763145 一 ...
- syslog 日志
syslog日志是系统日志的一种,可以存放在本地也可以发送到syslog日志服务器, 但是syslog日志由于的格式不统一,在日常工作中审计syslog日志是一种很麻烦的 事情.不过在2001出现了一 ...
随机推荐
- .NET手撸绘制TypeScript类图——上篇
.NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...
- 你了解MySQL中的锁吗?
MySQL中的锁,分为全局锁.表级锁.行锁 全局锁 全局锁的意思就是,对整个数据库实例加锁,它的命令是FTWRL Flash tables with read lock 这个命令的语义是,使整个库处于 ...
- Spring+SpringMVC整合----配置文件
1.在 web.xml 中加载 spring 的配置文件 bean.xml 底层是 Listener <!-- Spring --> <context-param> &l ...
- centos7 openssh 7.9.1 升级
由于项目构建时间比较长,近期安全检查发现openssh有漏洞.所以要升级openssh到7.9p1版本.由于ssh用于远程连接,所以要谨慎操作. 1. 依赖安装 OpenSSL版本:目前OpenSSH ...
- 力扣(LeetCode)二进制间距 个人题解
输入:6 输出:1 解释: 6 的二进制是 0b110 . 示例 4: 输入:8 输出:0 解释: 8 的二进制是 0b1000 . 在 8 的二进制表示中没有连续的 1,所以返回 0 . 提示: 1 ...
- 领扣(LeetCode)两个数组的交集II 个人题解
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5 ...
- LF模式解决的问题
一说起Leader/Followers并发模式,都会与Half-Async/Half-Sync并发模式进行比较,说LF模式更加高性能,成了一个高性能名词标签 符号,相反HA/HS仿佛成了一个低性能的名 ...
- 分析facebook的AsyncDisplayKit框架,async-display使用async-transaction
上一篇<分析facebook的AsyncDisplayKit框架中的Transaction的工作原理>介绍了fb的asdk的异步事务ASAsyncTransaction,本篇介绍其在asd ...
- 安装eclipse血泪史
从大一到大三,屡次卸掉eclipse又屡次安装上,每次都要卡壳,所以这里开帖贴出自己的血泪史,以帮助大家 首先找一篇安装教程,网上有很多,这里不再赘述.举例 https://blog.csdn.net ...
- PHP数组具有的特性有哪些
PHP 的数组是一种非常强大灵活的数据类型.以下是PHP数组具有的一些特性: 1.可以使用数字或字符串作为数组键值 1 $arr = [1 => 'ok', 'one' => 'hello ...