rsyslog日志总结

一 rsyslog介绍

syslogd被rsyslog取代

将日志写入数据库 可以利用模块和插件控制输入输出

rsyslog程序管理本地和远程日志

安装软件

根据需求修改配置文件

启动服务

测试验证

日志:

历史事件:时间,地点,人物,事件

日志级别:事件的关键性程度,Loglevel

系统日志服务:

sysklogd :CentOS 5之前版本

syslogd: system application 记录应用日志

klogd: linux kernel 记录内核日志

事件记录格式:

日期时间 主机 进程[pid]: 事件内容

C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理

rsyslog特性:CentOS6和7

多线程

UDP, TCP, SSL, TLS, RELP

MySQL, PGSQL, Oracle实现日志存储

强大的过滤器,可实现过滤记录日志信息中任意部分

自定义输出格式

ELK:elasticsearch, logstash, kibana

非关系型分布式数据库

基于apache软件基金会jakarta项目组的项目lucene

Elasticsearch是个开源分布式搜索引擎

Logstash对日志进行收集、分析,并将其存储供以后使用

kibana 可以提供的日志分析友好的 Web 界面

二系统日志文件介绍

日志格式 文本日志/二进制日志/数据库日志

常见日志文件

/var/log/boot.log 系统引导日志,记录开机启动信息

/var/log/dmesg 核心的启动日志 (硬件相关)

/var/log/messages 系统的日志文件

/var/log/maillog 邮件服务的日志

/var/log/xferlog ftp服务的日tmp志

/var/log/secure 网络连接及系统登录的安全信息

/var/log/cron 定时任务的日志

/var/log/wtmp 记录所有的登入和登出 last -f 查看

/var/log/btmp 记录失败的登入尝试

三:日志级别

# man   syslog
日志信息分为以下级别,从上到下级别依次降低
none 不算是一个等级,它表示不记录服务的所有信息
0 emerg 系统不可用
1 alert 特别留意的报警信息
2 crit 非常严重的状况
3 err 错误信息
4 warning 警告信息
5 notice 稍微要注意的信息
6 info 正常信息
7 debug 调试信息,开发人员使用

四.日志配置

1.日志定义相关符号

配置文件中常见的表示符号
. <--- 用来分隔服务和级别
* <--- 任何服务,或者任何级别
= <---有等号表示等于某一级别,没有等号表示或者等于某一级别 mail.=info
mail.info
! <--- 排除操作,前面有相同服务的表达式,这个操作才有意义
代表从前面表达式所包含的内容中排除某些内容
; <--- 用于分隔不同的服务,级别组合
cron.=info;mail.info
, <--- 用于分隔不同的服务 cron,mail.=info
- <--- 用于指定目标文件时,代表异步写入 -/var/log/maillog

举例:

cron.err  0123
cron.=info 6
cron.!=info 0123457
mail,cron,ftp=err 3
cron.info;cron.!err
0123456 4567
456 #取交集
mail.info;mail.!=err
0123456 0124567
012456 #取交集

配置文件详解

/etc/rsyslog.conf    rsyslog日志的主配置文件
/etc/rsyslog.d/*.conf rsyslog日志的辅助配置文件
/var/log/ 日志文件的目录
cat /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
#记录所有服务产生的日志,除了mail/验证/任务计划相关日志都记录/
authpriv.* /var/log/secure
telnet ssh 设备载体 #记录所有跟验证有关日志信息 mail.* -/var/log/maillog #记录所有跟邮件有关日志信息
cron.* /var/log/cron
#记录所有跟任务计划有关日志信息
*.emerg :omusrmsg:*
#把所有级别为emerg的信息发送给所有登录到系统上的用户
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
#记录所有跟启动相关的日志
1.修改sshd的配置文件
vim /etc/ssh/sshd_config
SyslogFaclity local1 2.修改rsyslog程序的配置文件
vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none;local1.none
authpric.*;local1.none
local1.*
3.重启服务测试验证

总结:

本地日志管理:服务的日志和系统的日志

服务日志:

1.服务本身可以做管理自己的日志,比如ftp服务。----->服务的配置文件,vsftpd.conf

2.使用rsyslog程序管理服务的日志。rsyslog.conf--->日志设备载体.info /var/log/ftp.log

五远程日志管理

目的:把多台服务器的日志远程记录到其中一台日志服务器集中化管理,方便对其统一分析和管理;

需求:

将ssh服务的日志远程记录到日志管理服务器上保存

环境准备

ssh-server 10.1.1.250(管理端)

log-server:10.1.1.1

ssh-server:10.1.1.3

client:10.1.1.2

思路:

1.在ssh-server上将ssh服务的日志单独记录

2.在ssh-server上通过修改rsyslog.conf文件来将本地ssh服务日志远程传送到log-server服务器上

3.在log-server上打开514端口等待客户来传送日志

4.测试验证

步骤:

ssh-server
1.在日志服务器端完成以下事情
1)安装rsyslog文件
rpm -qa rsyslog
2)在log-server上打开514端口
vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514 # Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
systemctl restart rsyslog
netstat -tnulp|grep 514
2.在ssh-server上将ssh服务的日志单独记录
修改sshd的配置文件
vim /etc/ssh/sshd_config
SyslogFaclity local1
1)ssh服务的日志载体定义为local1
2)删除原来的本地保存
#local1.* /var/log/sshd.log
local1.* @@10.1.1.1:514
第一个@代表UDP协议传送;@@代表tcp协议传输
3)重启rsyslog服务
systemctl restart rsyslog
useradd stu1
echo 123|passwd --stdin stu1

日志轮转

日志轮转介绍

日志轮换

logrotate 日志轮换的工具

日志存放的地方: /var/log/*

常见的日志文件:

/var/log/messages

/var/log/wtmp

/var/log/btmp

轮换工具的配置文件: /etc/logrotate.conf

/var/log/wtmp { <---需要轮换的日志的据对路径

monthly <---采用每个月轮换一次的设定

minsize 1M <----日志轮换的时候日志文件必须不少于1M,尽管轮换的时间到了,如果文件达不到1M也不去轮换

create 0664 root utmp <----新建的日志文件权限是什么?拥有者是谁,组是谁?

rotate 1

}

size 512k <---尽管轮换的时间还没到,如果日志文件达到512kb,也进行轮换

对ssh服务日志进行轮转

要求:

1.每天进行轮转,保留5天的日志文件

2.日志文件大小大于5M进行轮转,不管是否到轮转周期

思路:

修改logrotate程序的主配置文件或者在/etc/logrotate.d/目录创建一个文件

步骤:

log-server
vim /etc/rsyslog.conf
local1.* /var/log/sshd.log
#local1.* @@10.1.1.1:514
find /var/log -type f -exec rm -f {} \;
find /var/log/ -type f -delete
systemctl restart rsyslog
方法1:修改主配置文件
vim /etc/logrotate.conf
...
/var/log/sshd.log {
daily
rotate 5
size 5M
}
测试验证
logrotate -f /etc/logrotate.conf 方法2:创建子配置文件
vim /etc/logrotate.d/sshd
/var/log/sshd.log {
missingok
daily
rotate 5
size 5M
}
nodateext //不以日期作为后缀
find /var/log/ -type f -delete
systemctl restart rsyslog
logrotate -f /etc/logrotate.conf

对FTP服务日志进行轮转

要求:

1.每个月轮转1次,保留一个月的日志

2.日志文件大小超过500M不管有没有到轮转周期必须轮转

3.如果日志文件不存在也不报错

思路:

1.首先得在当前系统中有ftp服务的日志

ftp服务自己本身管理日志(/var/log/xferlog)

交给rsyslog程序管理(vsftpd.conf--->syslog_enable=YES;设备载体默认是FTP);rsyslog.conf

----->ftp.* /var/log/ftp.log

log-server
yum install vsftpd -y
systemctl restart vsftpd
systemctl enable vsftpd
vim /etc/rsyslog.conf
ftp.* /var/log/ftp.log
vim /etc/vsftpd/vsftpd.conf
lftp localhost
vim /etc/logrotate.d/vsftpd
添加
/var/log/ftp.log {
missingok
monthly
rotate 1
size 500M
}
logrotate -f /etc/logrotate.conf

rsyslog日志总结的更多相关文章

  1. rsyslog日志服务的配置文件分析

    基于rsyslog日志服务的日志 在不同的LINUX系统,实现的软件略有不同. syslog,rsyslog,syslog-ng,用于实现系统日志的管理. [root@asianux4 ~]# rpm ...

  2. Linux Rsyslog日志集中管理

    Linux Rsyslog日志集中管理 一.Rsyslog简介 ryslog 是一个快速处理收集系统日志的程序,提供了高性能.安全功能和模块化设计.rsyslog 是syslog 的升级版,它将多种来 ...

  3. Linux下rsyslog日志收集服务环境部署记录

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  4. Linux下rsyslog日志收集服务环境部署记录【转】

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  5. logstash收集rsyslog日志

    (1)rsyslog配置 在192.168.1.31配置 #vim /etc/rsyslog.conf *.* @@192.168.1.32:514 //所有设备名,所有日志级别都发送到192.168 ...

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

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

  7. centos7设置rsyslog日志服务集中服务器

    centos7设置rsyslog日志服务集中服务器 环境:centos6.9_x86_64,自带的rsyslog版本是7.4.7,很多配置都不支持,于是进行升级后配置 # 安装新版本的rsyslog程 ...

  8. rsyslog日志服务部署

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

  9. CentOS7+Rsyslog+MySQL 搭建 Rsyslog 日志服务器

    文章目录 1.主机环境 2.rsyslog搭建 2.1.rsyslog-server搭建 2.2.rsyslog-client 2.2.1.测试 2.3.rsyslog日志分类 2.3.1.测试 3. ...

随机推荐

  1. 2019牛客暑期多校训练营(第九场) D Knapsack Cryptosystem

    题目 题意: 给你n(最大36)个数,让你从这n个数里面找出来一些数,使这些数的和等于s(题目输入),用到的数输出1,没有用到的数输出0 例如:3  4 2 3 4 输出:0 0 1 题解: 认真想一 ...

  2. HihoCoder - 1055 树形dp

    vj链接:https://vjudge.net/contest/367007#problem/G 题意: 给你一棵树,树上有n个节点,每一个节点有一个权值,树根节点是1,你需要找到以1为起点连通的m个 ...

  3. Medium Free

    fetch(window.location.href,{credentials:"omit",redirect:"follow",mode:"no-c ...

  4. SpringCloud @RefreshScope标注的Bean在生命周期中怎么样的?

    @RefreshScope 前言 该文章是由上一篇引申而来的,上一篇文章描述了Nacos是怎么触发配置刷新的,接着来写有关@RefreshScope的一些东西,都是由DEBUG而来 上一篇 文章概览 ...

  5. Hexo、主题、部署上线

    Hexo.主题.部署上线 安装Hexo git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右 ...

  6. woj1002-Genesis woj1003-birthofnoah woj1004-noah's ark

    title: woj1002-Genesis date: 2020-03-05 categories: acm tags: [acm,woj] 输入输出考虑一下.easy #include <i ...

  7. Win7环境下mysql报错1045:Access denied for user root@localhost错误解决方法

    产生场景:在涉及到连接数据库操作的时候,会报1045:Access denied for user root@localhost. 比如:本地建立的数据库连接不上,在IDEA等开发工具中使用反向生成. ...

  8. 洛谷p1886滑动窗口最大最小值 双单调队列

    #include <iostream> #include <cstdio> using namespace std; int n,k,a[1000007],q1[2000007 ...

  9. 最新 Steam 免费游戏

    最新 Steam 免费游戏 免费 免费游戏 免费开玩 免费游戏玩的游戏是有内购的. 免费开玩游戏开玩是一部分免费,玩到某个地方要购买才能继续玩. 免费就是永久免费并且无内购. refs https:/ ...

  10. hihoCoder Challenge 3

    #1065 : 全图传送 时间限制:30000ms 单点时限:3000ms 内存限制:256MB 描述 先知法里奥是 Dota 系列中的一个英雄.机动性强,推塔能力一流,打钱速度快,传送技能使先知可以 ...