Linux下rsyslog日志系统

 

Rsyslog 日志管理系统:

适用于企业级别日志记录需求。

日志生成:应用程序和内核生成,每个应用程序都可以自行记录日志。内核也可以记录。

rsyslog特点:

多线程,多协议(udp/tcp/ssl/tls/relp);mysql,pgsql,oracle等多种关系数据中,强大的过滤器,可实现过滤系统信息中的任意部分。自定义输出格式。适用于企业级别日志记录需求。   

核心概念:

Facility:设施,从功能或者程序上对日志进行分类,并由专门的工作负责记录相对应的信息:

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

Priority:级别

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

rsyslog的配置文件: /etc/rsyslog.conf

两个日志二进制文件保存的日志文件:

成功登陆系统的日志:/var/log/wtmp

查看命令:last

失败登陆的尝试:/var/log/btmp

查看命令: lastb

# lastlog命令:显示当前系统每个用户各自最近每次的登录信息。

模块:启用本机成为日志服务器

[root@local log]# vi /etc/rsyslog.conf

udp和tcp的514端口 ,建议启用udp的。

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

[root@local log]# service  rsyslog restart  重启服务即可

[root@local log]# ss -unl  查看udp514端口

rsyslog支持吧日志存储在mysql中:

(1)有可用的mysql

 # yum install mysql-server

 #service mysqld start

(2)安装rsyslog-mysql程序包

 # yum install rsyslog-mysql

[root@local log]# rpm -ql rsyslog-mysql 查看安装生成的文件

/lib64/rsyslog/ommysql.so

/usr/share/doc/rsyslog-mysql-5.8.10

/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

(3)创建rsyslog依赖数据库

 [root@local log]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql导入mysql脚本

 

导入之后,查看数据库

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| Syslog             |

| mysql              |

| test               |

+--------------------+

4 rows in set (0.05 sec)

mysql> use  Syslog;

changed

mysql> show tables;

+------------------------+

| Tables_in_Syslog       |

+------------------------+

| SystemEvents           |

| SystemEventsProperties |

+------------------------+

2 rows in set (0.00 sec)

(4)配置rsyslog启用

[root@local /]# vi /etc/rsyslog.conf 编辑配置文件的MODULES段添加以下内容:

#### MODULES ####

$ModLoad  ommysql

(5)定义某facility把日志记录至指定数据库的指定表中:

[root@local /]# vi /etc/rsyslog.conf 编辑配置文件的RULES段添加以下内容:

#### RULES ####

*.info;mail.none;authpriv.none;cron.none    :ommysql:127.0.0.1,Syslo

g,user123,pass123

在mysql数据库中添加用户和密码

mysql> grant all on Syslog.* to 'user123'@'127.0.0.1' identified by 'pass123';

Query OK, 0 rows affected (0.05 sec)

mysql> grant all on Syslog.* to 'user123'@'localhost' identified by 'pass123';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

[root@local /]# service rsyslog restart配置好之后,重启rsyslog

可以在数据库中查询:

mysql>select * from  SystenEvents;

(6)使用loganalyzer webgui来展示日志.

开源软件依赖于lamp环境

[root@local html]# yum install php-mysql  php-gd php-gd

loganalyzer-3.6.5.tar.gz 下载解压之后,把contrib目录下在.sh脚本复制到src下,然后把src移动网站根目录重命名log。

[root@local log]# mv contrib/* src/

[root@local src]# chmod  +x *.sh

[root@local log]# ./configure.sh

[root@local log]# ./secure.sh

[root@local log]# chmod  666 config.php 给配置文件赋予权限

 

http://192.168.0.17/log/install.php安装即可~

选择mysql,数据库名称,表名,用户和密码。

 

No syslog records found - Error Details:

Could not find the configured table, maybe misspelled or the tablenames are case sensitive

出现上面红色错误时候。修改下config.php配置文件中的数据库用户和密码即可。

$CFG['UserDBUser'] = 'user123';

$CFG['UserDBPass'] = 'pass123';

 

=========扩展Elk轻量级的开源项目,适用于大量日志收集存储分析展示下次整理=====

 


发表评论

登录 后发表评论.