rsyslog日志服务

一、知识整理:

1、日志服务rsyslogd新特点:

    多线程;

    基于SSL/TLS/UDP/TCP/RELP网络协议传输日志信息;

    强大的过滤器,实现过滤日志信息中任何部分的内容;

    自定义的输出格式;

    日志消息的及时分析框架

    存储日志信息与MySQLPGSQLOracleRDBMS

    配置文件中可以写简单的逻辑判断

    syslog配置文件相兼容

2、常见日志文件及作用

    /var/log/cron 记录了系统定时任务相关的日志;

    /var/log/cups 记录打印信息的日志;

    /var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息。

    /var/log/btmp 记录错误登录的日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看;

    /var/log/lastlog 记录系统中所有用户最后一次的登录时间的日志。这个文件也是二进制文件,不能直接vi,而要使用lastlog命令查看。

    /var/log/mailog 记录邮件信息;

    /var/log/message 记录系统重要信息的日志,记录Linux系统的绝大多数重要信息,如果系统出现问题,首先要检查的就是应该是这个日志文件;

    /var/log/secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。比如说系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加用户和修改用户密码;

    /var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件不能直接vi而需要使用last命令来查看;

    /var/run/utmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息,同样这个文件不能直接vi,要使用wwhousers等命令;

    除了系统默认的日志外,rpm包安装的系统服务也默认把日志记录在/var/log/下(源码包在指定目录下)。不过这些日志不是系统记录和管理的,而是各个服务使用自己的日志管理文档来记录。

3、基本格式:日志基本格式

日志产生时间;发生事件的服务器主机名;发生事件的服务名或程序名;具体信息。

日志配置文件/etc/rsyslog.conf/etc/rsyslog.d/* ,配置文件格式简介:

服务名称[连接符号]日志等级      日志记录位置

(1)服务名称(facility):auth 安全和认证相关信息(不推荐使用authpriv替代)

    authpriv 安全和认证信息(私有的)

    cron 系统定时任务crontat产生的日志

    daemon 和各个守护进程相关的日志

    ftp    ftp守护进程产生的日志

    kern 内核产生的日志(不是用户进程产生的)

    local0-7 为本地使用预留的服务

    lpr   打印产生的日志

    mail     邮件日志信息

    syslog syslogd服务产生的日志信息,虽然服务名称改为rsyslogd,但是很多配置都还是沿用了syslogd的,这里并没有修改服务名

    user 用户等级类别的日志信息

    uucp uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来也常用在新闻组服务中

(2)连接符:. 只要比指定等级高的都记录下来

    .= 只记录等于指定等级的日志

    .! 代表不等于指定等级的日志都记录

(3)日志等级(priority):debug  一般的调试信息说明

    info 基本的通知信息

    notice  普通信息,但是有一定的重要性

    warning 警告信息,但是还不会影响到服务或系统的运行

    err 错误信息,已经可以影响到服务或系统的运行了

    crit 临界状况信息

    alert 警告状态信息,必须采取行动

    emerg 疼痛等级信息,系统已经无法使用

(4)可使用的日志记录位置

    /var/log/

    系统设备文件如/dev/lp0

    转发给远程主机,如@192.168.0.1.210:514

    用户名,如root

    模块: 如:ommysql:

4、日志轮替

日志文件的命名规则:

如果配置文件中拥有dateext”参数,那么日志会用日期来作为日志文件的后缀,例如secure-20150202.这样的话日志文件名不会重叠,所有也就不需要日志文件的改名,只需要保存指定的日志个数,删除多余的日志文件即可。

日志轮替(logrotate)配置文件/etc/logrotate.conf

daily 日志轮替周期是每天

weekly 每周

monthly 每月

rotate #   保留日志的文件的个数,0指没有备份

compress  日志轮替时,旧的日志进行压缩

creat  MODE  OWNER  GROUP

 建立新日志,同时指定新日志的权限与所有者和所属组;如creat 0600 root utmp

mail address 当日志轮替时,输出内容通过邮件发送到指定的邮件地址

missingok 如果日志不存在,则忽略该日志的警告信息

notifempty 如果日志为空文件,则不进行日志轮替

minsize 大小  日志轮替的最小值,日志达到最小值才会轮替

size 大小

dateext 使用日期作为日志轮替文件的后缀 如secure-20155555

注意:rpm包安装的程序默认轮替,源码包安装的需要自己修改配置或添加配置、指定日志目录等:

    vim /etc/logrotate.conf 打开后添加

    /usr/local/apache2/logs/access_logerror_log或其他日志) {

    daily

    create

    rotate 30

    }  (也可以在定义虚拟主机时定义)

日志由/sbin/init负责记录。

 

二、命令详解:

1logrotate命令 [] 配置文件名

如果此命令没有选项,则会按照配置文件中的条件进行日志轮替

-v 显示日志轮替过程

-f 强制进行日志轮替

2logger命令:

logger -a shell command interface to the syslog(3) system log module

logger [ options] [message]

logger -p local2.notice  "how are you"

 

三、课后练习:

LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的 syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消 息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。

LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。LogAnalyzer 采用php开发,所以日志服务器需要php的运行环境,本文采用LAMP。

步骤如下:

1)准备mysql,更改mysql配置文件my.cnf,添加如下:

    skip_name_resolve=ON

    innodb_file_per_table=1

(2)安装rsyslog连接至mysql server的驱动模块;

[root@localhost ~]# yum install rsyslog-mysql

3)在mysql-server准备rsyslog专用的用户账号,授权:

MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'syslog'@'localhost' IDENTIFIED BY 'magedu';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'syslog'@'127.0.0.1' IDENTIFIED BY 'magedu';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

生成所需要的数据库和表;使用重定向读入模块的命令:

[root@localhost ~]# mysql < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

(4)启用模块:

[root@localhost ~]# vim /etc/rsyslog.conf

MODULES一栏中添加:

    $ModLoad ommysql

    更改*.*日志生成的位置:添加

    *.*    :ommysql:127.0.0.1,Syslog,syslog,magedu

5)重启rsyslog服务

6)检测:启动mysql

[root@localhost ~]# logger -p local3.notice "how are youab"
[root@localhost ~]# logger -p local2.notice "how are youa"
MariaDB [Syslog]> SELECT * FROM SystemEvents\G

*************************** 11. row ***************************

                ID: 11

        CustomerID: NULL

        ReceivedAt: 2016-10-18 17:15:06

DeviceReportedTime: 2016-10-18 17:15:06

          Facility: 18

          Priority: 5

          FromHost: localhost

           Message: how are youa

        NTSeverity: NULL

        Importance: NULL

       EventSource: NULL

         EventUser: NULL

     EventCategory: NULL

           EventID: NULL

   EventBinaryData: NULL

      MaxAvailable: NULL

         CurrUsage: NULL

          MinUsage: NULL

          MaxUsage: NULL

        InfoUnitID: 1

         SysLogTag: root:

      EventLogType: NULL

   GenericFileName: NULL

          SystemID: NULL

11 rows in set (0.00 sec)

7)配置loganalyzer

    首先准备amp环境;安装httpdphp-gd(支持画图形)phpphp-server

    然后安装loganalyzer:

    cp -a src /html/

    ln -sv

    touch config.php

    chmod 666 config.php

    使用浏览器进行配置

    Table type monitorware

    chmod 644(安装完成后)

以上步骤也可以将原目录contrib中的两个脚本分别在安装前后执行。

安装步骤如下:

blob.png

此处注意:安装过程中出现了这个报错,找了各种日志也没发现原因,最后发现是需要关闭selinux。

blob.png

blob.png

blob.png

blob.png


blob.png

安装完成。

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

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

相关推荐

  • N24 第6周作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/rc.sysinit文件…

    Linux干货 2016-11-30
  • Linux文本处理三剑客之grep

    一、grep命令 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件 二、grep命令格式 grep [OPT…

    Linux干货 2016-08-15
  • Linux中的包管理

    1. RPM介绍 rpm是linux中的包管理软件,通过rpm用户可以对rpm包进行查询、安装、卸载、升级和校验等操作。 1.1 查询 查询 -q:可以查看某个包是否已经安装 -qa:查看系统已经安装的所有包 -qi:查询某个安装包的详细情况 -ql:查询安装某个包之后会生成哪些文件 -qc:查询某个软件的配置文件 -qd:查询某个软件的所有文档 &#821…

    Linux干货 2017-04-17
  • linux 系统启动流程

    假设以个人架设的linux主机为例:当你按下电源键之后,计算机硬件会主动读取BIOS来加载硬件信息及进行硬件系统的自我测试,之后系统会主动读取系统第一个可启动的设备,此时就可以读入引导装载程序了。 引导程序可以指定使用哪个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够开始在内存内活动,并检测所有硬件信息,与加载适当的驱动程序来使这部主机开…

    Linux干货 2016-09-12
  • linux内核(kernel)版本号的意义

      在linux下有一个目录,即/usr/src/kernels/目录,下面记载着一个linux系统的内核文件, 例如:2.6.18-164.el5-x86_64、2.6.18-8.el5-x86_64和2.6.18-194.el5-x86_64等,这些文件编号意味着什么呢?例如2.6.18代表着什么?el5代表着什么?x86_64又代表着什么? …

    Linux干货 2016-01-14
  • MariaDB之MHA配置

    工作拓扑 一、MHA简明:     MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了    automating master failover 功能。MHA在监控到master节点故障时,会提升其中    拥有最新数据的…

    2014-10-08