输出Host1/2的系统日志, 记录到mysql服务器数据库中, 并发布loganalyzer

结构关系如下图:

思路: 通过远程连接mysql, 使得rsyslog的log记录能够写入到mysql中, 这其中要依赖一个rsyslog-mysql的模块, 并启用之;

准备工作:

  1. VMware

  2. CentOS 7 最小系统安装镜像

  3. loganalyzer源码包 下载

  4. 安装三台主机, 拷贝loganalyzer到MariaDB主机

IP地址与主机对应关系表:

MariaDB主机 192.168.142.128/24
HOST1 192.168.142.135/24
HOST2 192.168.142.141/24

MariaDB服务器操作:

  1. yum -y install mariadb mariadb-server httpd php php-mysql php-gd
    #安装mysql服务端, httpd服务端, php --> php-gd 是 loganalyzer 需要使用的
    systemctl start mariadb
  2. 登陆mysql 
    1. mysql -uroot -p  登陆;
    2. GRANT ALL ON Syslog.* TO 'sysloguser'@'192.168.142.%' INDENTIFIED BY ''; FLUSH PRIVILEGES;

      建立 rsyslog 数据库账号并授权;

      • 注意: 此处Syslog数据库并不需要我们自己建立, 在HOST1/2上安装rsyslog-mysql后, 会有一个 sql 脚本, 该数据库及表由 此脚本 建立, 后文有提到

  3. 编辑mysql配置文件
  4. vim /etc/my.cnf
    
    ###添加如下项目
    
    skip_name_resolve = on
    innodb_file_per_table = on ####保存退出, 重启服务
    systemctl restart mariadb

HOST1/2 操作:

  1. yum -y install rsyslog-mysql mariadb
    # 安装rsyslog支持mysql的模块, 安装mysql客户端
    mysql -usysloguser -p123456 -h192.168.142.128
    # 测试是否可以连接上 --> 如果连接失败, 在mariadb服务器端重做授权; 检查服务器的防火墙和selinux是否关闭

    rsyslog连接mysql并做出记录, 是需要依靠 rsyslog-mysql 这个模块的;

  2. 查看rsyslog-mysql 这个包相关文件等:

    [root@host1 ~]# rpm -ql rsyslog-mysql
    /usr/lib64/rsyslog/ommysql.so --> rsyslog模块
    /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql --> 此sql脚本即为上文提到的, rsyslog-mysql这个包提供的 建库脚本

  3. 通过输入重定向的方式, 安装上述sql脚本: 
    mysql -usysloguser -h192.168.142. -p < /usr/share/doc/rsyslog-8.24./mysql-createDB.sql

    检查库建立是否成功:

  4. 编辑 /etc/rsyslog.conf 配置文件
    vim /etc/rsyslog.conf
    ####MODULES####
    $ModLoad ommysql --> 加载ommysql模块以支持功能 ####RULES####
    *.info;mail.none; :ommysql:192.168.142.128,Syslog,sysloguser,123456
  5. 重启rsyslog服务 systemctl restart rsyslog

回到MariaDB服务器, 部署 loganalyzer

  • mysql -uroot -p -->连接mysql数据库, 查看是否记录成功
MariaDB [(none)]> use Syslog
MariaDB [Syslog]> SELECT * FROM SystemEvents\G;

  1. 测试httpd, php, php-mysql 是否配置成功 --> 参见上一篇

    • 这里碰到一个问题:sysloguser 1045拒绝登陆;root可以登陆; 解决办法: 删除所有空密码用户(并给root用户设置密码);

      --[root@vm]: ~ # mysql -usysloguser -h192.168.142. -p
      Enter password:
      ERROR (): Access denied for user 'sysloguser'@'vm' (using password: YES)

  2. 部署loganalyzer
    1. 下载资源包, 解压
    2. 我们需要 ./contrib 下的两个脚本, 以及./src 下的全部文件
      --[root@vm]: ~/loganalyzer-4.1. # ls
      ChangeLog contrib COPYING doc INSTALL src
      --[root@vm]: ~/loganalyzer-4.1. # cp -r ./src /var/www/html/log
      --[root@vm]: ~/loganalyzer-4.1. # cd /var/www/html/log
      --[root@vm]: /var/www/html/log # ls
      admin chartgenerator.php cron export.php include js reportgenerator.php statistics.php userchange.php
      asktheoracle.php classes css favicon.ico index.php lang reports.php templates
      BitstreamVeraFonts convert.php details.php images install.php login.php search.php themes
      --[root@vm]: /var/www/html/log # cd -
      /root/loganalyzer-4.1.
      --[root@vm]: ~/loganalyzer-4.1. # ls
      ChangeLog contrib COPYING doc INSTALL src
      --[root@vm]: ~/loganalyzer-4.1. # cp ./contrib/*.sh /var/www/html/log
      -51-[root@vm]16:21 ~/loganalyzer-4.1.6 # cd -
      /var/www/html/log
      -52-[root@vm]16:21 /var/www/html/log # ls
      admin chartgenerator.php convert.php details.php images install.php login.php search.php templates
      asktheoracle.php classes cron export.php include js reportgenerator.php secure.sh themes
      BitstreamVeraFonts configure.sh css favicon.ico index.php lang reports.php statistics.php userchange.php
      -53-[root@vm]16:21 /var/www/html/log # chmod +x *.sh
      -54-[root@vm]16:21 /var/www/html/log # ./configure.sh
      -55-[root@vm]16:21 /var/www/html/log # ./secure.sh
      -56-[root@vm]16:21 /var/www/html/log # chmod -x *.sh
      -57-[root@vm]16:21 /var/www/html/log # touch config.php;chmod 666 config.php
    3. 直接访问192.168.142.128/log 
    4. 直接点击Click here   开始安装
    5. 在第三步(Step 3),可以勾选, 并使用mysql做 loganalyzer 的用户数据库; 我们这里做测试就直接跳过了

    6. Step 7

      • 请务必使用chrome, 点击MYSQL Native后, IE/ EDGE/ 360浏览器不会弹出下面的数据库选项框;

    7. 搞定

总结:

  1. 使用纯洁的虚拟机安装; 这次偷懒, 上次用完httpd实验后接着使用, 出现了mysql报错的问题;

  2. 360浏览器垃圾, 浪费我半个小时;

  3. 不要怕玩坏了, 大不了重装, 反正ks文件做好了, 装系统又不用咱动手

rsyslog 存储到 mysql的更多相关文章

  1. 关于Ueditor存储在mysql"UTF-8"乱码的问题

    关于Ueditor存储在mysql"UTF-8"乱码的问题 首先小编要声明之前出乱码的原因,mysql 字段设置的BLOB类型 紧接着我们要先确认两件事: 1.首先要确认你的mys ...

  2. hive的本地安装部署,元数据存储到mysql中

    要想使用Hive先要有hadoop集群的支持,使用本地把元数据存储在mysql中. mysql要可以远程连接: 可以设置user表,把localhost改为%,所有可连接.记住删除root其他用户,不 ...

  3. 猫眼电影爬取(一):requests+正则,并将数据存储到mysql数据库

    前面讲了如何通过pymysql操作数据库,这次写一个爬虫来提取信息,并将数据存储到mysql数据库 1.爬取目标 爬取猫眼电影TOP100榜单 要提取的信息包括:电影排名.电影名称.上映时间.分数 2 ...

  4. kafka传数据到Flink存储到mysql之Flink使用SQL语句聚合数据流(设置时间窗口,EventTime)

    网上没什么资料,就分享下:) 简单模式:kafka传数据到Flink存储到mysql 可以参考网站: 利用Flink stream从kafka中写数据到mysql maven依赖情况: <pro ...

  5. python zlib压缩存储到mysql列

    数据太大压缩存储,可以使用zlib中的压缩函数,代码如下: import ujson import MySQLdb import zlib import base64 kwargs = { 'host ...

  6. Python爬取招聘信息,并且存储到MySQL数据库中

    前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...

  7. 【saltstack】saltstack执行结果和事件存储到mysql

    前言 项目中使用saltstack有一段时间了,之前都是在控制台操作,后来感觉越来越不方便,每次操作需要登陆服务器,还需要记一堆命令.最重要的是,公司进新人之后,新人由于不熟悉saltstack,容易 ...

  8. Python3爬取前程无忧数据分析工作并存储到MySQL

    1.导入包import requests #取数from lxml import etree #用xpath解析import pymysql #连接数据库import chardet #自动获取编码2 ...

  9. <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5

    任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...

随机推荐

  1. python爬虫:爬取读者某一期内容

    学会了怎么使用os模块 #!/usr/bin/python# -*- encoding:utf-8 -*- import requestsimport osfrom bs4 import Beauti ...

  2. HDU 1176 免费馅饼【动态规划】

    解题思路:用a[i][j]表示在第i秒在地点j的掉落馅饼的数量,设整个馅饼掉落的时间持续为timemax,即为矩阵的高度,一共0到10个地点,为矩阵的长度,如图,即可构成数塔,因为考虑到在地点0的时候 ...

  3. GFM(GitHub Flavored Markdown)与标准Markdown的语法区别

    没有就自己造 其实这篇文16年底的时候就写好的,只不过当时是记在自己的笔记上(没错,我笔记大多记在本地,比发表的这寥寥几篇那是多的多的多了

  4. ZBrush中如何清除遮罩

    在之前的学习中我们知道在ZBrush®中如何创建遮罩,在创建遮罩时怎样进行反转来选择反选遮罩,本文将详细讲解ZBrush中如何清除遮罩,当我们利用遮罩达到预期效果时就需要将遮罩清除了:或者在做了遮罩的 ...

  5. addEventListener()与removeEventListener(),追加事件和删除追加事件

    addEventListener()与removeEventListener()用于追加事件和删除追加.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函 ...

  6. 其他信息: 具有固定名称“Npgsql”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。有关详细信息,请参阅内部异常

    其他信息: 具有固定名称“Npgsql”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载.有关详细信息,请参阅内部异常 解决方法 在 App.config 的 configur ...

  7. 边框的使用,border-radius,box-shadow,border-image

    <html>    <head>        <meta charset="UTF-8">        <title></ ...

  8. 路飞学城Python-Day23

    1.计算机基础 Python可以实现各种应用软件,类比word.QQ.爱奇艺等,但是应用这些软件需要计算机硬件, 计算机发展的过程就是人类不断的希望机器去取代人力,解放更多的人力,最终极的理想就是完全 ...

  9. webpack安装,npm WARN optional SKIPPING OPTIONAL DEPENDENCY,npm WARN notsup SKIPPING OPTIONAL DEPENDENCY警告

    npm install webpack -g//全局安装webpack 电脑上安装完后: 其中有两个警告: npm WARN optional SKIPPING OPTIONAL DEPENDENCY ...

  10. POJ 2774 Long Long Message (后缀数组+二分)

    题目大意:求两个字符串的最长公共子串长度 把两个串接在一起,中间放一个#,然后求出height 接下来还是老套路,二分出一个答案ans,然后去验证,如果有连续几个位置的h[i]>=ans,且存在 ...