rsyslog从入门到放弃

服务器作用不就是发送和收集数据,这个数据无非分为两类,一类是业务数据,主要是为维持业务运行数据,比如一个游戏服务器,业务数据有装备信息,用户等级信息,装备爆率等等。另一类数据就是日志信息,这个数据非必要数据,但是这个数据可以分析用户行为,可以进一步的帮助我们发现用户需求创造收入来源,,在这个大数据时代如果不搞点数据分析基本上不敢说主机是高科技公司。同时我们也使用日志信息记录服务器状态,协助我们了解系统瓶颈,实现业务平滑拓展收缩。为了迎合大数据时代的需求这里主要介绍日志收集。

目录

  • 一日志收集
  • 二rsyslog特点
  • 三rsyslog组成
  • 四实践

一日志收集

日志数据的收集手段是多种多样的,采集的数据也是多种多样的。其中很多应用都是自己收集数据,这一类应用一般比较重量级,并且我们也使用其自带的日志收集工具,主要原因是收集的数据个格式一般比较特殊,需要记录的内容很多。记录日志需要写数据到磁盘,写操作一般会消耗大量的资源这就需要一个高性能的日志记录,若采用第三方记录日志的工具,每记录一次日志都有发送给记录日志的程序,无形间就消耗了大量的资源。这类记录日志的手段需要结合具体的应用去了解使用,这里不做过多的介绍。平时我们会使用一些比较小的程序,这些程序产生的日志比较少但是还比较重要需要记录,每个小程序都写一个自己的日志记录工具显然比较浪费,这时centos给我们提供了一个通用的记录日志的api,小程序记录日志直接调用即可,服务名称为rsyslog,只要程序支持使用rsyslog记录日志,我们就可以调用了。有时我们收集的数据量特别大,这就要求使用更高性能的日志收集展示工具,比较流行的是ELK,E: elasticsearch, L: logstash, K: kibana。以后再介绍

二rsyslog特点

  • rsyslog的特性:多线程;UDP/TCP/SSL/TLS/RELP;存储日志信息于MySQL, PGSQL, Oracle等RDBMS;强大的过滤器,实现过滤日志信息中的任何部分的内容;自定义的输出格式;
 常用事件记录格式:日期时间   主机   进程[pid]: 事件内容;
  • facility:设施,收束日志数据流为有限几个;我们使用的一般是local0-local7自定义收集数据auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7
  • proirity:优先级,在记录日志是我们选择一个级别,只要报错信息超过该级别就都会记录debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

三rsyslog组成

既然是要了解rsyslog首先我们要了解他的配置文件以方便我了解它的功能,配置文件的位置在/etc/rsyslog.conf,它的配置文件分为三个部分

  • MODULES

    这一部分主要是给rsyslog启动一些额外的模块,帮助rsyslog完成对其他主机日志的收集。$ModLoad imudp #启用udp监听模块,不使用注释掉即可$UDPServerRun 514 #监听在514端口$ModLoad imtcp$InputTCPServerRun 514$ModLoad ommysql #启用MySQL数据库记录数据,只有这个还不够还需要在RULES部分定义调用哪个数据库

  • GLOBAL DIRECTIVES

    全局配置段,定义一下通用的属性

  • RULES

    定义记录日志的格式,之前在modules部分启用了mysql模块,在这里使用时可以使用如下格式facility.priority   :ommysql:DBHOST,DBNAME,DBUSER,DBUSERPASSWORD

四实践

先说目的,这里我们要实现一个使用数据库记录日志信息的rsyslog服务器,并且帮助另外一条记录日志,同时我们提供一个web查看界面。拆分一下任务,1配置rsyslog需要的数据库,2配置rsyslog把数据写到数据库并且监听udp514端口,3使用另外一条主机把日志信息发送到rsyslog服务器,4提供网页查看日志工具loganalyzer

 loganalyzer的安装包下载位置http://loganalyzer.adiscon.com/downloads/
  • 这里我直接写了一个脚本,主要适用centos7,6的话需要更改一些内容
  • yum install mariadb-server rsyslog-mysql -y #安装数据库和rsyslog连接数据库的组件
  • systemctl start mariadb.service  #启动数据库
  • mysql <<eofGRANT ALL ON Syslog.* TO ‘rsluser‘@‘127.0.0.1‘ IDENTIFIED BY ‘rslpass‘;
  • GRANT ALL ON Syslog.* TO ‘rsluser‘@‘localhost‘ IDENTIFIED BY ‘rslpass‘;
  • eof #授权rsyslog使用rsluser使用rslpass密码访问本地数据库,并且只可以通过本地访问
  • mysql < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql #创建rsyslog需要数据库,这个sql脚本是rsyslog-mysql包带的
  • systemctl restart rsyslog.serviceyum install httpd php php-mysql php-gd -y #安装提供网页组件
  • cd
  • wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.5.tar.gz #下载loganalyzer包
  • tar xf loganalyzer-4.1.5.tar.gz #解压并复制到/var/www/html/loganalyzer
  • cp -a loganalyzer-4.1.5/src  /var/www/html/loganalyzercd
  • cd /var/www/html/loganalyzer #创建666权限的config.php
  • touch config.php
  • chmod 666 config.php
  • systemctl start httpd.service #启动httpd服务
  • 需要手动更改的内容
  • vim /etc/rsyslog.conf
  • $ModLoad imudp
  • $UDPServerRun 514
  • $ModLoad ommysql #这一行需要添加
  • *.info;mail.none;authpriv.none;cron.none          :ommysql:127.0.0.1,Syslog,rsluser,rslpass
  • 配置下一台服务器把日志写到这台rsyslog服务器,只要改这一行就好了,当然ip是你们rsyslog服务器的ip不要填写我的ip
  • *.info;mail.none;authpriv.none;cron.none                @172.16.29.20
  • 打开网页第七步的时候配置内容如下
  • My Syslog Source My Syslog SourceSource
  • Type MYSQL NativeSelect
  • View SyslogfieldsDatabase
  • Type OptionsTable type MonitorWareDatabase
  • Host 127.0.0.1
  • Database Name Syslog
  • Database Tablename SystemEvents
  • Database User rsluser
  • Database Password ******** #这里的密码就是我们设置的连接数据库的密码rslpassEnable Row Counting No
  • 都配置完之后把/var/www/html/loganalyzer/config.php文件的权限更改为644
  • chmod 644 /var/www/html/loganalyzer/config.php

总结

这一节主要是学习使用rsyslog,主要是学会配置数据库接收日志信息,让rsyslog监听端口收集其他主机的日志,配置网页查看日志信息的网站。

时间: 2024-10-22 00:08:34

rsyslog从入门到放弃的相关文章

从入门到放弃,.net构建博客系统(二):依赖注入

文章目录:<从入门到放弃,.net构建博客系统> 从入门到放弃,.net构建博客系统(一):系统构建 从入门到放弃,.net构建博客系统(二):依赖注入 上一篇中有讲到项目启动时会进行ioc的依赖注入,但具体是怎么注入的呢?我们先一步步往下走 一.注册autofac配置 首先bootstraper会进行初始化,接着将当前mvc控制器工厂改为AutofacControllerFactory. 1 public class AutofacConfig 2 { 3 /// <summary&g

《Java从入门到放弃》文章目录

转眼半个月过去了,不知不觉也写了10篇博客,突然发现所有的目录都没有纯列表的展示,所以特意写一个目录篇,来记录该系列下所有的文章. 当然,因为现在还没有写完,所以先按时间顺序排列,等相关内容都写完后,再按学习顺序来整理. <Java从入门到放弃>入门篇:XMLHttpRequest的基本用法 <Java从入门到放弃>入门篇:Struts2的基本访问方 <Java从入门到放弃>入门篇:Struts2的基本访问方式(二) <Java从入门到放弃>入门篇:Stru

iOS 即时通讯,从入门到 “放弃”?

原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. 注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读. 言归正传,首先我们来总

NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)

前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要记得住所有的jni函数等,真是太折磨人了-平时写java代码的时候都是写几个字母会出来一大堆提示然后选择的,这样还有一个好处就是很多时候我们不知道有那些函数,但是我们可以通过obj.,然后就可以看到它有哪些方法函数了. 2. 很多地方会显示为红色,就像是错误提示的那种,当然,如果没错的话还是能编译运行的,但是如

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3

shell从入门到放弃 第二步 ++

此文承接 shell从入门到放弃 第一步 由此,继续从小白到放弃的第二部分@[email protected] 一.shell的运算符 Shell支持很多运算符,包括:Shell算数运算符.关系运算符.布尔运算符.字符串运算符等 算术运算    算术运算符:        +,-        *, /        %:取余        **:次方            算术运算格式:        (1) let  VAR=算术表达式         (2) VAR=$[算术表达式]  

Python的函数式编程,从入门到?放弃?

转:http://python.jobbole.com/84927/ 很早以前就听说过了函数式编程,印象中是一种很晦涩难懂的编程模式,但却一直没有去进行了解. 恰好这周组内的周会轮到我主持,一时也没想到要分享什么.灵光一闪,就选定函数式编程这个主题吧,反正组里的同事都没有学过,只需要讲解入门方面的知识就好,也正好可以借这个机会逼迫自己去学习下这种新的编程方式. 经过初步了解,发现支持函数式编程的语言挺多的,除了像Lisp.Scheme.Haskell.Erlang这样专用的函数式编程语言,我们常

[补档][从入门到放弃]——网络流 学习索引

前篇 由于某篇博文已经长到我自己看不下去的地步,又不忍心删,所以就有了这篇索引,方便自己找,也方便来访的客人看嘛(真的会有人来看吗啊喂) 最长的博文 2017-7-29 大佬讲课笔记 网络流--从入门到放弃 没错,就是它= = 各种题解的索引 搭配飞行员 士兵占领 王者之剑 happiness 切糕 餐巾 血帆海盗

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观