Linux-本地日志服务管理(rsyslog基础)
系统环境
系统环境为CentOS Linux release 7.6.1810 (Core)
1.常见的两种日志管理服务
1.1 RSYSLOG系统日志服务
rsyslog是CentOS 6以后版本的系统管理服务,相较于Centos5的日志管理服务sysklogd,rsyslog提供了高性能,出色的安全性和模块化设计。如今大多数的Linux服务都提供了对应的rsyslog接口,以方便使用rsyslog来管理对应的服务日志。但具体是否支持还是需要靠经验与对应服务的官网介绍来了解。
1.2 ELK
当管理大量服务器的日志时,使用rsyslog便显得有些力不从心,因此在面临集群服务器的时候,便回采取ELK进行日志管理服务。
ELKELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。
这里仅进行简单介绍,具体部署以后再说。
2.RSYSLOG日志服务的相关知识
2.1 RSYSLOG日志消息级别
系统日志级别共分为7类
| 等级名称 | 说 明 |
|---|---|
| debug (LOG_DEBUG) | 一般的调试信息说明 |
| info (LOG_INFO) | 基本的通知信息 |
| notice (LOG_NOTICE) | 普通信息,但是有一定的重要性 |
| warning(LOG_WARNING) | 警吿信息,但是还不会影响到服务或系统的运行 |
| error(LOG_ERR) | 错误信息, 一般达到err等级的信息已经可以影响到服务成系统的运行了 |
| crit (LOG_CRIT) | 临界状况信思,比err等级还要严重 |
| alert (LOG_ALERT) | 警告信息,比crit等级还要严重,必须立即采取行动 |
| emerg (LOG_EMERG) | 紧急等级信息,系统已经无法使用了 |
一般来说当出现error级别的信息时,就应该对服务系统进行对应的处理,否则到达更高级别的告警时,系统服务会出现严重问题,造成生产事故。
2.2 RSYSLOG日志服务的配置文件位置
使用rpm -qc rsyslog可以查看rsyslog的相关的配置文件,一般来说服务的配置文件都是以.conf为后缀的。

所以可知rsyslog的配置文件为/etc/rsyslog.conf。
2.3 配置文件解析
rsyslog日志服务配置文件主要有三大模块。
2.3.1 功能模块配置(MODULES)

功能模块是指rsyslog所开启的功能,通过注释符号“#”来标记一个模块功能是否开启。
2.3.2 全局配置 (GLIVAK DURECTUVES)

全局配置是指rsyslog服务中所有子配置文件都需要遵守的规则,当子配置文件与全局配置冲突的时候,采取全局配置生效。
2.3.3 规则(RULES)

这里定义着什么服务到达什么日志消息级别的日志记录到哪里的信息。以*.info;mail.none;authpriv.none;cron.none /var/log/messages为例。
*.info:所有服务到达info级别的日志都将被记录在日志文件中/var/log/messages:日志文件记录位置mail.none:mail组的日志不记录在这个日志里,其余的.none意义相同
具体服务属于什么组,这由各个服务的配置文件决定(支持rsyslog的服务)。
除这里由rsyslog定义的组外,还有自定义LOCAL0-7共8个组由自己自定义规则,并将服务加入在对应组当中。
2.4 日志格式解析
由2.3.3可知,一般服务的日志都储存在/var/log/messages中,这里使用cat,查看一下日志信息的基本结构。

以Mar 13 22:39:27 localhost systemd: Started Hostname Service.为例。
Mar 13 22:39:27:时间localhost:主机名称systemd:服务名称started Hostname Service.:事件
3.服务日志位置更改
要更改服务日志的位置,有以下几个步骤。
A[定位服务配置文件] --> B[修改该服务的日志组]
B --> C[在rsyslog定义该日志组的日志记录规则]
C --> D[重启rsyslod与对应服务]
3.1 修改服务日志组
以SSH服务为例,该服务的配置文件为/etc/ssh/sshd_config,进入编辑该服务配置文件。

可以看见原来SSH的日志写入规则是定义在rsyslog的"authrriv"中的,由2.3.3中的截图可知,如果不对其进行修改,该服务的日志的写入位置应该为/var/log/secure中。先将SSH服务加入到自定义组LOCAL0中。(原有的配置最好采用注释的方法使他不生效,如果出了故障,方便还原)

保存并退出。
3.2 修改rsyslog的日志组规则
在rsyslog的RULUES模块下,定义新的日志组LOCAL0日志写入规则
定义LOCAL0组内服务的所有日志全都写在/var/log/ssh.log中。

保存并退出。
3.3 重启rsyslog与对应服务
重启rsyslog和ssh服务以使对应的配置文件生效。

3.4测试
测试使用ssh连接192.168.186.4.

查看/var/log/ssh.log是否有日志产生。

4.网络日志传输
主机为192.168.186.5,想要将日志使用TCP连接方式,将日志传输到192.168.186.4 分为以下几个步骤。
A[.4主机防火墙开启514端口] --> B[.4主机配置rsyslog文件开启TCP接收日志服务]
B --> C[.5主机配置日志传输至.4主机]
4.1 .4主机配置
1.防火墙开启514端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=514/tcp --permanent
success
2.编辑/etc/rsyslog.conf,开启TCP接收日志功能(19,20行注释删掉)

3.重启防火墙服务与rsyslog服务
[root@localhost ~]# systemctl restart firewalld.service rsyslog.service
4.查看514端口是否正常打开
[root@localhost ~]# ss -ntap |grep 514
LISTEN 0 25 *:514 *:* users:(("rsyslogd",pid=9617,fd=3))
LISTEN 0 25 :::514 :::* users:(("rsyslogd",pid=9617,fd=4))
4.2 .5主机配置
1.配置TCP传输日志消息

2.重启rsyslog服务
[root@localhost ~]# systemctl restart rsyslog.service
4.3 测试
1.在.5主机输入
logger "this is testing log from 192.168.186.5"
2.在.5主机查看messages信息,这条日志的时间是显示的是.4主机的时间

4.4是不是虚拟机BUG呢
由于rsyslog日志中在未经过特殊设置只显示主机名,不显示IP地址,所以区分不同主机的信息需要更改主机名称。
将.5主机的主机名称设置为store5。
[root@localhost ~]# hostnamectl set-hostname store5
[root@localhost ~]# su root
[root@store5 ~]#
测试日志消息为
logger "this is test log from store5"
.4主机接收到的日志中主机名依旧为localhost(未改名的主机名称)

将.5主机的网络断开重连后再次测试,主机名依旧没有改变。重启后主机名才变化。

Linux-本地日志服务管理(rsyslog基础)的更多相关文章
- Linux软件安装——服务管理的命令
Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...
- Linux服务器,服务管理--systemctl命令详解,设置开机自启动
Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...
- Linux软件安装——服务管理
Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...
- centos 如何用 rsyslog 搭建本地日志服务
一.问题背景 最近项目遇到一个问题,服务器响应很慢,team中的两个有经验的工程师找了一台服务器分析了一下,发现问题出在磁盘写入过于频繁.这里大概介绍一下背景,我们的服务器上面主要是跑各种PHP接口, ...
- centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)
上一篇说到了如何用 rsyslog 搭建本地的日志服务,地址在这里,没有看的童鞋可以先瞅一眼 : http://www.cnblogs.com/smallrookie/p/5677004.html 显 ...
- linux 学习 12 服务管理
第十二讲 Linux服务管理 12.1 Linux服务管理-服务分类 ——Linux服务 ----RPM包默认安装的服务 ————独立的服务 ————基于xinetd服务 ----源码包安装的服务 ...
- 基于Log4Net本地日志服务简单实现
背景 项目开发中,我们或多或少会使用诸如NLog,Log4Net,Kafka+ELK等等日志套件: 基于关注点分离原则,业务开发的时候不应该关注日志具体实现:并且后续能方便切换其他日志套件: 这里先实 ...
- Linux系统WEB服务之Nginx基础入门
一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...
- Linux中的服务管理
RPM包默认安装的服务 查看已安装的服务: chkconfig --list 默认安装位置: /etc/init.d 启动脚本 /etc/sysconfig 初始化环境配置文件 /etc 配置文件位 ...
随机推荐
- Java流程控制03:顺序结构
顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构.从上到下 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处 ...
- Emoji与unicode特殊字符的处理
遇到了一个很让人纠结的问题:emoji表情在使用的过程中,会莫名其妙的消失,或者变成乱码,同时数据库用utf8mb4来存储,但是也出现了问题,冷备过后,导入进库的时候,变成了不可见字符,神奇的消失了! ...
- Java中的UIManager简单实用(皮肤包)
感谢大佬:https://blog.csdn.net/u010022051/article/details/52671860 注:具体详情请查阅Java API文档 /** * 设置图形界面外观 * ...
- DNS域名解析之分离解析
分离解析配置 1.为网关服务器配置双网卡 , 在关机状态下再添加一块网卡,重启系统 ifconfig ens36 12.0.0.1/24 ifconfig 2.安装bind软件包 yum instal ...
- 2021羊城杯比赛复现(Crypto)
bigrsa 题目: from Crypto.Util.number import * from flag import * n1 = 10383529640908175186077053551474 ...
- linux中可以查看端口占用的方法
在自己搭建的服务器中,经常容易出现端口被占用的问题,那么怎么知道自己的端口是否被占用了呢? 可以使用下面的方法: linux中可以查看端口占用的方法. netstat -ant | grep 80 ( ...
- 基于双TMS320C6678 DSP的3U VPX的信号处理平台
一.板卡概述 板卡由我公司自主研发,基于3U VPX架构,处理板包含两片TI DSP TMS320C6678芯片:一片Xilinx公司的Spartan XC3S200AN 配置芯片: DSP之间通过 ...
- mysql视图,索引
一.视图 View 视图是一个虚拟表,是sql语句的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会 ...
- Asp.net core IdentityServer4与传统基于角色的权限系统的集成
写在前面 因为最近在忙别的,好久没水文了 今天来水一篇: 在学习或者做权限系统技术选型的过程中,经常有朋友有这样的疑问 : "IdentityServer4的能不能做到与传统基于角色的权限系 ...
- zabbix主动上报mysql数据库内容
zabbix_sender命令支持主动上报数据,web服务端添加对应机器和采集器即可. 2015年刚接触zabbix时候,用的上报sqlserver脚本是select数据后插入到临时表,bcp下载到本 ...