rsyslog与mysql可以是同一台_关于rsyslog和loganalyzer使用
系统日志太多太分散的话就需要整合,并且分析,所以就有了这样一套东西,这样就大大的减轻了系统管理员的压力,不过现在这篇只是小试牛刀,很多应用功能还是没有用到,例如自定义日志收集过滤, 日志分析图表,等等,不过原理大致都基本如下,是可以举一反三的。
关于rsyslog和loganalyzer的配置简略架构流程图
一、rsyslog
【客户端】rsyslog配置
1.安装rsyslog
yum -y install rsyslog
2.配置rsyslog
/etc/rsyslog.conf
配置很多,但是只需要注意几个
# rsyslog v5 configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
# Provides UDP syslog reception
$ModLoad imudp --注意这个
$UDPServerRun 514 --注意这个
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.* @主rsyslog服务器ip或者host --注意这个
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
1.$ModLoad imudp和$UDPServerRun 514 开启rsyslog的日志远程传输,使用udp模式,当然也可以使用tcp模式,而且tcp也比udp更可靠,防止日志在传输过程丢失,只是需要建立稳定连接,消耗资源,各有所长,各有所需。
2.#.info;mail.none;authpriv.none;cron.none /var/log/messages 注释掉这个语句,改为.* @主rsyslog服务器ip或者host,这是为了配置rsyslog日志传输的目标,另外rsyslog的格式是分为2个方面的,一个是facitlity一个是priority,这个需要一点篇幅来说明,详细可以参阅科普时间或者官网,目前现在这个配置的意思是将所有级别的日志都传输到某个服务器。
3.客户端的rsyslog只需要配置这样就足够了。需要注意的是,如果开启了防火墙的话,那么记得514端口是rsyslog的传输端口,也要放开访问。
3.重启rsyslog服务
service rsyslog restart
【服务端】rsyslog配置
1.安装rsyslog
yum -y install rsyslog
2.配置rsyslog存储数据库(数据库的安装在下面那里一起写了)
yum -y install rsyslog-mysql
导入创库sql
cd /usr/share/doc/rsyslog-mysql-5.8.10/
[root@localhost rsyslog-mysql-5.8.10]# ls
createDB.sql
[root@localhost rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql
这个sql会自动帮你创建rsyslog存储在mysql中的数据的表,等下可以直接被loganalyzer读取数据,然后使用。
连接数据库检查
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use Syslog
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
配置rsyslog连接mysql账号和密码和授权
mysql> grant all on Syslog.* to 'rsysloga'@'localhost' identified by 'rsyslogp'; #设置用户访问数据库服务器中Syslog数据库的用户名和密码,因为rsyslog服务端和mysql数据库是在同一台机器上,所以只允许本机访问就可以了
Query OK, 0 rows affected (0.00 sec)
flush privileges; #刷新权限,及时生效
3.配置服务端的rsyslog.conf(数据库的安装在下面那里一起写了)
cat /etc/rsyslog.conf
# rsyslog v5 configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
$ModLoad ommysql --注意这个
# Provides UDP syslog reception
$ModLoad imudp --注意这个
$UDPServerRun 514 --注意这个
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.* :ommysql:127.0.0.1,Syslog,rsysaloga,rsyslogp --注意这个
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
1.增加了$ModLoad ommysql这个模块,这个就是rsyslog连接mysql使用的模块
2.. :ommysql:127.0.0.1,Syslog,rsysaloga,rsyslogp 这里意思是说使用某个可以连接mysql的账号和密码,连接mysql,将数据传输到mysql数据库里面去。
3.udp传输配置依然要开启,那是因为rsyslog客户端会将日志以udp的方式传输到rsyslog服务端,所以双方都要开启同样的传输方式才可以完成传输。
4.需要注意的是,如果开启了防火墙的话,那么记得514端口是rsyslog的传输端口,也要放开访问。
4.重启rsyslog服务
service rsyslog restart
至此,rsyslog部分已经完成配置,若要检查是否配置成功,可以检查数据库里是否有数据即可。
mysql> select * from SystemEvents;
二、loganalyzer
可以理解为loganalyzer其实就是一个web平台来展现日志数据的而已。
1.下载并安装http+php+mysql套件
yum -y install httpd php php-mysql php-gd mysql mysql-server
httpd用来提供web服务
php使apache支持php,因为loganalyzer是用php编写
php-mysql用于loganalyzer连接数据库
php-gd用于绘图
mysql 是loganalyzer存储数据的地方
设置MySQL的root用户设置密码,因为MySQL被安装时,它的root用户时没有设置密码的,所以可以直接连或者设置一个,但是不影响我们这次配置任务。mysql需要启动,这个需要注意。
2.配置apache+php,并启动apache和mysql
因为yum安装的关系,所有一切都已经配置好了
如:grep -E 'Document|Listen' /etc/httpd/conf/httpd.conf |grep -v '^#'
Listen 80
DocumentRoot "/var/www/html"
如:grep -v '^#' /etc/httpd/conf.d/php.conf
LoadModule php5_module modules/libphp5.so
LoadModule php5_module modules/libphp5-zts.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
启动httpd
service httpd start
启动mysql
service mysqld start
3.下载loganalyzer
将其放置到配置好的apache的web目录里面/var/www/html
tar -zxpf loganalyzer-3.6.6.tar.gz -C /var/www/html
cd /var/www/html/
[root@localhost html]# ls
loganalyzer-3.6.6
授权目录
chown -R apache.apache /var/www/html/loganalyzer-3.6.6/
4.配置loganalyzer
创建loganalyzer数据库和访问账号密码和授权
mysql> create database loganalyzer;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on loganalyzer.* to loga@'localhost' identified by 'logp';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
生成config.php
cd /var/www/html/loganalyzer-3.6.6/contrib
chmod +x *
./configure.sh
在当前目录会生成config.php文件,然后将其放置到src目录去
cp config.php /var/www/html/loganalyzer-3.6.6/src/
在浏览器访问这台主机的80端口
备注:
1.step 2 会检查config.php的写入权限,如果没有请授权一下, chmod +w config.php
2.step 3 选择enable user database,使用自定义数据库,然后填写数据库访问信息,这里的数据库是指loganalyzer的用户数据库,而不是rsyslog日志存储的数据库,这里是需要注意的。并且选取require user to be login。
3.step 5 会将loganalyzer的相关用户表写入到数据库,可以检查loganalyzer的数据库就可以看到了。
4.step 6 配置loganalyzer的管理员账号,登录loganalyzer界面使用的。
5.step 7 是配置rsyslog的日志存储数据库的访问方法,在source type选择 mysql native,然后填写mysql的访问信息,记住,这里是rsyslog的日志存储数据库,不是loganalyzer的用户数据库。
6.完成后会自动跳转提示登录,登陆后就可以看到数据了。
三、科普时间
1.关于rsyslog的日志规则facitlity和priority
###rsyslog.conf中日志规则的定义的格式
facitlity.priority Target
#facility: 日志设备(可以理解为日志类型):
==============================================================
auth #pam产生的日志,认证日志
authpriv #ssh,ftp等登录信息的验证信息,认证授权认证
cron #时间任务相关
kern #内核
lpr #打印
mail #邮件
mark(syslog) #rsyslog服务内部的信息,时间标识
news #新闻组
user #用户程序产生的相关信息
uucp #unix to unix copy, unix主机之间相关的通讯
local 1~7 #自定义的日志设备
===============================================================
#priority: 级别日志级别:
=====================================================================
debug #有调式信息的,日志信息最多
info #一般信息的日志,最常用
notice #最具有重要性的普通条件的信息
warning, warn #警告级别
err, error #错误级别,阻止某个功能或者模块不能正常工作的信息
crit #严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert #需要立刻修改的信息
emerg, panic #内核崩溃等严重信息
###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。
=====================================================================
Target:
#文件, 如/var/log/messages
#用户, root,*(表示所有用户)
#日志服务器,@172.16.22.1
#管道 | COMMAND
2.如果日志数量太大,内容太多,可以进行过滤记录日志
简单的方法可以在rsyslog客户端上的配置
:msg, !contains, "informational"
*.* @主rsyslog服务器ip或者host
在传输配置的上一行增加一个过滤配置,格式是严格的,一定要在上一行增加过滤配置,这里的意思是日志内容出现informational的就不记录。详细的过滤方式在官网上有说,需要的话就要慢慢按照他的方式来使用。
参考文档:
rsyslog与mysql可以是同一台_关于rsyslog和loganalyzer使用相关推荐
- mysql自定义函数的优缺点_浅谈MySQL创建自定义函数漏洞的利用和防止
前一阵子网上风靡的MySQL的udf.dll提权我有所了解-近日由于不再在IDC行业工作了-所以也有所淡忘- 只是最近实在手痒,就决定对我的站点所在的服务器下手--.正好用上这招了- 站点的服务器是W ...
- mysql killed进程不结束_优秀的数据库产品——MySQL 云数据库服务
作为一种低成本,高性能,高可靠性和开放源代码的数据库产品,MySQL已在Internet公司中广泛使用. 例如,淘宝有数千个MySQL服务器. 尽管NoSQL在过去两年中发展迅速,新产品层出不穷,但N ...
- mysql动力节点百度云_动力节点MySQL数据库视频 百度云 网盘 下载
资源名称:动力节点MySQL数据库视频 百度云 网盘 下载 # o4 E. q% ]2 ?百度网盘下载链接:[/hide]- t4 L+ S# b2 T( }! d) n& d 密码:dff7 ...
- mysql程序员面试题_程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)...
欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 1.数据库三范式是什么? 第一范式(1 ...
- 在mysql中可以粘贴吗_现在我在学习MySQL,问问怎么复制粘贴数据库
诶?这项技术又是什么玩意(What)? 这项技术为什么会存在?我们已经有那么多解决方案(Method)了,我们为什么要用它(Why)? 如果这项技术那么好且我们正好有场景可以用到这项技术,且能使我们的 ...
- mysql 复制技术有什么用_简述MySQL复制的优点
MySQL复制是指从一个mysql服务器(MASTER)将数据通过日志的方式经过网络传送到另一台或多台mysql服务器(SLAVE),然后在slave上重放(replay或redo)传送过来的日志,以 ...
- history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...
一.syslog服务简介 rsyslog 是一个 syslogd 的多线程增强版.rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件 logger命令 将自定义的 ...
- mysql不同实例数据同步_两台Mysql数据库数据同步实现实例
做开发的时候要做Mysql的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1.15,都是目前最新的版本. 1. ...
- php和mysql不在同一服务器上_编译php时,如何解决mysql不在同一台机器上的操作问题?...
我们学习lamp的时候,是把mysql和php安装在了同一台机器上,编译php的时候,需要通过参数--with-mysql来指定mysql的安装路径. 但同学们有没有想过,在生产环境中,通常php和m ...
最新文章
- 【c语言】输入输出格式练习
- C++中类文件的分离
- Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)
- 玩转Numpy——np.ravel()的使用
- golang mac 环境变量_macOS 配置 golang 运行环境
- java不用插件播放媒体文件_java servlet不用插件上传文件:
- DNS(BIND) 正向解析 反向解析 基本服务的搭建
- SpringSecurity动态加载用户角色权限实现登录及鉴权
- OpenMAX IL介绍与其体系
- 凸优化第四章凸优化问题 4.5几何规划
- esxi安装系统ndows,ESXI 安装 Windows Server 2012过程
- Mac vmvare vmdk文件使用
- 大宗商品交易平台支持多种交易模式,你了解多少?
- 有趣且重要的Git知识合集(5)Merge branch ‘master‘ of
- 2019 年度最受欢迎的中国开源软件出炉!!
- 微信小程序源代码_移动端商城(微信小程序)
- 企业管理中,商业智能BI主要做哪些事情?
- CSS略详细的基础 助你一臂之力
- 1631 小鲨鱼在51nod小学(线段树区间修改+单点查询:不用下传lazy的区间修改)
- Pytorch 构建简单Neural Networks
热门文章
- haar分类器详解(Haar特征,积分图,adaboost算法,筛选式级联分类器),DCG介绍 --文献阅读报告《基于素描对视频的人脸识别研究》
- globalmapper将高程数据转换模型导入3dmax
- 应用性能管理解决方案
- c语言-餐饮管理与点餐系统
- 电子科技大学-《图论》-研究生课程-知识点汇总-anki卡片定义定理整理-503张卡片
- 树莓派——3、树莓派外设开发编程
- matplotlib-bilibili,抖音很火的动态数据视频自动生成(第四节)-视频,语音合成
- 关于sql注入暴库爆表爆字段
- 百舸争流,通信云市场还有哪些变数?
- 视频AI智能分析流媒体服务器EasyAIFilter代码自定义视频AI智能分析过程的使用方法