码迷,mamicode.com
首页 > 其他好文 > 详细

日志配置

时间:2018-02-19 16:40:45      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:授权   lib64   使用   列表   错误信息   zip   comm   分享   部分   

日志配置

    程序包:rsyslog
        rpm -ql rsyslog
            centos6
                /etc/logrotate.d/syslog
                /etc/pki/rsyslog
                /etc/rc.d/init.d/rsyslog
                /etc/rsyslog.conf
                /etc/rsyslog.d
                /etc/sysconfig/rsyslog
                /lib64/rsyslog
                /sbin/rsyslogd/
                /usr/share/doc/rsyslog-5.8.10
                /usr/share/man/man5/rsyslog.conf.5.gz
                /usr/share/man/man8/rsyslogd.8.gz
                /var/lib/rsyslog
            centos7
                /etc/logrotate.d/syslog
                /etc/pki/rsyslog
                /etc/rsyslog.conf
                /etc/rsyslog.d
                /etc/sysconfig/rsyslog
                /usr/bin/rsyslog-recover-qi.pl
                /usr/lib/systemd/system/rsyslog.service
                /usr/lib64/rsyslog/
                /usr/sbin/rsyslogd
                /usr/share/doc/rsyslog-7.4.7
                /usr/share/man/man5/rsyslog.conf.5.gz
                /usr/share/man/man8/rsyslogd.8.gz
                /var/lib/rsyslog
    主程序:
        rsyslogd

    配置文件:
        /etc/rsyslog.conf 
        /etc/rsyslog.d/*.conf

    库文件: 
        /lib64/rsyslog/*.so

    配置文件的格式:
        1》由三部分组成
            MODULES:    相关模块配置
            GLOBAL DIRECTIVES:  全局配置
            RULES:  日志记录相关的规则配置
        2》规则rules的配置格式:
            facility.priority;facility.priority        target
            设施 . 级别                                  位置
        3》facility:
            *:  所有的facility
            facility1,facility2,.... :  指定的facility列表
        4》priority:
            *:  所有级别的日志信息
            none:   没有级别,即不记录
            priority_name:  (8中级别之一)指定级别(含)以上的所有级别的日志信息
            =priority_name: (8中级别之一)仅记录指定级别的日志信息
        5》facility和priority中间可以使用一些符号来表示特殊意义:
            .   点号表示比后面还要高的等级(含)都要被记录下来
            .=  表示所有需要的等级就是后面所接的等级,其他的不要
            .!  代表不等于后面多接的等级,即除了这个等级外的都将记录
        6》target:
            日志信息发送的位置。
            1)文件路径:通常在/var/log/ ,文件路径前的 - 表示异步写入。
            2)用户:将日志事件通知给指定的用户,* 表示登录的所有用户。
            3)日志服务器:@server_host ,把日志送往至指定的远程服务器记录。注意,服务器必须要监听tcp或udp的514端口上的服务。其中@host表示使用udp的协议,@@host表示使用tcp的协议。
            4)管道: | COMMAND,转发给其他命令处理。

    配置日志服务器
        1》把本地配置为日志服务器,可以打开配置文件/etc/rsyslog.conf中的指定模块,让其监听在514端口上。
            vim /etc/rsyslog.conf
                    #### MODULES ####
                 12 # Provides UDP syslog reception
                 13 $ModLoad imudp
                 14 $UDPServerRun 514
                 15 
                 16 # Provides TCP syslog reception
                 17 $ModLoad imtcp
                 18 $InputTCPServerRun 514
        2》打开后重启rsyslog服务器生效
            service rsyslog restart
            ss -ntul|grep 514
        3》在应用服务器
            vim /etc/rsyslog.conf
                local2.*                @@192.168.25.107
        
    日志切割存储的功能组件:logrotate
        1》介绍
            logrotate  程序是一个日志文件管理工具,用来把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。
            可以根据日志文件的大小,也可以根据其天数来转储。
            logrotate是结合cron定期的对日志文件进行处理,主要是通过/etc/cron.daily/logrotate程序来处理。
        2》logrotate的配置文件:
            /etc/logrotate.conf
            /etc/logrotate.d/
        3》/etc/logrotate.conf配置主要参数说明
            compress    通过gzip 压缩转储以后的日志
            nocompress      不需要压缩时,用这个参数
            copytruncate    用于还在打开中的日志文件,把当前日志备份并截断
            nocopytruncate      备份日志文件但是不截断
            create mode owner group     转储文件,使用指定的文件模式创建新的日志文件
            nocreate    不建立新的日志文件
            delaycompress 和 compress    一起使用时,转储的日志文件到下一次转储时才压缩
            nodelaycompress     覆盖 delaycompress  选项,转储并压缩
            errors address      专储时的错误信息发送到指定的Email 地址
            ifempty     即使是空文件也转储,是缺省选项。
            notifempty      如果是空文件的话,不转储
            mail address    把转储的日志文件发送到指定的E-mail  地址
            nomail      转储时不发送日志文件
            olddir directory    转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
            noolddir    转储后的日志文件和当前日志文件放在同一个目录下
            prerotate/endscript     在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
            postrotate/endscript    在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
            daily   指定转储周期为每天
            weekly      指定转储周期为每周
            monthly     指定转储周期为每月
            size    指定日志超过多大时,就执行日志转储
            rotate count    指定日志文件删除之前转储的次数,0  指没有备份,5  指保留5  个备份
            Missingok   如果日志不存在,提示错误
            Nomissingok     如果日志不存在,继续下一次日志,不提示错误
            weekly      默认每周对登录文件进行一次切割
            rotate 4    保留多少个登录文件,默认为4个
            create  由于登录文件被更名,因此创建一个新的来继续记录
            dateext 
            #compress   被更动的登录文件是否需要压缩
            include /etc/logrotate.d    将这个目录的所有文件都读取进来
            /var/log/wtmp {  仅针对/var/log/wtmp所配置的参数
                    monthly 每个月移除,取代每周
                    create 0664 root utmp   指定新建文件的权限与所属账号、群组
                    minsize 1M  文件容量超过1M后才进行切割
                    rotate 1    仅保留一个,即仅有wtmp.1保留而已
            }
            
            /var/log/btmp {
                missingok
                monthly
                create 0600 root utmp
                rotate 1
            }
            
    rsyslog将日志记录于mysql中
        1》准备MySQL Server
        2》在mysql server 上授权rsyslog 能连接至当前服务器
            mysql> GRANT ALL ON Syslog.* TO ‘loguser‘@‘%‘ IDENTIFIED BY ‘xm1234‘;
        3》在rsyslog 服务器和mysql server上安装mysql 模块相关的程序包
            yum install rsyslog-mysql
        4》为rsyslog 创建数据库及表;
            mysql -uroot  -pxm1234 < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
        5》配置rsyslog 将日志保存到mysql中
            vim /etc/rsyslog.conf 
                #### MODULES ####
                $ModLoad ommysql
                #### RULES ####
                facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
                示例
                    local2.*        :ommysql:192.168.213.128,Syslog,loguser,xm1234
            systemctl status rsyslog.service
            systemctl restart  rsyslog.service 
        6》测试
            在rsyslog服务器上
                logger -p local2.info "haha"
            在mysql服务器上
                mysql -uroot -pxm1234
                    use Syslog ;
                    show tables;
                    select count(*) from SystemEvents;
                    select * from SystemEvents \G;

    通过loganalyzer 展示数据库中的日志
        1》在rsyslog 服务器上准备lamp 或lnmp 组合
            yum install httpd php php-mysql php-gd
        2》安装LogAnalyzer
            tar xf loganalyzer-4.1.5.tar.gz
            cp -a loganalyzer-4.1.5/src /var/www/html/loganalyzer
            cd /var/www/html/loganalyzer
            touch config.php
            chmod 666 config.php
        3》配置loganalyzer
            systemctl start httpd.service
            http://HOST/loganalyzer
            
        4》安全加强
            cd /var/www/html/loganalyzer
            chmod 644 config.php

技术分享图片

日志配置

标签:授权   lib64   使用   列表   错误信息   zip   comm   分享   部分   

原文地址:https://www.cnblogs.com/shenxm/p/8453873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!