rsyslog日志记录服务器

rsyslog日志记录服务器

部分思路总结摘自网络http://xuding.blog.51cto.com/4890434/1737947

一、syslog系统

1.syslog:系统日志服务,统一日志管理

支持C/S架构:可通过UDP或TCP协议提供日志记录服务;实现集中收集日志功能

(1)日志、事件

历史事件日志,保存系统上过去一段时间的发生的事件
事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件;

(2)syslog种类

syslogd:system系统日志
klogd:kernel内核日志

2.syslog格式

事件产生的日期时间               主机        进程[pid] :事件内容
syslog系统仅能记录较为简单的事件格式,并非所有应用程序都会使用syslog记录,如httd

二、rsyslog日志系统

(1)facility:设施,从功能或程序上对日志收集进行分类;

auth:各应用程序认证功能相关
authpriv:各应用与授权相关
cron:与计划性任务相关
daemon: 和守护进程相关
kern:和内核相关
lpr:和打印系统相关
mail:和邮件系统相关
mark:和防火墙标记相关
news:和新闻组相关
security:和安全相关
user:和用户相关
uucp:unix to unix copy,unix系统间复制协议相关
local0-local7:8个可自定义使用分类模式
syslog:其他,不便于归类的全都记录在此处

(2)priority:优先级,日志级别

 从低到高:debug, info, notice, warn(warning), err(error), crit(critical),alert, emerg(panic)
  指定级别格式:
    *:所有级别;
    none:没有级别,不记录日志;
    priority:此级别(含)及其以上的所有级别;
    =priorty:仅指定的级别;

三、rsyslogd日志系统服务器

rsyslog程序环境:

配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/
主程序:/usr/sbin/rsyslogd
模块路径:/usr/lib64/rsyslog/
Unit File:/usr/lib/systemd/system/rsyslog.service

配置文件格式:

有三部分组成:严格按照配置段位置添加配置
    MODULES :指明加载模块,$ModLoad指令进行模块装载
    GLOBAL DIRECTIVES :全局配置指令
    RULES :日志记录规则;格式:facilty.priority          target
        RULES:
            facility.priority   target
            facility:
                *:所有的facility;
                f1,f2,f3,...:列表中给定的所有facility;
                    auth,authpriv,security.info
                f1.p1;f2,p2;f3.p3;...:列表中给定的所有facility;
                    auth.info;authpriv.notic;security,warn;
            priority:
                *:所有级别
                none:没有级别,不记录日志;
                PRIORITY:此级别(含)及其以上的所有级别;
                =PRIORITY:仅指定的级别;
        target:
                文件:将日志信息记录到指定的文件中;文件路径之前的“-”表示异步写入之意;
                用户:将日志事件通知给指定的用户;一般指登录到当前系统上的所有用户的终端;
                日志服务器:@rsyslog_server,把日志信息发往指定的日志服务器;
                管道:|COMMAND

其它几个日志文件:

/var/log/wtmp:当前系统成功登录系统的日志;需要使用last命令查看
/var/log/btmp:当前系统尝试登录系统失败相关的日志;需要使用lastb命令查看
    lastlog:显示当前系统上的所有用户最近一次登录系统的时间;
/var/log/dmesg:系统引导过程中的日志信息;也可以使用dmesg命令进行查看;

命令行客户端程序:

logger - a shell command interface to the syslog(3) system log module
    logger [options] [message]

配置rsyslog服务器的配置项:

(1)客户端:配置文件@HOST指明,输出到的服务器端,重启服务

(2)在/etc/rsyslog.conf文件MODULES段开启模块服务,使其监听在默认端口514,并重启服务器即可

#### modules ####
…………
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

配置基于Mysql存储日志信息

前提:准备好msql server或mariadb server;

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

# yum install rsyslog-mysql

(2) 在mysql server准备rsyslog专用的用户账号;

 GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass';
flush privileges;

(3) 生成所需要的数据库和表;通过导入createDB.sql脚本创建

mysql -ursyslog -h127.0.0.1 -prsyslogpass <  /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
创建完之后进入mysql进行验证
]# mysql
MariaDB [(none)]> show databases;
MariaDB [(none)]> use Syslog;
MariaDB [Syslog]> show tables;
MariaDB [Syslog]> desc SystemEvents;

rsyslog日志记录服务器

rsyslog日志记录服务器

rsyslog日志记录服务器

(4) 配置rsyslog使用ommysql模块

# vim /etc/rsyslog.conf

#### MODULES ####
......
$ModLoad ommysql

rsyslog日志记录服务器

(5) 配置RULES,将所期望的日志信息记录于mysql中;

facility.priority       :ommysql:DBHOST,DB,DBUSER,DBUSERPASS

rsyslog日志记录服务器

(6) 重启rsyslog服务;

]# systemctl restart rsyslog.service
]# systemctl status rsyslog.service 查看服务状态是否OK 
]#mysql
MariaDB [(none)]> use Syslog;
MariaDB [(none)]> select * from SystemEvents;
如果有数据,则表示成功。

(7) loganalyzer

WebGUI, 运行amp环境中;
    (a) 准备amp环境
        # yum install httpd php php-mysql php-gd
        # systemctl start httpd.service 
    (b) 安装loganalyzer
        # tar xf loganalyzer-VERSION.tar.gz
        # cd loganalyzer-VERSION
        # cp -a src  /var/www/html/loganalyzer-VERSION
        # cd /var/www/html
        # ln -sv loganalyzer-VERSION log
        # cd /root/loganalyzer-3.6.5/
        # cp contrib/* /var/www/html/log
        # cd /var/www/html/log 
        # chmod  +x *.sh
        # ./configure.sh
        通过URL访问http://HOST/log进行安装

rsyslog日志记录服务器 rsyslog日志记录服务器rsyslog日志记录服务器rsyslog日志记录服务器rsyslog日志记录服务器

出现报错如下,需要修改config.php配置文件中localhost为127.0.0.1

rsyslog日志记录服务器

        # vim config.php

rsyslog日志记录服务器

rsyslog日志记录服务器

rsyslog日志记录服务器

    # ./secure.sh

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58152

(0)
M20-1马星M20-1马星
上一篇 2016-11-07
下一篇 2016-11-07

相关推荐

  • VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证]

    VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] 一、实验环境 二、实验步骤 1、通过mysql数据库方式虚拟用户认证 1.1数据库配置 1.2FTP配置 1.3测试 2、通过文件方式进行虚拟用户认证 一、实验环境 CentOS 6.7+vsftpd…

    Linux干货 2016-04-18
  • Linux文本处理工具及组管理

    1、列出当前系统上所有已经登录的用户名,注意:同一个用户登录多次,只显示一次即可 [root@centos ~]# who | cut -d' ' -f1 | sort -u     gentoo &…

    Linux干货 2016-10-09
  • 马哥教育网络班21期+第11周课程练习

    1、请描述一次完整的加密通讯过程,结合图示最佳。 Bob先利用单向加密算法提取当前数据的指纹(特征码),再用自己的私钥加密数据指纹并附加于数据尾部,然后利用对称加密将整个文件加密,之后用对方的公钥加密对称加密密钥附加于尾部。 Alice收到数据后,先用自己的私钥解密,得到对称加密密钥,之后用对称加密密钥解密,然后用Bob的公钥解密得到数据指纹,并且验证了Bo…

    Linux干货 2016-09-26
  • 第九周作业

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; # awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”…

    Linux干货 2017-03-01
  • 马哥教育网络班22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;       [root@localhost ~]#…

    Linux干货 2016-10-09
  • N26-博客作业-week15

    1、总结sed和awk的详细用法 sed: 语法结构 sed [OPTION]…’script’ [input-file]…[action] -r:支持扩展正则表达式 -n:不输出模式空间中的内容至屏幕 -e script1 -e script2 -e script3:指定多脚本运行 -f /path/to/script_file:从指定的文件中读取…

    Linux干货 2017-07-14