rsyslog日志服务

rsyslog:

日志收集和存储系统; 

日志:历史事件记录;

syslog:

klogd:kernel

syslogd:service(application)

事件记录格式:

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

C/S架构:服务,可监听于某套接字,帮其它主机记录日志信息;

S:udp, tcp协议;

rsyslog:

rsyslog特性:

多线程;

UDP,TCP,SSL/TLS,RELP;

存储日志信息于MySQL、PGSQL、Oracle等RDBMS;

强大的过滤器,实现过滤日志信息中任何部分的内容;

自定义的输出格式;

elk stack:elasticsearch,logstash, kibana

rsyslog中的术语:

facility:设施、信道;

auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7

priority:

debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

程序包:rsyslog

程序环境:

配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/

主程序:/usr/sbin/rsyslogd

模块路径:/usr/lib64/rsyslog/

Unit File:/usr/lib/systemd/system/rsyslog.service

配置文件:

有三部分组成:严格按照配置段位置添加配置

#### MODULES ####

#### GLOBAL DIRECTIVES ####

#### RULES ####

RULES:

facility.priority target

facility:

*:所有的facility;

f1,f2,f3,…:列表中给定的所有facility;

auth,authpriv,security.info

f1.p1;f2,p2;f3.p3;…:列表中给定的所有facility;

auth.info;authpriv.notic;security,warn;

priority:

*:所有级别

none:没有级别,不记录日志;

PRIORITY:此级别(含)及其以上的所有级别;

=PRIORITY:仅指定的级别;

target:

文件:将日志信息记录到指定的文件中;文件路径之前的“-”表示异步写入之意;

用户:将日志事件通知给指定的用户;一般指登录到当前系统上的所有用户的终端;

日志服务器:@rsyslog_server,把日志信息发往指定的日志服务器;

管道:|COMMAND 

blob.png

blob.png

命令行客户端程序:

logger – a shell command interface to the syslog(3) system log module

logger [options] [message]

blob.png

配置rsyslog服务器:

#### modules ####

…………

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

blob.png

blob.png

blob.pngblob.png

其它几个日志文件:

last, lastb – show listing of last logged in users

-num, -n num

/var/log/btmp:登录当前系统的所有的失败的尝试;

/var/log/wtmp:所有成功登录至当前系统的相关信息;

blob.png

lastlog – reports the most recent login of all users or of a given user

/var/log/dmesg:系统引导过程中的日志信息; 

文本查看工具;

也可以使用dmesg命令;

rsyslog记录日志于mysql:

前提:准备好msql server或mariadb server;

(1) 安装rsyslog连接至mysql server的驱动模块;

# yum install rsyslog-mysql 

(2) 在mysql server准备rsyslog专用的用户账号;

GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';

GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass';

(3) 生成所需要的数据库和表;

mysql -ursyslog -h127.0.0.1 -prsyslogpass <  /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

(4) 配置rsyslog使用ommysql模块

#### MODULES ####

……

$ModLoad ommysql 

(5) 配置RULES,将所期望的日志信息记录于mysql中;

facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS

(6) 重启rsyslog服务;

(7) loganalyzer

WebGUI, 运行amp环境中;

(a) 准备amp环境

# yum install httpd php php-mysql php-gd

# systemctl start httpd.service 

(b) 安装loganalyzer

# tar xf loganalyzer-VERSION.tar.gz

# cd loganalyzer-VERSION

# cp -a src  /var/www/html/loganalyzer-VERSION

# cd /var/www/html

# ln -sv loganalyzer-VERSION log

# cd log 

# touch config.php 

# chmod 666 config.php 

打开浏览器,配置;

MySQL Native, Syslog Field

Table Type:"Monitorware“

# chmod 644 config.php 



配置rsyslog+mysql+loganalyzer

先配置在同一台主机上

1,安装程序包

yum install httpd php php-mysql rsyslog-mysql mariadb-server php-gd -y

2,启动MariaDB数据库

blob.pngblob.png3,配置rsyslog服务和mariadb数据库的连接

编辑rsyslog配置文件

vim /etc/rsyslog.conf 

blob.png

blob.pngblob.png

在浏览器访问

blob.pngblob.png

blob.png

blob.pngblob.pngblob.pngblob.png

类似文章