rsyslog 存储到 mysql
输出Host1/2的系统日志, 记录到mysql服务器数据库中, 并发布loganalyzer
结构关系如下图:

思路: 通过远程连接mysql, 使得rsyslog的log记录能够写入到mysql中, 这其中要依赖一个rsyslog-mysql的模块, 并启用之;
准备工作:
VMware
CentOS 7 最小系统安装镜像
loganalyzer源码包 下载
安装三台主机, 拷贝loganalyzer到MariaDB主机
IP地址与主机对应关系表:
| MariaDB主机 | 192.168.142.128/24 |
| HOST1 | 192.168.142.135/24 |
| HOST2 | 192.168.142.141/24 |
MariaDB服务器操作:
yum -y install mariadb mariadb-server httpd php php-mysql php-gd
#安装mysql服务端, httpd服务端, php --> php-gd 是 loganalyzer 需要使用的
systemctl start mariadb- 登陆mysql
- mysql -uroot -p 登陆;
GRANT ALL ON Syslog.* TO 'sysloguser'@'192.168.142.%' INDENTIFIED BY ''; FLUSH PRIVILEGES;
建立 rsyslog 数据库账号并授权;
注意: 此处Syslog数据库并不需要我们自己建立, 在HOST1/2上安装rsyslog-mysql后, 会有一个 sql 脚本, 该数据库及表由 此脚本 建立, 后文有提到
- 编辑mysql配置文件
vim /etc/my.cnf ###添加如下项目 skip_name_resolve = on
innodb_file_per_table = on ####保存退出, 重启服务
systemctl restart mariadb
HOST1/2 操作:
yum -y install rsyslog-mysql mariadb
# 安装rsyslog支持mysql的模块, 安装mysql客户端
mysql -usysloguser -p123456 -h192.168.142.128
# 测试是否可以连接上 --> 如果连接失败, 在mariadb服务器端重做授权; 检查服务器的防火墙和selinux是否关闭rsyslog连接mysql并做出记录, 是需要依靠 rsyslog-mysql 这个模块的;
查看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这个包提供的 建库脚本- 通过输入重定向的方式, 安装上述sql脚本:
mysql -usysloguser -h192.168.142. -p < /usr/share/doc/rsyslog-8.24./mysql-createDB.sql
检查库建立是否成功:

- 编辑 /etc/rsyslog.conf 配置文件
vim /etc/rsyslog.conf
####MODULES####
$ModLoad ommysql --> 加载ommysql模块以支持功能 ####RULES####
*.info;mail.none; :ommysql:192.168.142.128,Syslog,sysloguser,123456 - 重启rsyslog服务 systemctl restart rsyslog
回到MariaDB服务器, 部署 loganalyzer
- mysql -uroot -p -->连接mysql数据库, 查看是否记录成功
MariaDB [(none)]> use Syslog
MariaDB [Syslog]> SELECT * FROM SystemEvents\G;


- 测试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)
- 这里碰到一个问题:sysloguser 1045拒绝登陆;root可以登陆; 解决办法: 删除所有空密码用户(并给root用户设置密码);
- 部署loganalyzer
- 下载资源包, 解压

- 我们需要 ./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 - 直接访问192.168.142.128/log
- 直接点击Click here 开始安装
在第三步(Step 3),可以勾选, 并使用mysql做 loganalyzer 的用户数据库; 我们这里做测试就直接跳过了

Step 7

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

- 下载资源包, 解压
总结:
使用纯洁的虚拟机安装; 这次偷懒, 上次用完httpd实验后接着使用, 出现了mysql报错的问题;
360浏览器垃圾, 浪费我半个小时;
不要怕玩坏了, 大不了重装, 反正ks文件做好了, 装系统又不用咱动手
rsyslog 存储到 mysql的更多相关文章
- 关于Ueditor存储在mysql"UTF-8"乱码的问题
关于Ueditor存储在mysql"UTF-8"乱码的问题 首先小编要声明之前出乱码的原因,mysql 字段设置的BLOB类型 紧接着我们要先确认两件事: 1.首先要确认你的mys ...
- hive的本地安装部署,元数据存储到mysql中
要想使用Hive先要有hadoop集群的支持,使用本地把元数据存储在mysql中. mysql要可以远程连接: 可以设置user表,把localhost改为%,所有可连接.记住删除root其他用户,不 ...
- 猫眼电影爬取(一):requests+正则,并将数据存储到mysql数据库
前面讲了如何通过pymysql操作数据库,这次写一个爬虫来提取信息,并将数据存储到mysql数据库 1.爬取目标 爬取猫眼电影TOP100榜单 要提取的信息包括:电影排名.电影名称.上映时间.分数 2 ...
- kafka传数据到Flink存储到mysql之Flink使用SQL语句聚合数据流(设置时间窗口,EventTime)
网上没什么资料,就分享下:) 简单模式:kafka传数据到Flink存储到mysql 可以参考网站: 利用Flink stream从kafka中写数据到mysql maven依赖情况: <pro ...
- python zlib压缩存储到mysql列
数据太大压缩存储,可以使用zlib中的压缩函数,代码如下: import ujson import MySQLdb import zlib import base64 kwargs = { 'host ...
- Python爬取招聘信息,并且存储到MySQL数据库中
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...
- 【saltstack】saltstack执行结果和事件存储到mysql
前言 项目中使用saltstack有一段时间了,之前都是在控制台操作,后来感觉越来越不方便,每次操作需要登陆服务器,还需要记一堆命令.最重要的是,公司进新人之后,新人由于不熟悉saltstack,容易 ...
- Python3爬取前程无忧数据分析工作并存储到MySQL
1.导入包import requests #取数from lxml import etree #用xpath解析import pymysql #连接数据库import chardet #自动获取编码2 ...
- <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5
任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...
随机推荐
- c++标准库都有哪些文件
from:http://topic.csdn.net/u/20090201/16/3bd41b72-5694-474e-a68b-98b2f070e76b.html C++标准库的所有头文件都没有扩展 ...
- Unity 动画系统(Mecanim) 术语及翻译 表格
原文 翻译 Animation Clip 视频片段 Avatar 阿凡达 Retargeting 重定向 Rigging 绑定 skinning 蒙皮 Animator Component 动画组件 ...
- Pyhton学习——Day6
# def test(x) : #形参:不占内存空间,调用函数时传入值,程序完成形参释放内存# # 注释内容# # 代码内容# y = x*2# print(y)# # return# # test( ...
- linux C++ 编译错误 file not found 其实是原文件后缀的问题
gcc和clang会根据源文件的后缀.c或者.cpp判断原文件类型,采取不同的编译策略,所以我使用它们编译后缀是.c的C++原文件的时候会出现找不到include的文件的错误,使用正确的后缀名即可.同 ...
- Vue学习之路第十篇:简单计算器的实现
前面九篇讲解了vue的一些基础知识,正所谓:学以致用,今天我们将用前九篇的基础知识,来模拟实现计算器的简单功能,项目价值不高,纯粹是为了加深掌握所学知识. 学前准备: 需要掌握JavaScript的e ...
- vue懒加载
vue懒加载(白屏或者加载慢的解决方法) 懒加载:也叫延迟加载,即在需要的时候进行加载,随用随载. 为什么需要懒加载? 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异 ...
- jvm 虚拟机参数_方法区内存分配
1.方法区( 永久区 ) 和堆一样,方法区是一块所有线程共享的区域,他用于保存系统类的信息.默认情况下 -XX:MaxPermSize 为 64m.如果系统运行时产生大量的类,就需要设置一个合适方法区 ...
- ASP.net session丢失
ASP.NET Session的实现: asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身就是用来做 ...
- n个骰子,和为x的概率分别是多少
开始我居然又没有想出来.. 还是看了解法.开始的时候,一直想的是用概率,百分比来求,后来才发现,用次数来求,最后除一下,更近清晰. 方法,可以是递归,每次多一个骰子的时候,次数分别加上个数以及上一次i ...
- HDU 4331 Contest 4
一个很直观的想法是,求出每个点上下左右能到达的最大长度.然后枚举其斜边...没想到过了.... 当然,题解有一个很巧妙的优化,利用树状数组,那个太巧妙了. #include<iostream&g ...
