由于等保要求重要日志必须保留 180 天,而 AF 防火墙等设备建议异地保存!所以,使用 rsyslog 自行搭建一个 log 服务器。至于加入到 mysql 和 loganalyzer ,等保没有要求,以后再说

官方文档
The rocket-fast Syslog Server
RSyslog Documentation

官方仓库
rsyslog/rsyslog

ubuntu 上安装文档
Install rsyslog on Ubuntu

参考
【详解】Rsyslog配置及日志服务器搭建(rsyslog+mysql+loganalyzer)

实验环境
服务端 : 192.168.2.205 (ubuntu 20.04 虚拟机)
客户端 : 192.168.2.206 (ubuntu 20.04 虚拟机)

安装

  1. 按照以上安装文档,服务端和客户端都同样安装

    sudo add-apt-repository ppa:adiscon/v8-devel
    sudo apt-get update
    sudo apt-get install rsyslog

  2. 查看安装版本

    $ rsyslogd -v

     rsyslogd  8.2008.0.9d70869d4ea5 (aka 2020.08) compiled with:PLATFORM:                x86_64-pc-linux-gnuPLATFORM (lsb_release -d):       FEATURE_REGEXP:             YesGSSAPI Kerberos 5 support:       NoFEATURE_DEBUG (debug build, slow code):   No32bit Atomic operations supported:    Yes64bit Atomic operations supported:   Yesmemory allocator:            system defaultRuntime Instrumentation (slow code):  Nouuid support:             Yessystemd support:         YesConfig file:             /etc/rsyslog.confPID file:              /var/run/rsyslogd.pidNumber of Bits in RainerScript integers: 64See https://www.rsyslog.com for more information.
    
  3. 查看服务状态,可见已经设置为自动启动

    $ sudo systemctl status rsyslog.service

    $ sudo systemctl list-unit-files |grep rsyslog

  4. 防火墙
    sudo ufw allow 514
    sudo ufw allow 514/udp

    学习的时候可以先都关掉,之后再开启并设置

配置服务端

  1. 官方建议下载一份样本,学习一下
    https://www.rsyslog.com/doc/v8-stable/_downloads/7e57a40acf92e68e8c6a36de79acc04d/rsyslog-example.conf

  2. 修改 /etc/rsyslog.conf
    一般开启 udp 方式就好
    去掉以下 2 个注释即可

    $ModLoad imudp
    $UDPServerRun 514

  3. 最后一句: $IncludeConfig /etc/rsyslog.d/*.conf
    说明其他配置(规则、模版)都在 /etc/rsyslog.d 目录下

    这有已经建立了 3 个 conf 文件

    dhbm@ubuntu2004-205:/etc/rsyslog.d$ ls

     20-ufw.conf  21-cloudinit.conf  50-default.conf
    
  4. 普通使用就修改这个 50-default.conf ,可以直接在文件开头加上了以下内容

    我这里自行创建了一个 conf 文件

    dhbm@ubuntu2004-206:/etc/rsyslog.d$ cat wzh.conf

     # wzh 20220412#$AllowedSender TCP, 127.0.0.1, 192.168.2.0/24, *.example.com$AllowedSender UDP, 127.0.0.1, 192.168.2.0/24, *.example.com# A template that resambles traditional syslogd file output:$template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n"## 以下 2 种分类方式都可以# 分类方式一# 按照客户端的HOSTNAME 分别创建不同目录,rsyslog需要手动创建# 每天只创建一个文件$template remote-incoming-logs,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%_%$YEAR%-%$MONTH%-%$DAY%.log"*.* ?remote-incoming-logs# 分类方式二# 根据客户端的IP单独存放主机日志在不同目录,rsyslog需要手动创建# $template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%syslogtag%_%$YEAR%-%$MONTH%-%$DAY%-%$hour%:%$minute%.log"# 每天只创建一个文件# $template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%syslogtag%_%$YEAR%-%$MONTH%-%$DAY%.log"# :fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs# & ~# Forwarding to remote machine# 127.0.0.1 可以作为本机测试用,既是服务端,又是客户端# 作为服务端,全都注释掉# 作为客户端,修改以下服务端 ip ,注意,IP最后不要空格# ----------------------------# *.*   @192.168.2.205# udp (standard for syslog)# *.* @@192.168.2.205# tcp*.*   @127.0.0.1# udp (standard for syslog)*.*   @@127.0.0.1# tcp
    

    主要就是以下 3 个部分
    1). $AllowedSender
    2). $template
    3). # Forwarding to remote machine

    其实,服务端和客户端没有什么区别
    作为服务端用的话,注释掉以上3). # Forwarding to remote machine

  5. 强烈建议自行手动创建 rsyslog 目录,记得要修改 owner

    如果简单在 /vor/log 同级目录也是可以的,但是调试的时候经常会 sudo rm 掉该目录,这样子的话,再次运行的时候,由于该目录 owner 已经被改变,会出现creat 或 open 错误

    $ cd /var/log
    $ sudo mkdir rsyslog
    $ sudo chown syslog:adm rsyslog

  6. 只要修改了 conf ,一定记得检查语法、重启服务、检查状态
    $ rsyslogd -f /etc/rsyslog.conf -N1

    错误的结果:

     rsyslogd: version 8.2008.0.9d70869d4ea5, config validation run (level 1), master config /etc/rsyslog.confrsyslogd: error during parsing file /etc/rsyslog.conf, on or before line 61: STOP is followed by unreachable statements!  [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2207 ]
    

    正确的结果:

     rsyslogd: version 8.2008.0.9d70869d4ea5, config validation run (level 1), master config /etc/rsyslog.confrsyslogd: End of config validation run. Bye.
    

    $ sudo service rsyslog restart
    $ sudo service rsyslog status

配置客户端

  1. 客户端和服务端实际没有区别

  2. 再次抄录一下前面写的 conf 文件说明

    主要就是以下 3 个部分
    1). $AllowedSender
    2). $template
    3). # Forwarding to remote machine

    其实,服务端和客户端没有什么区别
    作为服务端用的话,注释掉以上3). # Forwarding to remote machine

  3. 过程省略,以下分别测试的时候再操作

测试:192.168.2.206 既是服务端,又是客户端的测试过程和结果

  1. 随便找个可以触发 syslog 的命令

    $ sudo service nginx stop
    $ sudo service nginx start

    这个操作应该会触发 sudo 日志 和 systemctl 日志
    nginx 日志也会触发的,但是,rsyslog 中没有单独列出来

  2. 以上我使用了分类方式一,所以,应该会在 /var/log/rsyslog 目录下产生一个 客户端 hostname 的目录 (我这里是 ubuntu2004-206)

    dhbm@ubuntu2004-206:/var/log/rsyslog$ ll

     total 12drwxr-xr-x  3 syslog adm    4096 Apr 13 15:02 ./drwxr-xr-x 12 root   syslog 4096 Apr 13 15:00 ../drwxr-xr-x  2 syslog syslog 4096 Apr 13 15:44 ubuntu2004-206/
    

    为了看得清楚,我干脆先删除之前的历史文件
    dhbm@ubuntu2004-206:/var/log/rsyslog/ubuntu2004-206$ sudo rm .

  3. 重新执行以上命令

    $ sudo service rsyslog restart
    $ sudo service nginx stop
    $ sudo service nginx start

    查看结果
    dhbm@ubuntu2004-206:/var/log/rsyslog/ubuntu2004-206$ ll

     total 57132drwxr-xr-x 2 syslog syslog     4096 Apr 13 16:04  ./drwxr-xr-x 3 syslog adm        4096 Apr 13 15:02  ../-rw-r----- 1 syslog adm    29381630 Apr 13 15:44 '**INVALID PROPERTY NAME**'-rw-r----- 1 syslog adm    14627766 Apr 13 16:04  rsyslogd_2022-04-13.log-rw-r----- 1 syslog adm     2784774 Apr 13 16:04  sudo_2022-04-13.log-rw-r----- 1 syslog adm    11692889 Apr 13 16:04  systemd_2022-04-13.log
    

    可以看到,产生了 4 个 log ,写本文的时候才注意到第一个错了,后续再处理!

测试:客户端 - 192.168.2.206 ,服务端-192.168.2.205 的测试过程和结果

  1. 客户端(192.168.2.206)修改
    抱歉!写错了,应该是服务端?

    将以上 # Forwarding to remote machine 中 127.0.0.1 注释掉,改为 192.168.2.205
    改用方式二

    dhbm@ubuntu2004-206:/etc/rsyslog.d$ sudo vim wzh.conf

    dhbm@ubuntu2004-206:/etc/rsyslog.d$ sudo service rsyslog restart
    dhbm@ubuntu2004-206:/etc/rsyslog.d$ sudo service rsyslog status

    先确认 rsyslog status 正确!

  2. 打开服务端 (192.168.2.205)

    dhbm@ubuntu2004-205:/var/log/rsyslog$ ll
    total 16
    drwxr-xr-x 4 syslog adm 4096 Apr 13 11:28 ./
    drwxr-xr-x 12 root syslog 4096 Apr 13 10:36 …/
    drwxr-xr-x 2 syslog syslog 4096 Apr 13 14:47 192.168.2.206/
    drwxr-xr-x 2 syslog syslog 4096 Apr 13 11:28 ubuntu2004-205/

    之前也有残留,先删除它!
    $ sudo rm -rf 192.168.2.206/
    $ sudo service rsyslog restart

  3. 同样在客户端也执行以下操作
    dhbm@ubuntu2004-206:/etc/rsyslog.d$ sudo service nginx stop
    dhbm@ubuntu2004-206:/etc/rsyslog.d$ sudo service nginx start

  4. 立刻回到服务端,可以看到又出现了 192.168.2.206/ 目录

    dhbm@ubuntu2004-205:/var/log/rsyslog/192.168.2.206$ ll

     total 20drwxr-xr-x 2 syslog syslog 4096 Apr 13 16:19 ./drwxr-xr-x 4 syslog adm    4096 Apr 13 16:19 ../-rw-r----- 1 syslog adm    1202 Apr 13 16:19 rsyslogd_2022-04-13.log-rw-r----- 1 syslog adm    1172 Apr 13 16:19 sudo_2022-04-13.log-rw-r----- 1 syslog adm    1022 Apr 13 16:19 systemd_2022-04-13.log
    

    同样是触发了 sudo 和 systemd 日志
    自行打开看看

错误处理

  1. cat /var/log/rsyslog.log

    Apr 12 17:00:25 ubuntu2004-206 rsyslogd: cannot connect to 192.168.2.205:514: Connection refused [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2027 ]

    防火墙问题

  2. cat /var/log/rsyslog.log

    Apr 12 16:55:29 ubuntu2004-206 rsyslogd: cannot resolve hostname '192.168.2.205 ': Invalid argument [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2027 ]

    这个比较坑,注意 192.168.2.205 后面有个空格!

  3. cat /var/log/rsyslog.log

    Apr 13 08:59:17 ubuntu2004-205 rsyslogd: error during config processing: omfile: creating parent directories for file ‘/var/log/rsyslog/192.168.2.206/sudo:_2022-04-13-08:59.log’ failed: Permission denied [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2207 ]
    Apr 13 08:59:17 ubuntu2004-205 rsyslogd: error during config processing: Could not open dynamic file ‘/var/log/rsyslog/192.168.2.206/sudo:_2022-04-13-08:59.log’ [state -3000] - discarding message [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2207 ]

    这个是应为调试的时候。手工 sudo rm -rf /var/log/rsyslog/ 之后, 目录的 owner 改变了

  4. $ rsyslogd -f /etc/rsyslog.conf -N1

    rsyslogd: version 8.2008.0.9d70869d4ea5, config validation run (level 1), master config /etc/rsyslog.conf
    rsyslogd: error during parsing file /etc/rsyslog.conf, on or before line 61: STOP is followed by unreachable statements! [v8.2008.0.9d70869d4ea5 try https://www.rsyslog.com/e/2207 ]

这个是因为 template 最后跟着 & ~,这个表示丢弃后续的所有日志处理

ubuntu 20.04 搭建 rsyslog 服务器相关推荐

  1. ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务

    ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务--超详细 一,samba的基本概念 二,samba的安装 三,samba的基本配置 创建文件夹 ...

  2. Ubuntu 20.04 搭建 PXE/iPXE Server

    Ubuntu 20.04 搭建 PXE iPXE Server Introduction PXE Server组件 Configure Static IP Address Configure DHCP ...

  3. ubuntu 22.04搭建OpenVPN服务器

    为了公司与分公司之前的内部服务器和办公电脑之间能够相互访问,打算使用VPN,对于VPN,以前用得多的是PPTP; 但是PPTP相对于openvpn来说,没有openvpn安全,而且PPTP在linux ...

  4. Ubuntu 20.04 搭建 DVWA 靶场

    文章目录 0x01. 前言 0x02. 系统和靶场信息 0x03. 具体安装配置过程 0x01. 前言 之前写过在Kali 上搭建 DVWA,因为Kali上已经预装了很多软件和依赖,所以比较方便,最近 ...

  5. Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统

    0. 摘要 本文根据 Fisco-BCOS 及 Webase 官方文档,就安装过程做了详细描述.针对官方文档中一些不清楚的地方,做了补充,方便新手搭建. 1. 准备工作 1.1 系统: Ubuntu ...

  6. 烂泥:ubuntu 14.04搭建Open***服务器

    本文首发于烂泥行天下 公司分部需要连接公司内部的服务器,但是该服务器只允许公司内部的网络访问. 为了解决这个问题,打算使用×××.对于×××以前使用最多的是PPTP这个解决方案,但是PPTP相对于op ...

  7. linux乌班图做服务器,使用 Ubuntu 16.04 搭建全能服务器

    本文教你如何在 Ubuntu 16.04 上安装 Apache.PHP.MySQL.PureFTPD.BIND.Postfix.Dovecot 和 ISPConfig 3.1 搭建一个网站.邮件.邮件 ...

  8. ubuntu 20.04搭建elasticsearch-7.6.2

    目录 ubuntu安装 es7.6.2 安装步骤 上传至Ubuntu 服务器 这里我存放在 /usr/ 解压elasticsearch-7.6.2-linux-x86_64.tar.gz 出现问题及解 ...

  9. Ubuntu 18.04 搭建 gitlab服务器记录

    首先现在官方的deb包,下载地址:https://packages.gitlab.com/gitlab/gitlab-ee/packages/ubuntu/bionic/gitlab-ee_11.11 ...

  10. Ubuntu 18.04搭建Git服务器

    学习链接:博客园.廖雪峰 一 前言 前面已经贴了两个链接,为什么还要再写一篇呢,因为可能由于个人能力问题,我觉得上面两篇写的都有点简略,有些地方不太好理解,并不能一次性成功搭建,所以想根据自己踩过的坑 ...

最新文章

  1. Java中BASE64 编码
  2. spring boot实战(第九篇)Application创建源码分析
  3. LeetCode19删除链表的倒数第N个节点20有效的括号
  4. JavaScript实现切换数字的符号switchSign算法(附完整源码)
  5. 机器学习与气象数据_气象大数据与机器学习联合实验室 大数据和气象的“联姻”...
  6. 编程加速服务器_FPGA加速驱动新时代的数据洪流,下篇
  7. axios get请求方式
  8. mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...
  9. 好用的小工具系列之---fastJson
  10. Android app修改IMEI号
  11. wunderlist会提示找不到libffi.so.5
  12. android使用SwipeRefreshLayout下拉刷新
  13. 坐标变换(5)—用旋转轴和旋转角表示旋转
  14. 汽车电子控制器(ECU)的硬件设计流程
  15. Android开发必知的maven-publish插件知识
  16. 雷霆战机服务器维护公告,雷霆战机停服公告 4月11日服务器维护
  17. 《鹰猎长空》讲述戏曲与电影的渊源
  18. (新手版)GitHub 使用思想,上传,首次上传及日常使用教程(肯定看得懂)
  19. 手机端h5唤起苹果地图
  20. 工作流Activiti集成构建自有平台方案

热门文章

  1. spring cloud中微服务之间的调用以及eureka的自我保护机制
  2. 《深入理解java虚拟机》 - 需要一本书来融汇贯通你的经验(下)
  3. Scala中的“=”和“-”
  4. 《剑指offer》-中序遍历下一个节点
  5. vim ,vi总是卡死,终于找到原因了。
  6. 【Android】Scrollview返回顶部,快速返回顶部的功能实现,详解代码。
  7. Android——内存调试
  8. 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
  9. 数据库基本----SQL语句大全(转载)
  10. 技巧----时间优化