centos7的syslog知识点
一、syslog协议介绍
1、介绍
在Unix类操作系统上,rsyslog广泛应用于系统日志。rsyslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。
完整的syslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或 Level)、时间、主机名或IP、进程名、进程ID和正文。在Unix类操作系统上,能够按Facility和Severity的组合来决定什么样的日志消息是否需要记录,记录到什么地方,是否需要发送到一个接收rsyslog的服务器等。由于rsyslog简单而灵活的特性,rsyslog不再仅限于 Unix类主机的日志记录,任何需要记录和发送日志的场景,都可能会使用rsyslog。
rsyslog是syslog的多线程增强版,现在Fedora、Ubuntu,、rhel6、centos6默认的日志系统都是rsyslog了。rsyslog主要用来收集系统产生的各种日志,日志默认放在/var/log/目录下。先简单看看配置文件,然后给几个实例也算是对rsyslog的一个更深入的理解吧。
1、配置文件解析
主配置文件/etc/rsyslog.conf配置文件中有很多内容, 但最主要的是指定需要记录哪些服务和需要记录服务什么等级的信息。
格式是:日志设备[连接符号]日志级别 日志处理方式(action)
a)、日志设备(可以理解为日志类型):
|
b)、日志级别,从上到下,级别从高到低,记录的信息越来越少。
|
c)、连接符号,其中的xxx表示某一日志级别
|
d)、日志处理方式,意思就是将特定的日志做怎样的处理。
|
举2个例子
将mail的所有级别的日志,记录到文件/var/log/maillog中,其中的符号”-“表示使用缓存模式
|
将所有日志的所有级别的信息采用UDP协议送给远程服务器192.168.186.134一份
|
2、用实例说话
a)、将所有服务器的系统日志送给远程日志服务器,远程服务器用来接收和集中所有服务器送来的系统日志。
采用UDP协议发送和接收,在远程服务器端配置文件/etc/rsyslog.conf开启下面两行
|
客服端的配置文件/etc/rsyslog.conf最后新增加一行,用来将所有的日志信息发送给远程的服务器192.168.186.134
|
每次更改配置文件后不要忘记重启rsyslog服务。
测试:重启某台服务器的rsyslog服务看看远程的服务器能不能收到日志
|
看远程的服务器已经收到了相应的日志,如果没有收到日志是不是防火墙挡住了,如果没有使用标准的端口还要看看是不是SELinux服务开启了。
|
b)自定义设备,手动将日志送给rsyslog服务
先修改配置文件,新增自定义设备local0并将其info级别及其以下级别的日志记录到文件/var/log/test.log文件中
|
修改配置文件后不要忘记重启rsyslog服务使其生效
然后我们用logger命令向设备local0送日志,总共发送了4次日志,前三次的级别都是info及其以下级别的日志,第四次是debug级别的日志。参数”-t”是将每次发送的日志信息打上自定义标签。
|
结果是前三次都记录到了文件/var/log/test.log中,第四条由于超过info级别为debug级别故忽略了。
|
c、收集各台服务器的history记录,可以参考文章《日志管理(1) 审计并收集history记录》。
关于rsyslog的简单介绍就这些了,其它用法如过滤、加载外部模块、收集MySQL程序日志等,有兴趣的可以继续深入
二、syslog函数
Linux C中提供一套系统日记写入接口,包括三个函数:openlog,syslog和closelog。
调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。
#include //头文件
void openlog (char*ident, int option, int facility);
void closelog();
void syslog(int priority, char*format,……);
priority参数的格式(severity level|facility code)
示例:
LOG_ERR|LOG_USER
severity level:
Priority Level Description
LOG_EMERG An emergency situation
LOG_ALERT High-priority problem, such as database corruption
LOG_CRIT Critical error, such as hardware failure
LOG_ERR Errors
LOG_WARNING Warning
LOG_NOTICE Special conditions requiring attention
LOG_INFO Informational messages
LOG_DEBUG Debug messages
facility value(转自syslog.h头文件):
#define LOG_KERN (0<<3)
#define LOG_USER (1<<3)
#define LOG_MAIL (2<<3)
#define LOG_DAEMON (3<<3)
#define LOG_AUTH (4<<3)
#define LOG_SYSLOG (5<<3)
#define LOG_LPR (6<<3)
#define LOG_NEWS (7<<3)
#define LOG_UUCP (8<<3)
#define LOG_CRON (9<<3)
#define LOG_AUTHPRIV (10<<3)
#define LOG_FTP (11<<3)
三、linux rsyslog配置
1)、syslog日志服务:
1、守护进程:syslog
2、端口:514
3、配置文件:/etc/rsyslog.conf (centos6起/etc/syslog.conf不再有!而是/etc/rsyslog.conf代替!)
4、常见日志文件:
/var/log/dmesg 内核引导信息日志
/var/log/message 标准系统错误信息日志
/var/log/maillog 邮件系统信息日志
/var/log/cron 计划任务日志
/var/log/secure 安全信息日志
2)、 配置文件:
syslog配置文件如下
-----------------------------------------------------------------
[root@server ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.*
-----------------------------------------------------------------
配置文件中每行表示一个项目,格式为:facility.level action
由两个部分组成:
第一部分:选择条件(可以有一个或者多个条件),分为两个字段。
第二部分:操作动作;
1、选择条件
选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)隔开。
常见facility:
kern 内核信息;
user 用户进程信息;
mail 电子邮件相关信息;
daemon 后台进程相关信息;
authpriv 包括特权信息如用户名在内的认证活动;
cron 计划任务信息;
syslog 系统日志信息
lpr 打印服务相关信息。
news 新闻组服务器信息
uucp uucp 生成的信息
local0----local7 本地用户信息
例如:
52 # Log anything (except mail) of level info or higher.
53 # Don't log private authentication messages!
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
2、重要级:
重要级是选择条件的第二个字段,它代表消息的紧急程度。
按严重程度由低到高排序:
debug 不包含函数条件或问题的其他信息
info 提供信息的消息
none 没有重要级,通常用于排错
notice 具有重要性的普通条件
warning 预警信息
err 阻止工具或某些子系统部分功能实现的错误条件
crit 阻止某些工具或子系统功能实现的错误条件
alert 需要立即被修改的条件
emerg 该系统不可用
不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是“warning”,它实际上将把“warning”、 “err”、“crit”、“alert”和“emerg”都包括在内。
3、操作动作
日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。
syslog 主要支持以下活动:
file 指定文件的绝对路径
terminal 或 prin 完全的串行或并行设备标志符
@host(@IP地址) 远程的日志服务器
3)、 搭建Linux日志服务器:
1、编辑/etc/sysconfig/syslog文件,让服务器能够接受客户端传来的数据:
在“SYSLOGD_OPTIONS”行上加“-r”选项以允许接受外来日志消息。
-----------------------------------------------------------------
[root@client ~]# vim /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-r -m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
-----------------------------------------------------------------
2、重新启动syslog守护进程。
-----------------------------------------------------------------
[root@client ~]# service rsyslog restart
关闭内核日志记录器: [确定]
关闭系统日志记录器: [确定]
启动系统日志记录器: [确定]
启动内核日志记录器: [确定]
[root@client ~]#
-----------------------------------------------------------------
3、关闭iptables
[root@client ~]# service iptable stop
查看防火墙状态
# service iptable status
四、配置各客户端:
1、配置/etc/syslog.conf
修改客户机/etc/syslog.conf文件,在有关配置行的操作动作部分用一个“@”字符指向日志服务器
-----------------------------------------------------------------
[root@client ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
*.* @10.64.165.210
# The authpriv file has restricted access.
authpriv.* /var/log/secure
……下面省略
-----------------------------------------------------------------
另外如果配置了DNS域名的话可以使用域名。
2、重启客户端syslog使设置生效。
检测成果:
下图是我们在客户端重启iptables服务后在服务端看到的日志情况:
-----------------------------------------------------------------
[root@client ~]# cat /var/log/messages |tail
Nov 30 16:44:29 10.64.165.200 kernel: klogd 1.4.1, log source = /proc/kmsg started.
Nov 30 16:44:33 10.64.165.200 kernel: Removing netfilter NETLINK layer.
Nov 30 16:44:33 10.64.165.200 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Nov 30 16:44:33 10.64.165.200 kernel: Netfilter messages via NETLINK v0.30.
Nov 30 16:44:33 10.64.165.200 kernel: ip_conntrack version 2.4 (4096 buckets, 32768 max) - 228 bytes per conntrack
-----------------------------------------------------------------
原文:http://www.cnblogs.com/skyofbitbit/p/3674664.html
centos7的syslog知识点相关推荐
- Centos7.9使用rsyslog将tomcat日志传输到syslog服务器
自带的rsyslog版本是8.24的 vim /etc/rsyslog.d/tomcat.conf,按如下编辑,每一段是读取并发送一个tomcat的日志,这里*.txt是要配置发送local_acce ...
- iptables知识点总结
文章目录 一.参考链接和本次实验地址 1.1.参考链接 1.2.单机实验环境 1.3.非单机实验环境(主要是演示NAT实验) 二.防火墙概述和linux防火墙概述 2.1.防火墙概念引入和不同防火墙类 ...
- Linux基础知识点回顾与服务器部署详细解析
Linux知识点复习 Linux简介 操作系统(Operating System)是应用程序运行的基础支撑环境 操作系统作用是管理和控制计算机系统的硬件与软件资源 lntel x86架构上常见的操作系 ...
- linux hexo写博客,自己centos7架设hexo网站
自己centos7架设hexo网站 一:安装博客框架 1.安装gityum install git-core 2.安装nvm(后面安装Node.js的最佳方式是使用nvm,所以这里安装nvm)wget ...
- CentOS7上编译多版本PHP并同时运行及systemd设置
为什么80%的码农都做不了架构师?>>> CentOS7最大改变是systemd代替过去的systemV服务,于是配置服务的方式改变了,用systemctl替代过去的servi ...
- centos7上安装redis6-0-5
下载tar包 wget http://download.redis.io/releases/redis-6.0.5.tar.gz 解压tar包 tar -zxvf redis-6.0.5.tar.gz ...
- CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群
方案优势: Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短 每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集 ...
- CentOS7.3 安装配置 Nginx、MariaDB、PHP
CentOS7.3 安装配置 Nginx.MariaDB.PHP 配置 nginx 安装参数并安装 配置 以下参数也可以在后期通过配置 conf 文件进行配置 基本配置如下 ./configure - ...
- php7.0 + mysql5.7.10 + nginx7.0 web开发环境搭建(CentOS7)
一.搭建nginx开发环境 参考官方文档:http://nginx.org/en/linux_pac... 1.设置yum 官当提供了利用yum来安装.升级nginx的方法 在/etc/yum.rep ...
最新文章
- with tf.Session(config=tf.ConfigProto(log_device_placement=True))
- 网络爬虫介绍||为什么学网络爬虫
- 洛谷1090 合并果子
- sdn框架的计算机网络管理,清华SDN实践--SDN 系统架构与数据中心应用
- 智能用户增长神器QuickAudience开启公共云公测,助力企业业务增长
- [linux 日常]修改ls目录的颜色
- Spring Boot 学习系列(01)—从0到1,只需两分钟
- 如何显示或隐藏Mac电脑右上角的声音图标
- Effective C++ -----条款18:让接口容易被正确使用,不易被误用
- 软件质量管理实践总结
- cocos creator播放声音控制台显示Simulator: jsb: ERROR
- Arduino+nRF24L01接收端(二)
- FreeRTOS -- 简介
- Python自学笔记1(think python)
- 第21章、系统设定工具(网络与打印机)与硬件侦测
- 若A、B都是n阶正交阵,那么,A X B是正交阵吗?
- 千兆万兆以太网测试仪
- 新人学程序第一弹——Java程序实现九九乘法表
- 自考本科有用吗?对职业发展有多大用处
- 详解 C++ STL 六大组件,看完不懂打我...
热门文章
- 【PyCharm实用教程】最详细的Pycharm使用教程,你真不要进来学习一下?
- 学习reflux的总结
- HC-SR04超声波测距模块的高精度使用方法
- AFNetWorking改为同步请求
- WSO2 API Manager的使用
- error: failed to push some refs to ‘https://gitee.com/wangdxstudy/mygirl.git‘解决办法
- 十六进制转字符串,字符串转十六进制,相互转换
- 身份证批量识别 免费 身份证OCR识别 如何用python实现身份证识别
- PCI设备的访问方法_桥设备(type1)
- 微服务注册中心怎么选?