rsyslog

在Linux上,默认情况下,所有日志文件都位于/var/log目录下,有几种类型的日志文件存储不同的消息,可以是cron,内核,安全性,事件,用户,这些日志文件大多由rsyslog服务控制。

在最近使用systemd的系统上,一些日志由journald守护程序管理,它们是二进制格式的,这些日志是易失性的,因为它们被写入RAM并且不能承受系统重启,它们经常在/run/log/journal/上找到,但请注意,也可以将journald配置为通过写入文件来永久存储日志消息。

我们将把rsyslog服务器配置为集中式日志管理系统,rsyslog服务将侦听udp/tcp端口, rsyslog使用的默认端口是514,在客户端系统上,rsyslog将通过UDP或TCP端口通过网络收集日志并将日志发送到rsyslog服务器。

使用syslog消息时,存在表征日志文件的优先级/严重性级别,即:

emerg,panic(紧急):0级 - 这是最低的日志级别,系统无法使用。

警报(警报):1级 - 必须立即采取行动。

错误(错误):3级 - 危急情况。

警告(警告):等级4 - 警告条件。

通知(通知):第5级 - 正常但重要的条件。

info(信息):6级 - 信息性消息。

debug(Debugging):Level 7 - 这是最高级别 - 调试级别的消息。

安装Rsyslog

默认情况下,在Ubuntu 16.04系统上Rsyslog安装非常的简单,只需要一个命令,你可以通过运行以下命令来安装它:

sudo apt-get install rsyslog

安装后,检查服务以查看它是否正在运行,运行sudo systemctl status rsyslog命令即可:

systemctl status rsyslog

一、日志外发(日志服务器配置)

1、登录到服务器/日志服务器

2、编辑配置文件

sudo vim /etc/rsyslog.conf

取消注释udp和tcp端口绑定的行:

module(load="imudp")

input(type="imudp" port="514")

# provides TCP syslog reception

module(load="imtcp")

input(type="imtcp" port="514")

3、如果你想限制访问特定子网,IP或域,请添加如下:

$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com

可以在输入input(type=“imtcp” port=“514”)行后添加上面的行,请记住用正确的值替换给定的值。如下:


input(type="imtcp" port="514")$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com

4、创建用于接收远程消息的新模板(在日志服务器配置)

让我们创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在GLOBAL DIRECTIVES部分之前添加模板:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"

*.* ?remote-incoming-logs

& ~

收到的日志将使用上面的模板进行解析并存储在目录/var/log/中,文件命名遵循约定:%HOSTNAME% and %PROGRAMNAME%变量,即客户端主机名和生成日志消息的客户端工具:

& ~指示rsyslog守护程序仅将日志消息存储到指定的文件。

可以使用的其它变量包括:

%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, %$year%, %$month%, %$day%

重新启动rsyslog服务以使更改生效:

sudo systemctl restart rsyslog

5、确认服务是否正在侦听已配置的端口:

ss -tunelp | grep 514


6、配置Rsyslog防火墙
如果你的ufw防火墙服务正在运行,请允许rsyslog防火墙端口:

sudo ufw allow 514/tcp

sudo ufw allow 514/udp

4、保存退出,重启服务

 

 service syslog restart

二、日志外发(客户端)

sudo vim /etc/rsyslog.conf

1、允许保留FQDN:

$PreserveFQDN on

2、添加远程rsyslog服务器:


*.* @10.1.30.33:514

还可以使用FQDN而不是服务器IP地址:

*.* @fqdn-of-rsysog-server:514

以上行将允许通过UDP发送日志,因为tcp使用@@而不是单个@:

*.* @@10.1.30.33:514

或者:

*.* @@fqdn-of-rsysog-server:514
当rsyslog服务器关闭时,还要添加以下内容:

$ActionQueueFileName queue

$ActionQueueMaxDiskSpace 1g

$ActionQueueSaveOnShutdown on

$ActionQueueType LinkedList

$ActionResumeRetryCount -1

然后重启rsyslog服务:

systemctl restart rsyslog

二、 本地定期备份

首先:
开启cron日志

vi  /etc/rsyslog.d/50-default.conf

找到


#cron.* /var/log/cron.log

去掉注释
重启rsyslog

 service rsyslog restart

此时就可以查看日志了

tail -f /var/log/cron.log

使用crontab

  1. 使用crontab
  2. 第一次使用需要选择编辑器
select-editor
  1. crontab -e

  2. 每天23.30运行备份脚本

30 23 * * * /bin/bash /var/back_sh/back.sh

给脚本权限


chmod 777 /var/back_sh/back.sh

或直接编辑(针对系统的定时任务)

vi /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do. SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
30 23 * * * root /bin/bash /var/back_sh/back.sh


每天23.10运行备份脚本
脚本内容:

echo "The program being executed......"
back_dir=/var/dengbao/log_back
file_dir=/var/log #定义备份文件名字
file_name=`date +%Y-%m-%d --date='-1 day'` if [[ ! -d "${back_dir}" ]]; then
mkdir "${back_dir}"
fi if [[ ! -d "${back_dir}/${file_name}" ]]; then
mkdir "${back_dir}/${file_name}"
fi cp -r ${file_dir}/* ${back_dir}/${file_name}/
echo "succeed"

欢迎关注公众号:

Ubuntu 使用crontab定时备份log的更多相关文章

  1. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  2. Python +crontab定时备份目录发送邮件

    公司有一台静态页面展示服务器仅供给客户展示我们做的项目,当时买的时候是最低配,也就是磁盘空间为20G的系统盘,考虑到代码量很小所以没有另加磁盘,后来项目多了,就写了个crontab 定时备份目录. 就 ...

  3. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  4. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

  5. Linux下MySQL备份以及crontab定时备份

    1. 备份某个数据库 ################################################################## # 备份某个数据库 ############ ...

  6. MySQL使用crontab定时备份不执行问题

    在使用crontab定时备份数据库时,发现并没有执行备份命令. 下面是定时备份的代码: 30 1 * * * /usr/local/mysql/bin/mysqldump --defaults-ext ...

  7. Linux 使用crontab定时备份Mysql数据库

    项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...

  8. Ubuntu下的定时备份数据库

    1.编写备份数据库的shell脚本 mysqldump -uUserName -pPassword dbName >/XXX/XXXX/XXXX/fileName_$(date +%Y%m%d_ ...

  9. Gitlab备份,Crontab定时备份

    1:Gitlab备份非常简单,只需要一条命令就可以创建完整的备份 gitlab-rake gitlab:backup:create 使用以上命令,就相当于在/var/opt/gitlab/backup ...

  10. ubuntu crontab 定时备份postgres数据库并上传ftp服务器

    最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打 ...

随机推荐

  1. DeepSeek 不再卡顿,从此告别服务器繁忙,请稍后再试(建议收藏!)

    大家好,我是六哥. 由于DeepSeek真的太火了,也许你也跟我一样,常会遇到这样的情况: 真的让人抓狂,10条回复里常常有9条是"服务器blabla,请稍后重试",看到这话,就问 ...

  2. [业界方案] 智能运维AIOps-学习笔记

    [业界方案] 智能运维-学习笔记 目录 [业界方案] 智能运维-学习笔记 0x00 摘要 0x01 AIOps 背景 1.1 AIOps概述 1.2 AIOps场景 1.3 AIOps能力 1.4 A ...

  3. Q:linux(群晖)修改网卡速率

    问题:群晖速度莫名其妙变成了1MB/s左右,查看网络状态 网卡配置变成 全双工10Mb/s 解决方法 首先开启ssh登录权限 1.控制面板 – 终端机和SNMP里,开启SSH功能. 2.通过ssh连接 ...

  4. Java SPI机制及实现

    一.简介 SPI 的全称为 (Service Provider Interface),是 JDK 内置的一种服务提供发现机制.主要由工具类 java.util.ServiceLoader 提供相应的支 ...

  5. 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现

    家里小朋友养了一只小乌龟,到了冬天就冬眠了,早早地准备了一个冬眠箱,铺上椰土,在室温低于15℃时,就把小乌龟放到冬眠箱里,不一会儿它就自己钻入土中把自己藏了起来.按照惯例,需要每隔一定时间,对冬眠箱进 ...

  6. 如何为 .NET 在线客服系统的 Open Api 开放接口实现 QPS 限流功能

    我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 而我收到的用户需求也越来越多,产品化的 ...

  7. STM32的SYSTICK 定时器(系统滴答定时器)

    什么是SysTick? 这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一 ...

  8. macbookpro m3本地部署DeepSeek模型

    macbookpro m3有着十分强大的性能.在deepseek如火如荼的当下,可以尝试在本地部署并使用.还可以将自己的文档作为语料喂给deepseek,使其能成为自己专属的AI助手. 本文介绍使用o ...

  9. 植物大战僵尸杂交版最新版(PC+手机+苹果)+ 修改器+高清工具

    游戏介绍 <植物大战僵尸杂交版>在保留原作经典塔防玩法的基础上,进行了大胆创新和优化.潜艇伟伟迷通过融合多种植物和僵尸元素,创造了全新的游戏体验.玩家不仅能体验到熟悉的植物防御僵尸的乐趣, ...

  10. keycloak~refresh_token的标准化

    内容大纲 refresh_token作用 使用方法 refresh_token规范 keycloak开启refresh_token的限制 refresh_token时的错误汇总 keycloak中re ...