rsyslog, mysql, loganalyzer联合实现

一. rsyslog简介

rsyslog是一个自由软件, 是GPL的lincesed增强的syslogd. 它提供了Mysql和完全可配置的输出格式的支持.

1. 日志信息格式:

     <优先级>时间戳 主机名 模块名/级别/信息摘要:内容

     <priority> timestamp sysname module/level/digest:content

上述格式中的尖括号<>, 空格, 斜线, 冒号, 是有效的

2. rsyslog中的术语

   facility : 设施, 信道, 是rsyslog收集,传输日志的设备通道. 具体有以下几种:

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

   priority: 优先级

共有8个优先级, 分别是debug, info, notice, warn, err(error), crit(critical), alert, emerg(panic)

3. rssylog在CentOS7上的程序环境

    (1)配置文件: /etc/rsyslog.conf, /etc/rsyslog.d/*

    (2)主程序: /usr/sbin/rsyslogd

    (3)模块路径: /usr/lib64/rsyslog

    (4)Unit FIle : /usr/lib/systemd/system/rsyslog.service

(1) 配置文件 /etc/rsyslog.conf

主要由三部分组成: 

 MODULES  # 配置了rsyslog用于收集日志信息的模块
 GLOBAL DIRECTIVES  # 主要记录了用于放置辅助文件的位置
 RULES  # 用于配置哪些系统信息记录, 以及存放到哪些文件位置

二. 将rsyslog的日志文件存放到MariaDB上, 并通过图形工具loganalyzer显示

1. 安装需要的程序环境

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

其中rsyslog-mysql为rsyslog连接至mysql的驱动模块

2. 查看rsyslog-mysql的安装后的文件

/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

其中包括一个用于连接mysql的ommysql.so模块, 和一个数据库的脚本,,脚本内容如下:

CREATE DATABASE Syslog;     # 创建一个数据库 Syslog]
USE Syslog;            # 切换到Syslog数据库
CREATE TABLE SystemEvents     # 在数据库中创建表格
(
        ID int unsigned not null auto_increment primary key,
        CustomerID bigint,
        ReceivedAt datetime NULL,
        DeviceReportedTime datetime NULL,
        Facility smallint NULL,
        Priority smallint NULL,
        FromHost varchar(60) NULL,
        Message text,
        NTSeverity int NULL,
        Importance int NULL,
        EventSource varchar(60),
        EventUser varchar(60) NULL,
        EventCategory int NULL,
        EventID int NULL,
        EventBinaryData text NULL,
        MaxAvailable int NULL,
        CurrUsage int NULL,
        MinUsage int NULL,
        MaxUsage int NULL,
        InfoUnitID int NULL ,
        SysLogTag varchar(60),
        EventLogType varchar(60),
        GenericFileName VarChar(60),
        SystemID int NULL
);

CREATE TABLE SystemEventsProperties  #在数据库中创建表格
(
        ID int unsigned not null auto_increment primary key,
        SystemEventID int NULL ,
        ParamName varchar(255) NULL ,
        ParamValue text NULL
);

在上面的脚本中可以看出, 需要给数据库Syslog授权, 并创建Syslog专用的账号

在mysql-client执行下列的命令

MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.00 sec)

3. 生成所需要的数据库和表, 使用mysql命令的重定向导入脚本

[root@localhost ~]# mysql -ursyslog -h127.0.0.1 -prsyslogpass <  /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

4. 配置rsyslog的配置文件/etc/rsyslog.conf, 使用ommysql模块; 并且配置RULES, 将所期望的日志信息记录与mysql中

#### MODULES ####
$ModLoad ommysql
...
#### RULES ####
*.*            :ommysql:127.0.0.1,Syslog,rsyslog,rsyslogpass

5. 安装loganalyzer

(1) 获取loganalyzer-4.1.1.tar.gz

解压: 

tar xf loganalyzer-4.1.1.tar.gz

(2) 将解压得到的loganalyzer-4.1.1目录下的src文件夹 cp 到/var/www/html目录下, 并创建符号链接

[root@localhost ~]# cd loganalyzer-4.1.1
[root@localhost ~]# cp -a src /var/www/html/loganalyzer-4.1.1
[root@localhost ~]# cd /var/www/html/
[root@localhost ~]# ln -sv  loganalyzer-4.1.1 log
[root@localhost ~]# cd log
[root@localhost ~]# touch config.php && chmod 666 config.php

(3) 在图形端口用浏览器访问站点

16.png

在这一步填入相应的数据库信息, 后点next, loganalyzer就安装好了

12345.png

原创文章,作者:black_fish,如若转载,请注明出处:http://www.178linux.com/52779

(0)
black_fishblack_fish
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • SELinux详解及其优缺点

    SELinux简介:        SELinux:Secure Enahanced Linux 安全增强的Linux SELinux是2.6版本的Linux内核中提供的强制访问控制(MAC)系统。对于目前可用的Linux安全模块来说,SELinux是功能最全面,而且测试最充分的…

    Linux干货 2017-05-21
  • ssh登陆与端口转发

    ssh: secure shell, protocol, 22/tcp,  安全的远程登录     具体的软件实现:OpenSSH  : ssh 协议的开源实现,CentOS 默认安装dropbear :另一个开源实现SSH      协议版本   …

    Linux干货 2017-04-13
  • Homework Week-9 bash脚本之顺序、选择、循环

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash #Elephant echo "nologin users:" user1=$(cat /etc/passwd&n…

    Linux干货 2016-10-17
  • Linux下btrfs子卷的挂载

        对btrfs文件系统的补充:     btrfs文件手动挂载自不必多说,但若想btrfs文件系统开机自动挂载,该如何实现呢?     其实只需添加挂载选项即可,如下: UUID=c99895c8-5b14-4276-80c7-ecf…

    Linux干货 2015-12-19
  • Tomcat性能优化-2

    修改Connector运行模式 启用NIO 或 APR bio介绍 bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O操作 默认模式,性能最差,没有经过任何优化处理和支持 nio模式 nio(non-blocking I/O),Java SE 1.4…

    Linux干货 2016-09-19
  • 基于NFS服务的mariadb数据库实现

    实验要求:     (1) nfs server导出/data/目录;     (2) nfs client挂载/data/至本地的/mydata目录;本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据;   (3)用另一台主机,…

    2017-06-11