rsyslog(四)实现将日志记录于Mariadb数据库中

实现将日志记录于Mariadb数据库中

准备工作:

1,准备一台存放日志的mariadb数据库服务器
2,确保selinux,iptables是关闭状态

步骤:

准备日志Mariadb数据库服务器

安装Mariadb数据库
    yum install mariadb-server
也可选择二进制安装安装数据库参考:
    https://blog.51cto.com/13598893/2070289
启动Mariadb数据库,并设置为开机自动启动
 CentOS-6启动服务: service  mariadb start 
 CentOS-6设为开机自动启动:chkconfig mariadb on
 CentOS-7启动服务:systemctl start maridb
 CentOS-7设为开机自动启动:systemctl enable maridb
运行Mariadb安全脚本

"注意:为了数据库安全需运行一个安全脚本如下"

    "mysql_secure_installation"

    第一项问你:输入root密码  回车即可,因为没有
    第二项问你:需要设置root密码么,当然要  敲Y
    第三项问你:需要删除空账号用户么,当然要  敲Y
    第四项问你:禁止root用户远程登入么,根据你们公司的需要
    第五项问你:需要删除test测试数据库么,删除
    第六项问你:现在重新加载权限表吗 ,当然

配置rsyslog服务器

安装rsyslog-mysql包,此包的作用就是让rsyslog服务具有连接数据库的功能

    yum install rsyslog-mysql 

查看rsyslog-mysql 包文件

    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

复制生成数据库的文件至日志mariadb数据库服务器

    scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 目标主机IP:/dir

mariadb服务器,生成日志数据库

进到复制过来的文件的目录下运行该命令
    mysql -uroot -p  < createDB.sql 
    Enter password:
    #"-u指定用户,-p输入改用户的密码"

运行完该命令之后会在数据库里生成一个名为Syslog的数据库,里面会有两张表,

检查数据库是否生成


    MariaDB [(none)]> show tables from Syslog;
    +----------------------------------+
    | Tables_in_Syslog             |
    +----------------------------------+
    | SystemEvents                  |#"存放系统事件"
    | SystemEventsProperties  | #"存放系统事件属性"
    +----------------------------------+
    2 rows in set (0.00 sec)

接下来需要创建一个对于Syslog数据库管理员账号

创建Syslog数据库的管理员
    MariaDB [(none)]>grant ALL on Syslog.* to syslog@'192.168.136.6' identified by 'centos'; 
    命令解析:
        "grant:"创键授权用户
        "ALL:"    表示对Syslog这个数据库拥有所有权限
        "syslog@'192.168.136.6'":其中syslog是用户名,而192.168.136.6表示该用户只能在这台主机上登陆,这也是为了安全起见,
        "identified by 'centos':"这identified by后面单引号里跟的就是该用户的密码了 'centos'最后别忘了";"结尾

修改rsyslog服务器的配置文件

    vim /etc/rsyslog.conf
    # 在#### MODULES ###
    #"下加上这么一行配置,作用就是让rsyslog支持连接数据库功能"
    "$ModLoad ommysql"
    # 在#### RULES ####下设置那些日志需要存到数据库里
    语法格式:  facility.priority   :ommysql:DBHOST,DBNAME,DBUSER,PASSWORD 
    例如:
        *.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.136.7,Syslog,syslog,centos

重启rsyslog服务

CentOS-6重启:service rsyslog restart 
CentOS-7重启:systemctl restart rsyslog

最后的测试

在客户端主机利用logger命令发送日志
 logger -p *.info "The is mysqllog  text log"
 #该命令作用就是发送一条任意设施,info级别以上的日志,内容是"The is mysqllog  text log"
查看数据库里面的日志数据库是否计入内容了
如果出现这些字样,即表示成功了
MariaDB [Syslog]> select * from  SystemEvents\G
*************************** 1. row ***************************
                ID: 1
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 0
          Priority: 6
          FromHost: centos6
           Message: Kernel logging (proc) stopped.
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: kernel:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 2. row ***************************
                ID: 2
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 5
          Priority: 6
          FromHost: centos6
           Message:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="12390" x-info="http://www.rsyslog.com"] exiting on signal 15.
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: rsyslogd:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 3. row ***************************
                ID: 3
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 0
          Priority: 6
          FromHost: centos6
           Message: imklog 5.8.10, log source = /proc/kmsg started.
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: kernel:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 4. row ***************************
                ID: 4
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:05
DeviceReportedTime: 2018-02-09 22:05:05
          Facility: 5
          Priority: 6
          FromHost: centos6
           Message:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="12631" x-info="http://www.rsyslog.com"] start
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: rsyslogd:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
*************************** 5. row ***************************
                ID: 5
        CustomerID: NULL
        ReceivedAt: 2018-02-09 22:05:56
DeviceReportedTime: 2018-02-09 22:05:56
          Facility: 1
          Priority: 5
          FromHost: centos6
           Message:  The is mysqllog  text log
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: root:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
5 rows in set (0.00 sec)

转载于:https://blog.51cto.com/13598893/2072463

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值