syslogd是Linux下的一个记录日志文件服务。从结构来说,可以理解为这个服务下面有一系列的子服务,例如mail、auth、cron、kern等等,这些子服务对外提供日志记录的功能,而当其它的程序或服务需要记录日志的时候,就可以直接调用这些子服务将日志记录到设定的地方。而配置这整个守护进程以及其子服务的地方就是/etc/syslog.conf这个文件。

说明

而目前不少的Linux发行版已经用rsyslogd将syslogd代替了。rsyslogd是syslogd的升级版,其配置语法与syslogd的配置文件一致。
需要说明的是,在更老的版本中,syslogd作为服务端的配置是在/etc/sysconfig/syslog.conf配置文件中的,而现在很多的发行版采用了rsyslog之后就没有这个配置文件了。甚至在ubuntu中本身就不存在/etc/sysconfig/这个文件夹,这跟红帽系的发行版就不一样。而在rsyslog的配置文件中,也有少许不同:
#  ubuntu下的写法
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514") # centos下的写法
# udp协议
$ModLoad imudp
$UDPServerRun 514
# tcp协议
$ModLoad imtcp
$InputTCPServerRun 514
上面的两种写法作用都是一样的。

配置文件语法

基础的配置语法可以参照《鸟哥的Linux私房菜:基础学习篇》第19章的内容。下面是将rsyslog配置成客户端/服务器这种结构。
不同的发行版的配置形式有所不同,下面仅以ubuntu16.04LTS版为例说明。
 

配置

服务器端

以ubuntu作为日志系统的服务器,需要进行一下简单的配置:

1.  在/etc/rsyslog.conf配置文件以下的语句去掉注释:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
2.  # 定义模板(可选),如果没有模板就跟本机的日志文件混在一起
$template templatename ,  '/var/log/%HOSTNAME%/%PROGRAMNAME%.log' *
# 使用日志模板写入日志
*.* ?templatename
&~

"& ~"表示了一个重定向规则,被用来告知rsyslog守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重定向规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。

客户端

在客户端方面,只要将对应的子服务的目标储存文件写成远程的ip:port 即可,例如:

# mail  @指明用udp协议传输
mail.* @192.168.150.138:514 # auth @@指明用udp协议传输
auth.* @@192.168.150.138:514 # 更常见的是全部日志文件都指向远程主机 *.* @192.168.150.138:514

3. 修改了配置文件之后,无论是客户端还是服务器端,都要重启rsyslogd服务

sudo service rsyslog restart

syslog/rsyslog的使用的更多相关文章

  1. syslog,rsyslog and syslog-ng

    http://en.wikipedia.org/wiki/Syslog Syslog is a standard for computer message logging. It permits se ...

  2. syslog+rsyslog+logstash+elasticsearch+kibana搭建日志收集

    最近rancher平台上docker日志收集捣腾挺久的,尤其在配置上,特写下记录 Unix/Linux系统中的大部分日志都是通过一种叫做syslog的机制产生和维护的.syslog是一种标准的协议,分 ...

  3. syslog syslog-ng rsyslog flume scribe 各种尝试

    1. syslog概念 syslog本身是一种协议, 一个用来描述系统日志格式的协议, 当前的协议包括三部分: 如下面是一个syslog消息: <30>Oct 9 22:33:20 hlf ...

  4. rsyslog & syslog详解

    前言: rsyslog 是一个 syslogd 的多线程增强版.syslog是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提 ...

  5. 集中日志服务器Rsyslog

    http://www.gaizaoren.org/archives/408 基于主机的管理一般需要收集服务器的日志信息用于及时发现错误,处理故障. 搭建linux下的集中日志服务器的程序一般可以用sy ...

  6. CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

  7. CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

  8. Rsyslog配置文件详解

    Rsyslog配置文件详解https://my.oschina.net/0757/blog/198329 # Save boot messages also to boot.log 启动的相关信息lo ...

  9. Linux 日志服务器 rsyslog

    预先需要httpd.php.mysql,yum方式安装.创建数据库: yum install rsyslog rsyslog-mysql cd /usr/share/doc/rsyslog-mysql ...

随机推荐

  1. Flask初学者:Python虚拟环境,Flask安装,helloworld,run方法

    一.Python虚拟环境: 作用:使Python框架的不同版本可以在同一台电脑上运行.如果在电脑上全局(C盘或者其他目录)安装Flask(或其他Python框架),当你使用其他版本的Flask(比如有 ...

  2. 简单聊聊四层/七层模型到HTTP

    本文内容借鉴这篇博客:https://blog.csdn.net/agzhchren/article/details/79173491 但是这篇博客也是该博主转载的,文章具体出处我没有找到,如果有人知 ...

  3. http--一次完整的HTTP事务是怎样一个过程?【转】

    一次完整的HTTP事务是怎样一个过程? 如有收获请给作者点赞 --> 原文链接 声明:本文章中的说法仅是个人理解总结,不一定完全正确,但是可以有助于理解. 当我们在浏览器的地址栏输入 www.l ...

  4. 版本控制之GitHub — — 第一步的理解

    GitHub是时下最流行的版本控制的一门“技术”,此之前svn(subversion)也是同样的作用. 至于版本控制:Git是分布式的,而svn是中心式的(或者叫集中式的)版本控制系统,这是两者之间理 ...

  5. qt4.8.5 qtwebkit 静态编译 版本

    2013年就编译好了,qtwebkit是最不好编译的了,尤其是静态编译,这儿分享给大家 估计总有人会用得到... 静态库下载地址:http://yunpan.cn/cyyNqrApbVDwq  提取码 ...

  6. 80C51单片机指令的取指、执行时序

    80C51单片机指令的取指.执行时序 现按4类指令介绍CPU时序.因为CPU工作的过程就是取指令与执行指令的过程,所以CPU必须先取出指令,然后才能执行指令. 1.双字节单周期指令 由于双字节单周期指 ...

  7. loj2073 「JSOI2016」扭动的回文串

    ref 主要是要理解"撑到"最长这个概念 (为啥我的代码这么长QAQ #include <iostream> #include <cstdio> using ...

  8. 【word ladder】cpp

    题目: Given two words (beginWord and endWord), and a dictionary, find the length of shortest transform ...

  9. 使用shell脚本生成数据库markdown文档

    学习shell脚本编程的一次实践,通过shell脚本生成数据库的markdown文档,代码如下: HOST=xxxxxx PORT=xxxx USER="xxxxx" PASSWO ...

  10. Google Optimize 安装使用教程

    Google Optimize 介绍 打开链接 https://optimize.google.com/optimize/signup/ 填入电邮地址后等待注册邀请 Google Optimize是什 ...