热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rsyslogmysql模块_RHEL6.4搭建rsyslog日志服务rsyslog+mysql+loganalyzer

软件提供的功能:1、rsyslog是RHEL或centos系统6.x版本的日志服务,代替以前系统的syslog服务。在这个架构中rsyslog服务主要是

软件提供的功能:

1、rsyslog是RHEL或centos系统6.x版本的日志服务,代替以前系统的syslog服务。在这个架构中rsyslog服务主要是收集日志的功能,把日志归类,写入数据库。

2、mysql是简单的数据库,在这个架构中主要任务是存放收集过来的日志信息,以便提供给loganalyzer软件来显示出来。

3、loganalyzer是一个日志分析工具,比较简单。在这个架构中主要是从mysql数据库中提取数据依条形和图形直观的显示出来,提供筛选、搜索、归类、统计等功能。

4、evtsys是运行在windows平台下,把系统收集的日志发送到mysql中,保存起来。

整个环境需要的条件:

在整个框架中,rsyslog、mysql、http、php等使用系统自带的rpm包

loganalyzer是从网上下载的源码包文件,地址: http://download.adiscon.com/loganalyzer/loganalyzer-3.6.3.tar.gz。

整个日志服务是建立在LAMP架构之上的,需要对LAMP有所了解。

两台RHEL6.4系统的主机,一个是server一个是client,把iptables和selinux关闭。

搭建步骤:

1、先在server上来验证一下LAMP架构。

a、初始化mysql服务,进入mysql数据库,执行 "mysql -u 用户名 -D 数据库名 -p 密码" 进行验证mysql是否存在问题;

b、开启httpd服务,打开浏览器,输入本机IP地址,验证httpd服务。找到DirectoryIndex关键字,添加index.php。

c、修改httpd.conf配置文件,在/var/www/html/添加测试index.php页面。进行LAMP的整体测试。

vi /var/www/html/index.php

$link=mysql_connect(localhost,root,123456);    ##(主机名,用户名,密码)

if(!$link) echo "失败!";

else echo "成功!";

mysql_close();

?>Rsyslog的配置文件:

vim /etc/rsyslog.conf

#### MODULES 日志的模块####

$ModLoad imuxsock   #imuxsock是模块名,支持本地系统日志的模块

$ModLoad imklog     #imklog是模块名, 支持内核日志的模块

#$ModLoad immark    #immark是模块名,支持日志标记

#$ModLoad imudp     #imupd是模块名,支持udp协议

#$UDPServerRun 514  #允许514端口接收使用UDP和TCP协议转发过来的日志

#$ModLoad imtcp     #imtcp是模块名,支持tcp协议

#$InputTCPServerRun 514

################# GLOBAL DIRECTIVES #################定义全局日志格式的指令

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板

$IncludeConfig /etc/rsyslog.d/*.conf   #载入rsyslog.d文件中所有以conf结尾的文件

#### RULES ####

*.info;mail.none;authpriv.none;cron.none    /var/log/messages

#####记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间#任务相关的信息除外

authpriv.*             /var/log/secure

#####authpriv验证相关的所有信息存放在/var/log/secure

mail.*                -/var/log/maillog

#####邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大

cron.*                /var/log/cron

####计划任务有关的信息存放在/var/log/cron

*.emerg                * (*表示所有用户)

###记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人

uucp,news.crit        /var/log/spooler

####记录uucp,news.crit等存放在/var/log/spooler

local7.*              /var/log/boot.log

####本地服务器的启动的所有日志存放在/var/log/boot.log中

#############################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

日志滚动服务:所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理,以免造成磁盘空间的不必要的浪费,同时也加快了管理员查看日志所用的时间。因而logrotate就非常有存在的必要了,Redhat系统默然安装logrotate,利用

logrotate设置了相关对rsyslog日志迅速增长的设置。logrotate的执行由crond服务实现。在/etc/cron.daily目

录中,有个logrotate,是个shellscript,用来启动logrotate。

logrotate程序每天由cron在指定的时间

(/etc/crontab)启动。

sed -e '/^#/d'  -e '/^$/d' /etc/logrotate.conf

weekly      #每周清理一次日志文件

rotate 4    #保存四个轮换日志

create      #清除旧日志的同时,创建新的空日志文件

dateext     #使用日期为后缀的回滚文件  #可以去/var/log目录下看看

include /etc/logrotate.d  #包含/etc/logrotate.d目录下的所有配置文件

/var/log/wtmp {      #对/var/log/wtmp这个日志文件按照下面的设定日志回滚

monthly                    #每月轮转一次

create 0664 root utmp      #设置wtmp这个日志文件的权限,属主,属组

minsize 1M                 #日志文件必须大于1M才会去轮换(回滚)

rotate 1                   #保存一个轮换日志

}

/var/log/btmp {

missingok                #如果文件丢失不报错

monthly

create 0600 root utmp

rotate 1

}

[root@demo ~]# cat /etc/logrotate.d/syslog

/var/log/cron    #这些文件是rsyslog.conf文件中全局配置定义中指定的Target的路径

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

sharedscripts

postrotate   # 轮换之后重启rsyslog服务

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}sed -e '/^#/d'  -e '/^$/d' /etc/logrotate.conf

weekly      #每周清理一次日志文件

rotate 4    #保存四个轮换日志

create      #清除旧日志的同时,创建新的空日志文件

dateext     #使用日期为后缀的回滚文件  #可以去/var/log目录下看看

include /etc/logrotate.d  #包含/etc/logrotate.d目录下的所有配置文件

/var/log/wtmp {      #对/var/log/wtmp这个日志文件按照下面的设定日志回滚

monthly                    #每月轮转一次

create 0664 root utmp      #设置wtmp这个日志文件的权限,属主,属组

minsize 1M                 #日志文件必须大于1M才会去轮换(回滚)

rotate 1                   #保存一个轮换日志

}

/var/log/btmp {

missingok                #如果文件丢失不报错

monthly

create 0600 root utmp

rotate 1

}

[root@demo ~]# cat /etc/logrotate.d/syslog

/var/log/cron    #这些文件是rsyslog.conf文件中全局配置定义中指定的Target的路径

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

sharedscripts

postrotate   # 轮换之后重启rsyslog服务

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}

rsyslog 建立:

安装rsyslog服务包,rsyslog-mysql的rpm包需要装上去,是日志和数据库结合的包

配置/etc/rsyslog.conf文件vi /etc/rsyslog.conf

SYSLOGD_OPTIONS="-c 2 -r -x -m 180"    ##添加,

KLOGD_OPTIONS="-x"                     ##添加,

$ModLoad immark.so                     ##查找,并把注释符号去掉。

$ModLoad imudp.so                      ##查找,并把注释符号去掉。

$UDPServerRun 514                      ##查找,并把注释符号去掉。

参数描述如下:

-c指定运行兼容模式。

-r指定监听端口。默认514

-x在接收客户端消息时,禁用DNS查找。需和-r参数配合使用。

-m标记时间戳。单位是分钟,为0时,表示禁用该功能。

修改完保存配置文件后重启rsyslog服务。

客户端:vi /etc/rsyslog.conf

*.*    @172.16.2.240     ##添加改行,@ 之后是server端ip地址。

vi  /etc/bashrc          ##可选项,会记录:那台主机由谁在什么目录执行什么命令

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'    ##添加

source /etc/bashrcce     ##执行后立即生效

修改、保存配置文件后重启rsyslog服务。

第一阶段验证测试。

a、在客户端输入logger-pinfo“测试信息”;

b、在客户端的/var/log/messager文件中去查看是否有执行的这条命令和输入的结果。



推荐阅读
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 在编程实践中,正确管理和释放资源是非常重要的。本文将探讨 Python 中的 'with' 关键字及其背后的上下文管理器机制,以及它们如何帮助我们更安全、高效地管理资源。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • 本文详细介绍了 MySQL InnoDB 存储引擎的事务机制,包括 ACID 特性、redo 日志、undo 日志以及 checkpoint 的作用和实现方式。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文总结了设计、开发和部署Web应用程序时应遵循的一些最佳实践,这些实践结合了个人经验和权威资料,旨在帮助开发者提高Web应用的安全性。 ... [详细]
author-avatar
摩羯水瓶的微博w
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有