rsyslog日志管理

一:日志的重要性

日志分类:系统日志,进程日志,应用程序日志
记录日志的用处:排错,追溯事件,统计流量,审计安全行为
rsyslogd:只负责绝大部分日志记录,和系统操作有关,安全,认证,计划任务等。
处理分析日志:

1.少量日志使用vim cat tail grep awk这些文档处理程序查看和检索

2.大量日志可以用splunk、elk

二、常见的日志文件(系统、进程、应用程序)

日志存放位置: 存放本地 /var/log
日志服务启动: systemctl start rsyslog
日志配置文件: /etc/rsyslog.conf

tail -f /var/log/messages               #动态查看日志文件的尾部,系统主日志文件
tail -f /var/log/secure                 #认证、安全
tail /var/log/maillog                   #跟邮件postfix相关
tail /var/log/cron                      #crond、at进程产生的日志
tail /var/log/dmesg                     #和系统启动相关
tail /var/log/yum.log                   #yum的日志
tail -f /var/log/mysqld.log             #MySQL日志
tail /var/log/xferlog                   #和访问FTP服务器相关
/var/log/boot.log                       #系统启动过程日志记录存放

二进制日志:
w                   #当前登录的用户 /var/log/wtmp
last                #最近登录的用户 /var/log/btmp
lastlog             #所有用户的登录情况 /var/log/lastlog

案例1: 统计登录失败top 2 
# grep 'Fail' /var/log/secure |awk '{print $11}' |sort |uniq -c|sort -n -r |head -2
    366 140.205.225.186
    335 140.205.201.44

案例2: 统计登录成功 
# grep 'Accepted' /var/log/secure*

三、rsyslog配置文件

/etc/rsyslog.conf

[root@biudefor ~]# cat /etc/rsyslog.conf | grep '####'
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####

rsysctl的配置文件分为三大板块:
MODULES: 模块
GLOBAL DIRECTIVES: 全局设置
RULES: 规则

配置文件用于设置

(1)什么服务 (2)什么级别的信息 (3)需要被记录在哪里(设备或文件)

比如:

cron.*        /var/log/cron
表示 关于计划任务的所有级别的信息,都记录到 /var/log/cron 文件中

*.info;mail.none;authpriv.none;cron.none  /var/log/messages
表示所有服务端 info 级别的信息,邮件的 none 级别的信息,登录认证的 none 基本的信息和计划任务的 none 基本的信息都记录到 /var/log/messages 文件中。

Linux 核心的 syslog 认识的服务类型主要有下面这些:

相对序号 服务类别 说明
0 kern(kernel) 就是核心(kernel)产生的讯息,大部分都是硬件侦测以及核心功能的启用
1 user 在使用者层级产生的信息,例如后续会介绍到的logger指令来记录登录文件的功能
2 mail 只要与邮件收发有关的讯息记录都属于这个
3 daemon 主要是系统的服务产生的信息,例如systemd就是这个有关的讯息
4 auth 主要与认证/授权有关的机制,例如login,ssh,su等需要账号/密码的东东
5 syslog 就是由syslog相关协定产生的信息,其实就是rsyslogd这个程序本身产生的信息
6 lpr 打印相关的讯息
7 news 与新闻群组服务器有关的东西
8 uucp 全名为 Unix to Unix Copy Protocol,早期用于Unix系统间的程序数据交换
9 cron 就是例行工作调度cron/at等产生信息的记录
10 authpriv 与auth类似,但是记录较多账号私人的信息,包括pam模块的运行等
11 ftp 与FTP通讯协议有关的信息输出
16~23 local0~local7 留给本机用户使用的一些登录文件信息,较常与终端机互动

Linux 核心的 syslog 定义的日志级别:

级别低,越详细,低的包含高的日志级别

等级数值 等级名称 说明
7 debug 用来debug(调试)时产生的数据信息
6 info 仅是一些基本的信息说明
5 notice 虽然是正常信息,但是比info还是有一些需要被注意到的信息内容
4 warning 警告的信息,可能有问题,但是还不至于影响到某个daemon的运行
3 err(error) 一些重大的错误信息,例如配置文件的某些设置造成改服务无法正常启动的信息说明,通常借由err的错误告知
2 crit 比error还要严重的错误信息,这个crit就是临界点(critical)的缩写,这个错误已经很严重了
1 alert 比crit更加严重,系统已经开始告警
0 emerg(panic) 灾难级,表示系统几乎已经快要死机的状态!通常大概只有硬件出了问题,导致整个核心无法顺利运行,才会出现这样等级的信息吧

四、logger

通过logger命令记录日志

  • logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。
  • logger 以0退出表示成功,大于0表示失败。

语法:

logger [options] [messages]

options (选项):

    -d, --udp  
        使用数据报(UDP)而不是使用默认的流连接(TCP)
    -i, --id   
        逐行记录每一次logger的进程ID
    -f, --file file_name
        记录特定的文件
    -h, --help 
        显示帮助文本并退出
    -n, --server 
        写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
    -P, --port port_num
        使用指定的UDP端口。默认的端口号是514
    -p, --priority priority_level
        指定输入消息的优先级,优先级可以是数字或者指定为 "facility.level" 的格式。比如:"-p local3.info " local3 这个设备的消息级别为info。默认级别是 "user.notice"
    -s, --stderr
        输出标准错误到系统日志。
    -t, --tag tag
        指定标记记录
    -u, --socket socket
        写入指定的socket,而不是到内置系统日志例程。
    -V, --version
        现实版本信息并退出

示例:

[root@biudefor ~]# logger system -p local7.info hello 
[root@biudefor ~]# tail -1 /var/log/boot.log    //rsyslog配置文件中已经将所有local7的日志全部记录到/var/log/boot.log
Feb 29 15:56:16 biudefor root: system hello

[root@biudefor ~]# vim /etc/rsyslog.conf
#### RULES ####
local3.*     /var/log/biudefor.log
#意思是来自local3的所有消息都记录到/var/log/biudefor.log中。
[root@biudefor ~]# systemctl restart rsyslog
[root@biudefor ~]# logger -i -t "biudefor" -p local3.info "wuhan jiayou."
[root@biudefor ~]# cat /var/log/biudefor.log 
Feb 29 16:15:21 biudefor biudefor[20364]: wuhan jiayou.

记录脚本:
[root@biudefor ~]# vim ip.sh
#!/usr/bin/bash
ping -c1 192.168.1.11 &>/dev/null
if [ $? -eq 0 ];then
    logger -p local3.info "ok."
else
    logger -p local3.error "error."
fi
[root@biudefor ~]# bash ip.sh 
[root@biudefor ~]# cat /var/log/biudefor.log 
Feb 29 16:15:21 biudefor biudefor[20364]: wuhan jiayou.
Feb 29 16:16:32 biudefor root: error.
sar 查看/var/log/sa

这个目录下的数据会保存一个月,记录系统中所有的负载信息,网络,内存,磁盘,CPU

[root@biudefor log]# sar -f /var/log/sa/sa23

五、mysql存放rsyslog日志

1、安装数据库

[root@biudefor ~]# yum -y install mariadb mariadb-server
[root@biudefor ~]# yum install -y rsyslog-mysql  # 安装驱动
[root@biudefor ~]# rpm -ql rsyslog-mysql | grep sql$   # 找到sql文件
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
[root@biudefor ~]# systemctl start mariadb
[root@biudefor ~]# systemctl enable mariadb
[root@biudefor ~]# mysql < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyspass';
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyspass';
MariaDB [(none)]> FLUSH PRICVILEGES;

2、配置rsyslog加载ommysql模块

[root@biudefor ~]# vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql

#### RULES ####

#格式为:facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
*.*:ommysql:127.0.0.1,Syslog,rsyslog,rsyspass

3、重启服务

[root@biudefor ~]# systemctl restart rsyslog
[root@biudefor ~]# systemctl restart mariadb
[root@biudefor ~]# mysql
MariaDB [Syslog]> use Syslog
MariaDB [Syslog]> select * from SystemEvents;

六、ELK stack 分析rsyslog系统日志

rsyslog 配置文件:

image-20200225215813384.png
image.png

logstash 配置文件:

input {
   syslog{
    port => 5514
    type => syslog
  }
}
output {
  stdout {
    codec=> rubydebug
  }
  elasticsearch {
    hosts => ["172.17.209.157:9200"]
    index => 'rsyslog_log-%{+YYYY-MM-dd}'
  }
}
image-20200225214410857.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 了解日志文件是很重要的事情。日志文件可以记录系统在什么时间、哪台主机、哪个服务、出现了什么信息等。可以在系统出现问...
    Zhang21阅读 5,210评论 0 5
  • 日志管理2 1、日志服务的配置文件 [loring ~]# vim /etc/rsyslog.conf ...
    崔千易阅读 517评论 0 0
  • 1 概述 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误...
    ghbsunny阅读 3,525评论 0 0
  • 日志介绍 日志 记录历史事件:时间,地点,人物,事件 日志级别:事件的关键性程度,Loglevel 系统日志服务 ...
    Ben0606阅读 1,670评论 0 2
  • 技术交流QQ群:1027579432,欢迎你的加入! 一、常见的日志 日志是一个系统管理员,一个运维人员,甚至是开...
    CurryCoder阅读 1,445评论 0 5