1、以IP地址命名

在/etc/rsyslog.conf中加入如下配置,并做好备注。添加这三行配置之后,远程日志会被单独输出到一个以IP命名的日志文件中。

#IP format by zhz at xxxx-xx-xx
$template IpTemplate,"/var/log/%FROMHOST-IP%.log"
*.* ?IpTemplate
& ~

2、设备名&日期

Rsyslog的日志轮询默认为一周,保存4周,如果生产中日志产生量很大,或者设备数目过多的话,查询时就会遇到障碍,此时我们选择将日志以设备名和日期来命名日志,此处以天为单位,每天存储一份。在/etc/rsyslog.conf中加入如下配置,并做好备注。

#Divided by prefecture and city,end by date.(以省和地市划分)

#province(省公司)
$EscapeControlCharactersOnReceive off
$template PRO-SW-,"/var/log/province/PRO-SW-01_log.%$year%-%$month%-%$day%"
$template myFormat,"%msg%\n"
:rawmsg,contains,"PRO-SW-01" -?PRO-SW-;myFormat $EscapeControlCharactersOnReceive off
$template PRO-QR-,"/var/log/province/PRO-QR-01_log.%$year%-%$month%-%$day%"
$template myFormat,"%msg%\n"
:rawmsg,contains,"PRO-QR-01" -?PRO-QR-;myFormat #huawei-route(地市公司的华为路由)
$EscapeControlCharactersOnReceive off
$template City--QR-,"/var/log/NE40X3/City-QR-01_log.%$year%-%$month%-%$day%"
$template myFormat,"%msg%\n"
:rawmsg,contains,"City--QR-01" -?City--QR-;myFormat #H3c-Quitway-route---1#经测试这个模式日志会不显示时间,建议用-2方式
$EscapeControlCharactersOnReceive off
$template City-SR-,"/var/log/SR/City-SR-01_log.%$year%-%$month%-%$day%"
$template myFormat,"%msg%\n"
:rawmsg,contains,"City-SR-01" -?City-SR-;myFormat #H3c-Quitway-route-2(地市公司的华三路由) $template logformat,"%TIMESTAMP% %FROMHOST-IP%%msg%\n"
$template DynFile_HXJF-NE20-01,"/var/log/SR6604_log.%$year%-%$month%-%$day%"
$template DynFile_HXJF-SR6604-01,"/var/log/SR6604_log.%$year%-%$month%-%$day%" #devide to dir(以文件夹划分)
:rawmsg, contains, "HXJF-NE20-01" ?DynFile_HXJF-NE20-01;
:rawmsg, contains, "HXJF-SR6604-01" ?DynFile_HXJF-SR6604-01; #huawei-sw(地市华为交换机) $EscapeControlCharactersOnReceive off
$template City-SW-,"/var/log/S5756/City-SW-01_log.%$year%-%$month%-%$day%"
$template myFormat,"%msg%\n"
:rawmsg,contains,"City-SW-01" -?City-SW-;myFormat

3、采用默认的存储方式

如果采用默认的方式的话,即以周为轮询单位,存储4周。

4、日志备份

不管采取哪种方式,显然只有一台日志主机的话,会存在单点故障,为了解决这个问题,我们将收集的日志采用定期备份的方式推送到Backup服务器上,我这里使用的是rsync。

思路如下:

  通过本地打包备份,rsync应用把日志数据统一备份到一个固定的存储服务器上,通过脚本检测并通知管理员备份的结果。

rysnc的有关知识请查阅本博客:https://www.cnblogs.com/daynote/p/9006571.html

5、服务监测

#!/bin/bash
#copy by Mr.zhang at --
#This script is used to detect the status of the log server #parameter defined
##定义多个邮箱
MAIL="1888888888@163.com,mangdou@baidu.com"
BAKDATE=`date +%c`
LOG=`ps -ef | grep rsyslog | wc -l` #check backup result
if [ $LOG -ne ]
then
echo -e "Log site can't be accessed\n ${BAKDATE}" | mail -s "Log Site Down" $MAIL
else
echo "${BAKDATE} All Log Site is good" &>>/var/log/zhang.log
fi

6、定时任务

#每天早上8:30份检测一遍。

30 08 *  *  * /bin/sh /server/scripte/check_rsyslog_site.sh &>/dev/null

Centos6.5部署Rsyslog-日志的存储方式及监测服务状态的更多相关文章

  1. Centos6.5部署Rsyslog+cron+rsync备份服务器

    1.前言 rsync是一种快速且功能非常广泛的文件复制工具.它可以在本地复制,通过任何远程shell复制到/从另一个主机复制,也可以复制到/从远程rsync守护进程.它提供了大量的选项,可以控制其行为 ...

  2. Centos6.5部署Rsyslog+LogAnalyzer收集网络及系统日志

    1. 介绍 Rsyslog是比syslog功能更强大的日志记录系统,可以将日志输出到文件,数据库和其它程序.可以使用rsyslog替换系统自带的syslog. LogAnalyzer 是一个 sysl ...

  3. log_output参数是指定日志的存储方式

    log_output='FILE'表示将日志存入文件,默认值是'FILE' log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中. mys ...

  4. Centos6.5部署Rsyslog+LogAnalyzer中文乱码解决

    中文乱码 [root@log include]# pwd /zhang/app/loganalyzer-/src/include [root@log include]# vim functions_c ...

  5. 将shell脚本运行情况写入Rsyslog日志server

    在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时运行完毕一些日常工作,实现运维工作自己主动化.比方在我的日常工作中备份数据是一项重要的工作,须要定时将数据备份到备份服器和一些其它的备份介 ...

  6. iNeuOS工业互联网操作系统,发布实时存储方式:实时存储、变化存储、定时存储,增加设备振动状态和电能状态监测驱动,v3.6.2

    目       录 1.      概述... 1 2.      平台演示... 2 3.      存储方式... 2 4.      设备状态和用电状态监控驱动... 3 1.   概述 本次升 ...

  7. CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器

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

  8. rsyslog日志服务部署

    rsyslog简介 rsyslog是CentOS6和CentOS7默认的记录日志的服务 支持特性: UDP, TCP, SSL, TLS, RELP MySQL, PGSQL, Oracle实现日志存 ...

  9. docker方式部署elk日志搜索平台

    Docker部署ELKF操作文档 前提介绍 1.之前搭建elk+f+k使用原生系统软件安装方式,由于docker镜像日趋成熟,docker官网和elastic官网都有相关镜像和各自安装文档可供参考,各 ...

随机推荐

  1. 【python】声明编码的格式

    来自:http://www.xuebuyuan.com/975181.html 编码声明必须在第一行或者第二行,且要符合正则表达式 "coding[:=]\s*([-\w.]+)" ...

  2. java多线程机制中的Thread和Runnable()区别

    1.java语言使用Thread类及其子类对象来表示线程,新建的一个线程声明周期中经历 新建.(声明一个线程,此时他已经有了相应的内存空间和其他资源),运行(线程创建之久就据用了运行的条件,一旦轮到使 ...

  3. JS中----this的指向和如何修改this的指向

    this this是js中的一个关键字,函数运行时自动生成的一个内部对象,只能在函数内部使用.我们要讨论的是 this 的指向. this就是函数运行时自动生成的一个内部对象 下面介绍一下几种情况下, ...

  4. Java和C冒泡排序

    Java 示例代码: public class test { public static void main(String[] args) { String str = "321dca5&q ...

  5. 详解C程序编译、链接与存储空间布局

    被隐藏了的过程 现如今在流行的集成开发环境下我们很少需要关注编译和链接的过程,而隐藏在程序运行期间的细节过程可不简单,即使使用命令行来编译一个源代码文件,简单的一句"gcc hello.c& ...

  6. hdfs数据到hbase过程

    需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 hbase创建好表 cre ...

  7. Git 将本地库添加到远程仓库

    git remote add origin ssh://admin@127.0.0.1:29418/Prjs/prj1.git git push -u origin master

  8. Multi label 多标签分类问题(Pytorch,TensorFlow,Caffe)

    适用场景:一个输入对应多个label,或输入类别间不互斥 调用函数: 1. Pytorch使用torch.nn.BCEloss 2. Tensorflow使用tf.losses.sigmoid_cro ...

  9. JMeter执行压测输出HTML图形化报表(一)

    一.应用场景 1.无需交互界面或受环境限制(linux text model) 2.远程或分布式执行 3.持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于 ...

  10. excel追加数据

    原本是想通过读取已存在的文件的行然后直接添加保存,发现结果会被覆盖. 后来查找方法发现需要复制原表. 函数参数: list:要添加的数据 filename:目标文件 sheet_index:默认表的第 ...