安装、配置rsyslog日志服务器

打印 上一主题 下一主题

主题 572|帖子 572|积分 1720

一、centos7.9默认已经安装rsyslog
1、程序环境:
​ 配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/
​ 主程序:/usr/sbin/rsyslogd
​ 模块路径:/usr/lib64/rsyslog/
​ Unit File:/usr/lib/systemd/system/rsyslog.service
2、rsyslog中的术语:
​ facility:设施、信道;
​ auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7
​ priority:记载日志的等级,假如等级是info,代表包含了info以及以上的所有等级变乱日志都记载
​ debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)
3、配置文件:
​ 由三部门构成:严格按照配置段位置添加配置
  1. [12:58 root@centos6.8~]# grep "####" /etc/rsyslog.conf
  2. #### MODULES ####
  3. #### GLOBAL DIRECTIVES ####
  4. #### RULES ####
复制代码
​ MODULES:定义了模块的选修,如接下来的利用mysql模块记载日志则需要在这里配置
​ GLOBAL DIRECTIVES:定义了全局的环境
​ RULES:定义了记载日志的设施以及等级等信息
RULES的语法说明
  1. facitlity.priority          Target
  2. 设备     .级别               动作
  3. ===============================================================
  4. #设备字段:
  5. =====================================================================
  6. auth         #pam产生的日志,认证日志
  7. authpriv     #ssh,ftp等登录信息的验证信息,认证授权认证
  8. cron         #时间任务相关
  9. kern         #内核
  10. lpr          #打印
  11. mail         #邮件
  12. mark(syslog) #rsyslog服务内部的信息,时间标识
  13. news         #新闻组
  14. user         #用户程序产生的相关信息
  15. uucp         #unix to unix copy, unix主机之间相关的通讯
  16. local 1~7    #自定义的日志设备
  17. ===============================================================
  18. #priority: 级别日志级别:
  19. =====================================================================
  20. 7 debug           #有调式信息的,日志信息最多
  21. 6 info            #一般信息的日志,最常用
  22. 5 notice          #最具有重要性的普通条件的信息
  23. 4 warning, warn   #警告级别
  24. 3 err, error      #错误级别,阻止某个功能或者模块不能正常工作的信息
  25. 2 crit            #严重级别,阻止整个系统或者整个软件不能正常工作的信息
  26. 1 alert           #需要立刻修改的信息
  27. 0 emerg, panic    #内核崩溃等严重信息
  28. none            #什么都不记录
  29. ###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。
  30. =====================================================================
  31. Target:
  32. =====================================================================
  33.   #文件, 如/var/log/messages
  34.   #用户, root,*(表示所有用户)
  35.   #日志服务器,@172.16.22.1
  36.   #管道        | COMMAND
复制代码
  1. 举例:
  2. mail.info  /var/log/maillog:  比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
  3. mail.=info  /var/log/maillog: 明确指定日志级别为info,保存至/var/log/maillog
  4. mail.!info  /var/log/maillog: 除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
  5. *.info      /var/log/maillog: 所有facility的info级别,保存至/var/log/maillog
  6. mail.*     /var/log/maillog:  mail的所有日志级别信息,都保存至/var/log/maillog
  7. mail.notice;news.info  /var/log/maillog: mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
  8. mail,news.crit  -/var/log/maillog:  mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式
复制代码
客户端的动作有
  1. @hostname            -将信息发送可解析远程主机hostname或IP,该主机必须正在运行rsyslogd,并可以识别rsyslog的配置文件,使用upd:514端口传送日志信息
  2. @@hostname         -将信息发送可解析远程主机hostname或IP,该主机必须正在运行rsyslogd,并可以识别rsyslog的配置文件,使用tcp:514端口传送日志信息
  3. filename         -指定绝对路径的日志文件名来记录日志信息
  4. :omusrmsg:users    -发送信息到指定的用户,users可以是用逗号分隔符的用户类别,*表示所有用户
  5. device                     -将信息发送到指定设备中,如/dev/console
  6. |named-pipe            -将日志记录到命令管道,用于日志调试非常方便
复制代码
以下为rsyslog客户与rsyslgo服务器利用到的模块与配置语法


二、配置与测试
2.1.服务器端配置
1、vi /etc/rsyslog.conf 
  1. # Provides UDP syslog reception
  2. $ModLoad imudp
  3. $UDPServerRun 514
  4. # Provides TCP syslog reception
  5. $ModLoad imtcp
  6. $InputTCPServerRun 514
复制代码
将modules下的这四行的#解释删除。一个udp服务端口、一个是tcp服务端口。可以根据需求只开放UDP或TCP.
2、vi /etc/sysconfig/rsyslog
  1. SYSLOGD_OPTIONS="-r -m 0"
复制代码
-r指定监听端口  默认514  也可以指定其他端口。
测试1:
日志服务器配置:
  1. 1.修改/etc/rsyslog.conf# Provides UDP syslog reception
  2. $ModLoad imudp
  3. $UDPServerRun 514
  4. # Provides TCP syslog reception
  5. $ModLoad imtcp
  6. $InputTCPServerRun 5142.修改vi /etc/sysconfig/rsyslogSYSLOGD_OPTIONS="-r -m 0"3.重启systemctl  restart rsyslog4.netstat -npa | grep 514检察端口
复制代码
linux客户端配置:
  1. 1.修改/etc/rsyslog.conf
  2. echo 'mail.info     @@10.23.3.2:514'>>/etc/rsyslog.conf
  3. @@的意思是使用tcp,此时日志服务器端必须开启tcp514
  4. 2.重启
  5. systemctl  restart rsyslog
  6. 3.测试
  7. logger -p mail.info "this is a test for rmote log."
复制代码
服务器端检察结果:
  1. [root@node1 ~]# tail -f /var/log/maillog
  2. Jul 16 09:13:08 localhost root: this is a test for rmote log.
  3. Jul 16 09:13:08 localhost root: this is a test for rmote log.
  4. Jul 16 09:13:24 localhost root: this is a test for rmote log.
  5. Jul 16 09:13:24 localhost root: this is a test for rmote log.
复制代码
由于日志服务器的让所有s*log.conf的配置文件中默认存在
  1. # Log all the mail messages in one place.
  2. mail.*                                                  -/var/log/maillog
复制代码
将mail.设备的所有信息保存到/var/log/maillog下。
测试2:
H3C设备客户端
  1. <H3C>dis cur | incl info
  2. info-center loghost source GigabitEthernet0/1
  3. #定义源接口地址
  4. info-center loghost 10.23.3.2 facility local6
  5. 定义日志服务器地址,及设备名称,local6 为自定义名称
  6. <H3C>
  7. <H3C>
复制代码
服务器端检察
tail -f /var/log/message
  1. ound.
  2. Jul 16 10:36:12 2024 H3C %%10SHELL/5/SHELL_LOGINFAIL(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;  TELNET user root failed to log in from 81.26.240.200 on VTY0.
  3. Jul 16 09:23:47 node1 kernel: net_ratelimit: 1 callbacks suppressed
  4. Jul 16 10:36:16 2024 H3C %%10SC/6/SC_AAA_LAUNCH(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AAAType=AUTHEN-AAAScheme= local-Service=login-UserName=enable@system; AAA launched.
  5. Jul 16 10:36:16 2024 H3C %%10LS/5/LS_AUTHEN_FAILURE(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AccessType=login-UserName=enable; Authentication is failed. User not found.
  6. Jul 16 10:36:16 2024 H3C %%10SHELL/5/SHELL_LOGINFAIL(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;  TELNET user enable failed to log in from 81.26.240.200 on VTY0.
  7. Jul 16 10:36:19 2024 H3C %%10SC/6/SC_AAA_LAUNCH(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AAAType=AUTHEN-AAAScheme= local-Service=login-UserName=shell@system; AAA launched.
  8. Jul 16 10:36:19 2024 H3C %%10LS/5/LS_AUTHEN_FAILURE(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AccessType=login-UserName=shell; Authentication is failed. User not found.
  9. Jul 16 10:36:19 2024 H3C %%10DPBLS/5/BLS_ENTRY_OPERATION(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-VirDev(1000)=Root; blsOptMode(1026)=add;srcIPAddr(1017)=81.26.240.200;blsOptReason(1027)= Auto insert;blsHoldTime(1028)=10
  10. Jul 16 10:36:19 2024 H3C %%10SHELL/5/SHELL_LOGINFAIL(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;  TELNET user shell failed to log in from 81.26.240.200 on VTY0.
复制代码
可以乐成看到H3C设备发过来的日志。
测试三  改变日志服务器的rules规则,使H3C设备的日志,存放到其他非/var/log/message文件中。
  1. 修改日志服务器端配置文件
  2. /etc/rsyslog.conf
  3. # Save net-dev messages  to net.log
  4. local6.*                                                /var/log/net.log
复制代码
由于H3C设备的配置 info-center loghost 10.23.3.2 facility local6   利用local6,则在日志服务器端定义规则,local6的所有日志传输到/var/log/net.log下
验证:
  1. [root@node1 ~]# tail -f /var/log/net.log
  2. Jul 16 10:41:04 2024 H3C %%10SHELL/4/LOGINAUTHFAIL(t): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;   Trap 1.3.6.1.4.1.25506.2.2.1.1.3.0.3<hh3cLogInAuthenFailure>: failed to login from VTY, reason is 3
  3. Jul 16 10:41:04 2024 H3C %%10SHELL/4/LOGOUT(t): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;   Trap 1.3.6.1.4.1.25506.2.2.1.1.3.0.2<hh3cLogOut>: logout from VTY
  4. Jul 16 10:41:04 2024 H3C %%10SC/6/SC_AAA_LAUNCH(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AAAType=AUTHEN-AAAScheme= local-Service=login-UserName=root@system; AAA launched.
  5. Jul 16 10:41:04 2024 H3C %%10LS/5/LS_AUTHEN_FAILURE(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-AccessType=login-UserName=root; Authentication is failed. User not found.
  6. Jul 16 10:41:04 2024 H3C %%10SHELL/5/SHELL_LOGINFAIL(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;  TELNET user root failed to log in from 220.94.82.231 on VTY1.
  7. Jul 16 10:41:06 2024 H3C %%10SHELL/4/LOGINAUTHFAIL(t): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;   Trap 1.3.6.1.4.1.25506.2.2.1.1.3.0.3<hh3cLogInAuthenFailure>: failed to login from VTY, reason is 3
  8. Jul 16 10:41:06 2024 H3C %%10SHELL/4/LOGOUT(t): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005;   Trap 1.3.6.1.4.1.25506.2.2.1.1.3.0.2<hh3cLogOut>: logout from VTY
  9. Jul 16 10:41:10 2024 H3C %%10FILTER/6/ZONE_DP_FLT_EXECUTION_TCP_LOG(l): -DevIP=10.10.10.249-DEV_TYPE=SECPATH-PN=210235A0W0H158000005-VirDev(1000)=Root; srcZoneName(1034)=SC;destZoneName(1035)=Trust;rule_ID(1070)=0;policyActType(1071)=permitted;protType(1001)=TCP(6);srcIPAddr(1017)=10.23.3.2;destIPAddr(1019)=10.10.10.33;srcPortNum(1018)=47344;destPortNum(1020)=10051;beginTime_e(1013)=07162024104037;endTime_e(1014)=07162024104109;
复制代码
我们看到了H3C设备发过来的日志。






















dockerSyslog-ng是一个可靠、多功能的日志管理体系,用于网络日志并将其转发到指定的日志分析工具。
利用Docker CLI方式搭建
步骤 1: 拉取Syslog-ng镜像
起首,需要从Docker Hub拉取Syslog-ng的官方镜像。
docker pull balabit/syslog-ng:latest
步骤 2: 启动Syslog-ng容器
利用下列下令启动Syslog-ng容器,以下示例展示了一些常用的参数和配置。
  1. docker run -d --name syslog-ng \
  2.   -p 514:514/udp \
  3.   -p 601:601 \
  4.   -v /path/to/your/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf \
  5.   balabit/syslog-ng:latest
复制代码
-d: 后台运行容器。
--name: 指定容器的名称,这里为syslog-ng。
-p 514:514/udp: 将容器的514端口(UDP协议)映射到宿主机的514端口,用于吸收Syslog消息。
-p 601:601: 将容器的601端口(TCP协议)映射到宿主机的601端口,也是用于吸收Syslog消息,但是通过TCP。
-v /path/to/your/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf: 将宿主机上的Syslog-ng配置文件映射到容器内部,用于自定义Syslog-ng的举动。
步骤 3: 验证运行状态
利用以下下令检查容器运行状态:
docker ps
确保Syslog-ng容器正在运行。
利用Docker Compose方式搭建
Docker Compose提供了一种更为简便的方式来定义和运行多容器Docker应用程序。
步骤 1: 创建Docker Compose文件
在一个目次中创建一个名为docker-compose.yml的文件,并添加以下内容:
  1. version: '3'
  2. services:
  3.   syslog-ng:
  4.     image: balabit/syslog-ng:latest
  5.     container_name: syslog-ng
  6.     ports:
  7.       - "514:514/udp"
  8.       - "601:601"
  9.     volumes:
  10.       - /path/to/your/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf
复制代码

version: 指定Docker Compose文件格式版本。
services: 定义了要运行的服务容器。
syslog-ng: 定义一个服务,名称为syslog-ng。
image: 指定利用的Docker镜像。
container_name: 容器的名称。
ports: 端口映射配置。
volumes: 卷映射配置,用于Syslog-ng的配置文件。
步骤 2: 启动Syslog-ng服务
在包含docker-compose.yml文件的目次中,运行以下下令来启动Syslog-ng服务:
docker-compose up -d
步骤 3: 验证服务状态
利用以下下令检察服务状态:
docker-compose ps
确保syslog-ng服务已经乐成启动并且运行中。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表