Linux上实现rsyslog+mysql+loganalyz进行日志收集

在我们的运维工作中,常常会对系统上的日志进行收集,手动管理少量的几台服务器的日志收集没有太大难度,但是企业当中批量的管理成千上万台服务器的时候,这时候想一台台的收集日志未免太浪费时间了,这时候我们需要一个批量管理日志的系统来解决这一难题,今天我给大家带来的使用

1、syslog介绍

        日志服务在Centos5上位syslog,随着系统版本的升级之后,日志服务改为rsyslog,rsyslog是syslog的升级版,提供了许多高级的特性。syslog由klogd和syslogd组成,klogd记录的是kernel产生的日志信息,而syslogd是系统上的一些普通信息,rsyslog和syslog的整体框架相同,只不过是rsyslog有了一些高级的特性。

2、rsyslog的特性

      Multi-threading   支持多线程工作模型
      TCP, SSL, TLS, RELP   支持ssl加密
      MySQL, PostgreSQL, Oracle and more  可以将日志放入到数据库当中
      Filter any part of syslog message     可以过滤日志信息的任何部分
      Fully configurable output format    完全可配置的输出模式
      Suitable for enterprise-class relay chains  适用于企业级的中继链

3、facility设施,从功能或程序上对日志进行分类,并有专门的工具负责记录其日志

      auth  认证信息
      authpriv  授权信息
      cron   计划任务信息
      daemon  守护进程信息
      kern   内核信息
      lpr    打印机信息
      mail  邮件信息
      mark  防火墙标记信息
      news  新闻组信息
      security (same as auth)  安全信息
      syslog  系统日志
      user   用户相关信息
      uucp  unix间复制信息
      local0 through local7: 8 customed facility  用户自定义的日志类,分为7个级别

 

4、priority:级别

      debug:调试级别,所有信息都会记录

      info: 普通信息,比debug级别高

      notice  :通知信息,比info级别高

      warning,warn :警告信息

      err,error:错误信息,某个功能出现问题,不影响使用

      crit:某个功能出现问题,需及时处理

      alert:系统出现严重问题,不立即处理会有严重后果

      emerg:系统将要挂掉

注意:级别越低记录的信息将会越详细,占用的空间也将越大

4、target日志存放目标

      文件  如/var/log/messages

      用户  *表示所有用户,也可以发给指定的用户

      日志服务器   @10.1.0.1

      管道  |command  交给特定的命令处理

      facility.priority        target
      mail.info              /var/log/maillog info及info以上的级别记录
      mail.=info  仅info级别记录
      mail.!=info  除了info级别以外的都记录

      mail.!info  除了info级别以下的记录其他都记录

      *.info      所有设施的info级别记录
      mail,news,info 两个设施的info

5、rsyslog的配置

      rsyslog的配置文件在/etc/rsyslog.conf及/etc/rsysloge.d/*.conf

      /etc/rsyslog.conf分为四个区域

      MODULES          syslog的模块

      GLOBAL             全局定义,记录的格式等等

      RULES                记录日志相关

      begin  forwarding rule     一些转发的记录信息

      我们主要关心的事RULES这个区域,要想使用rsyslog记录特定类,级别的日志,就需要在RULES中定义

日志信息格式
    时间          主机         进程(PID)        事件
    Aug 30 10:14:16 server kernel: EXT4-fs (dm-7): mounted filesystem with ordered data     mode. Opts:

   通配机制

        *:所有级别

       ,:列表如a,b,c表示三个级别

      !:取反

loganalyzer的介绍

      loganalyzer是一块web界面的日志分析工具,可以分析mysql中的日志信息,有php编写,依赖于lamp平台,要想将日志写入到mysql中,需要安装rsyslog-mysql工具,并启用rsyslog的mmysql模块

6、环境部署

      操作系统:CentOS6.8

      rsyslog:系统默认安装

      loganalyzer:logananlyzer-3.6.4

      LAMP:httpd.2.4,mysql-5,1,php-5.3(我这里就直接二进制安装)

  6.1、关闭selinux和iptables,默认这两项都是开启的

      setenforce 0

      service iptables stop

      如果不关闭iptables,写下规则

      iptables -A INPUT -p udp –dport 514 -j ACCEPT

      iptables -P OUTPUT ACCEPT

      iptables -A  INPUT -p tcp –dport 80 -j ACCEPT

      iptables -P OUTPUT ACCEPT

  6.2、安LAMP

      yum -y install httpd  php  php-mysql mysql mysql-server

      启动服务

      service  httpd  start

      service mysqld start

6.3、配置rsyslog

      #yum -y install rsyslog  rsyslog-mysql

      注:rsyslog-mysql为rsyslog将日志传送到mysql数据库的一个模块,这里必须安装

      mysql<   /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 导入数据库就是在Syslog数据库当中  创建两张表

    创建rsyslog用户在mysql下的相关权限

          mysql -uroot 

          mysql>GRANT ALL ON Syslog.* TO  'loguser'@'localhost' IDENTIFIED BY 'logpass';

          mysql>GRANT ALL ON Syslog.* TO  'loguser'@'127.0.0.1' IDENTIFIED BY 'logpass';

          mysql>FLUSH PRIVILEGES;

          mysql>quit

  配置服务支持rsyslog-mysql模块,并开启UDP服务端口获取网内其他linux系统日志

      vim /etc/rsyslog.conf

      在#### MODULES ####下添加

      $Modload ommysql

    注意:模块必须要写在MODULES里不然最后结果一直出不来

          #### RULES ####z在下面添加要记录的日志

          *.*              :ommysql:127.0.0.1,Syslog,loguser,logpass

    注:127.0.0.1本地回环地址,Syslog为数据库名,loguser为数据库用户,logpass为数据库用户的密码

      开启以下几行

          $ModLoad imudp
          $UDPServerRun 514

重启服务

    service  rsyslog restart

7、配置loganalyzer

      7.1首先去官网下载安装包

      #wget   http://download.adiscon.com/loganalyzer/loganalyzer-3.6.4.tar.gz

      7.2解压

      #tar xf  loganalyzer-3.6.4.tar.gz

      #cd loganalyzer-3.6.4

      #mkdir /var/www/html/loganalyzer

      #mv src/* /var/www/html/loganalyzer/
      #mv contrib/*.sh /var/www/html/loganalyzer/
      #cd /var/www/html
     #chmod u+x   loganalyzer/*.sh
      #touch config.php 
      #chmod  666 config.php
      #chown -R apache.apache *
      删除那两个脚本

    注:两个脚本的执行实际在改目录下创建config.php文件

  7.3初始化

      在浏览器中输入http://10.1.252.100/loganalyzer

    1、提示没有配置文件,点击here利用向导生成

wKiom1fGRVCQvIGIAAAvTFAdEiU297.jpg-wh_50

    2、next

wKioL1fGRV6jTLZnAACkviQrXiQ955.jpg-wh_50

    3、next

wKiom1fGRWvysYitAADSIv6-G_w684.jpg-wh_50

    注:若点击next报错,后台执行如下命令继续

    ln -s /var/lib/mysql/mysql.sock/tmp/mysql.sock

    4、开始写入数据库,next

wKioL1fGSP3xbwfRAADlFS05ZnA152.jpg-wh_50

    5、提示写入成功,next

wKiom1fGSSPykHvbAADSCRg5CFk461.jpg-wh_50

    6、设置管理员账户,配置完毕next

wKiom1fGSTLBbpodAADn-D_V2A4306.jpg-wh_50

    7、设置监控日志保存到mysql数据库中,按照如图配置next

wKioL1fGSW3Ak3EkAADe6ISE1YA780.jpg-wh_50

wKioL1fGSZDAuABgAADGiHpfd-w081.jpg-wh_50

   

    8、完成配置

wKiom1fGSb-xTXlbAAA-tejUcOE578.jpg-wh_50

    9、进入登录界面

wKiom1fGSdqjH0okAAA5oEcYfJE289.jpg-wh_50

    10、进入主界面

wKioL1fGSgfi4xh_AAC077G6REM799.jpg-wh_50

到此处整个安装配置的过程就完成了,在此过程中需要注意的是在图形安装界面授权当中的用户名、数据库名、表名和密码一定要和数据库中的数据一致,否则会导致失败。

至此,整个配置就完成 

原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/52733

(0)
上一篇 2016-10-24 09:08
下一篇 2016-10-24 09:08

相关推荐

  • ip子网划分

    ip子网划分 人们为了通信方便,给每台计算机分配了一个类似我们电话号码一样的标识地址。IP就好比一个人的指纹一样,在INTERNET中是独一无二的(公网中)。我们可以通过ip查询到使用该ip的主机。 现在的IP分为ipv4和ipv6。前者是32位二进制组成,为了防止IP不够用由此研发出后者ipv6,ipv6是由128位二进制组成。ipv6中包含ip的数量相当…

    Linux干货 2017-07-01
  • nginx服务

      Nginx 提供web服务,也是工作在应用层的负载均衡器,拥有强大的缓存能力。 本章主要学习,web server、web reverse proxy(http)和cache 缓存服务器使用较多的是varnish+squid: 任何缓存都是反向代理,但是varnish反向代理能力还是与nginx有很大差距。所以,varnish还是做缓存服务,而…

    Linux干货 2016-11-01
  • 初入linux_基础(一)

    初入Linux知识点总结(一) 一、理论知识 1、时间点: 1946年 第一代计算机ENIAC诞生于美国宾州大学,特点:块头大、效率低 数学家冯诺•依曼提出计算机体系结构组成部分:计算器、运算器、存储器、输入设备、输出设备 1969年 UNIX在美国贝尔实验室诞生 1984年 GNU项目和软件基金会成立 1991年 Linux在芬兰赫尔辛基诞生 2、计算机的…

    Linux干货 2017-02-18
  • 第一周学习内容

    1、LINUX的三大主流版本:debian slackware redhat 2、一个完整的操作系统是由内核+运行在内核之上的应用程序组成。      LINUX操作系统是由linux内核+GNU开源组织编写的应用程序组成(GNU/Linux) 3、CPU架构:X86(X64)、摩托罗拉的m68k、arm、IBM的POWER(性…

    Linux干货 2016-12-03
  • Linux运维学习历程-第一天-基础知识

    什么是Linux   Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 为什么学Linux…

    Linux干货 2016-08-03
  • 远程使用sshd连接不上服务器解决方案

    前些天在学习linux的时候CRT怎么也连接不上我的linux服务器了,整了半天,请教了一些高人才把这个问题解决,现在整理一下我的解决方案。 大家可以看到配置都正确但就是连不上。 通过查看得出原来是22端口拒绝~! 那么我就去查看22端口有没有开启 大家可以看到我的22端口也就是sshd服务并没有开启。 我去开启我的sshd服务器,但是又出现了问题~! 随后…

    Linux干货 2016-03-28