Linux syslog 系统日志管理

Linux系统上面,系统可以记录从开机到当前系统上面何时发生了哪些事情,在centos 上表现为rsylog,由三部分组成

1)syslogd:主要记录系统和网络等服务的日志信息

2)klogd:主要记录内核产生的各项信息

3)logretate:主要用来对日志文件进行切割循环记录等

特点:

1)多线程工作

2)支持以TCP,UDP,SSL,TSL,RELP协议和加密完成远程日志的记录

3)支持在开源的关系型数据库MYSQL,PGSQL等之上记录日志信息

4)它还是一个强大的系统过滤器,可实现过滤系统信息的任意部分

5)使用与企业级别的日志记录需求

6)自定义的输出格式

rsyslog中的术语:

facility:

    是从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息,同时在每一个facility上我们还要为其定义一个级别,叫做priority

    常用的facility有:

    

auth(authpriv) 与认证相关的信息
cron 周期性任务计划cron、at等
daemon

与各个服务有关的信息

kern 内核产生的日志信息
lpr 与打印系统相关的信息
mail 与邮件系统相关的信息
news 与新闻相关的信息
security security与安全相关的信息
syslog syslogd程序自身产生的信息
user,uucp,local0-local7 系统本身产生的信息

priority:

    日志级别

等级 等级名称 描述
1 info 仅仅是一些基本信息的说明
2 notice 比info更需要注意的一些说明
3 warning、warm 警告信息,但不至于影响应用程序的运行
4 err,error 一些重大的错误日志,已经影响了应用程序的运行
5 crit 比error还要重要的错误信息
6 alert 已经是有严重级别的错误信息了,比crit更严重
7 emerg,panic 要死机了,内核已出现了恐慌了
8 debug 调试信息,通常用于应用程序的调试过程
* 所有级别
none 没有级别

rsyslog的配置文件

    /etc/rsyslog.conf,其规则为:

    facility.priority    target

    设施.级别            何处

target:日志信息发送的位置:

1、文件路径,在文件路径之前使用“-”,表示异步写入

2、用户,将日志信息通知指定用户,*表示所有用户

3、日志服务器地址 @SERVER,此时服务器必须要监听在tvp或udp协议的514端口上提供服务

4、管道,可以通过管道命令送给某个命令进行处理 |COMMAND

日志文件记录的格式:

时间产生的时间    主机    进程(PID)    事件

有些日志记录二进制格式,例如:

1、成功登陆系统的日志:/var/log/wtmp

    查看命令:last 

2、失败的登陆尝试:/var/log/btmp

    查看命令:lastb

3、lastlog命令显示当前同每个用户各自最近一次的登录信息

如果想让本机成为日志服务器,打开rsyslog配置文件/etc/rsysog.conf中指定的模块,让其监听在514端口上:

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

然后重启服务

logrotate:循环切割日志

可以配合cron定期的对日志文件进行处理,只要通过/etc/cron.daily/logrotate程序来处理

    配置文件:

        /etc/logrotate.conf(主配置文件)

        /etc/logrotate.d/*

]# vi /etc/logrotate.conf 

    weekly  默认每周对登录文件进行一次切割

    rotate 4  保留多少个登录文件,默认是四个

    create    由于登录文件被更名,因此创建一个新的来继续记录

    include /etc/logrotate.d    将这个目录下的所有文件都读过来。许多服务的主配置文件里都有这个

    /var/log/wtmp {

        monthly    每月一次

        create 0664 root utmp    指定新建文件的权限与所属账号/群组

     minsize 1M    文件容量超过1M后才切割

        rotate 1    仅保留一个,即仅有wtmp.1保留

    }

    /var/log/btmp {

        missingok 表示如果找不到log文件也 OK

        monthly

        create 0600 root utmp

        rotate 1

    }


实战操作

rsyslog日志服务器+MySQL及管理工具的初级部署

环境要求:安装有rsyslogMySQL、及管理工具(这里我们用loganalyzer-3.6.5

我的环境:centos 7

                    firewald.service 已关闭

                    selinux已禁用

1安装程序包:

~]# yum -y install mariadb-server

MySQL配置

skip_name_resolve=ON

 

~]# yum -y install rsyslog  这个系统默认都安装的呢

~]# yum -y install rsyslog-mysql  rsyslog连接MySQL的组件

loganalyzer-3.6.5.tar.gz 这个是一个管理日志的工具,如果没有课自行到官网下载

2mysql 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';

3生成所需要的数据库和表;

mysql -ursyslog -h127.0.0.1 -prsyslogpass <  /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

后面的MySQL脚本是安装rsyslog-mysql 生成的,可以用命令查看

rpm –ql rsyslog-mysql

4配置rsyslog使用ommysql模块

~]# vi /etc/rsyslog.conf

#### MODULES ####下面添加一行

$ModLoad ommysql

5配置RULES,将你想要记录的日志信息记录于mysql

~]# vi /etc/rsyslog.conf

#### RULES #### 下面添加一行

 

*.*                             :ommysql:127.0.0.1,Syslog,rsyslog,rsyslogpass

你想要记录的信息类型                        模块名             ip  数据库名 用户名  密码

 

6配置lamp环境

安装这些包:httpd php php-mysql php-gd

yum -y install httpd php php-mysql php-gd

7设置loganalyzer

~]# tar xf loganalyzer-3.6.5.tar.gz

解压loganalyzer包,并将里面的src目录复制到/var/www/html/loganalyzer-3.6.5

cp -a src/ /var/www/html/loganalyzer-3.6.5

]# ln -s loganalyzer-3.6.5 log 创建一个软链接

]# cd log

]# touch config.php

]# chmod 666 config.php

]# systemctl start httpdhttpd启动

8打开浏览器配置

http://10.1.253.4/log/

blob.png

点上面的here开始配置

第一步检查依赖条件:默认

第二步检查文件权限:默认

第三步基本配置选项:默认

第四步为管路工具添加一个源,也就是管理哪个日志

blob.png

blob.png

finish完成

9配置完成后将config.php文件的权限修改为644

chmod 644 config.php

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

(2)
cszdz123cszdz123
上一篇 2016-10-24 09:09
下一篇 2016-10-24 09:09

相关推荐

  • Linux用户和组管理

    使用对象:Linux初学者   Linux系统中用户和组管理是很重要的一部分内容。许多初学者在学习或刚接触到用户管理的时候会觉得很难理解,命令多、选项多、配置文件也多,用命令可以修改,用配置文件也可以修改,三两下就被绕进去了。其实完全没必要晕,只要了解了用户管理的方式,就会很容易理解命令选项与配置文件之间的关系。下面我们就来了解下用户管理命令与配置…

    Linux干货 2016-10-23
  • 什么是Ansible?

    自动化工具——ansible   ansibleArchitecture ansibleProject 1. 什么是ansible ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持…

    2017-09-24
  • 从案例出发——命令总结之find篇

    在这篇文章中你将看到以下内容:1、find命令的格式、语法、及实际应用 2、3个时间戳的意义  3、各种文件类型的解释  4、软硬链接的区别 5、exec和xargs的区别 6、几个逻辑判断符的意义  7、通配符的意义  8、find 命令下时间查找的特殊定义 首先,来看看以下题目:   &nbsp…

    Linux干货 2016-03-25
  • N22-第6周作业-冥界之王

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

    Linux干货 2016-09-19
  • 如何查找Ubuntu系统中占用磁盘最大的那些文件夹

    根据马哥的指导,我们需要用df和du两个磁盘管理命令来查看 先用df来了解磁盘大致的空间情况: 然后用du -sh 某个folder来查看哪个文件夹占用多少空间 然后我们可以用du /homewebown | sort -nr | more 可来定位具体是哪个文件夹占用空间过大。

    Linux干货 2016-11-06
  • rsync+inotify实现数据实时备份

    rsync+inotify实现数据实时备份 §·rsync简单介绍 1 §·什么是rsync 1 §·rsync的功能特性 1 §·rsync的优点和不足 2 §·初识inotify 2 §·rsync命令工作模式 2 §·rsync常用命令选项 3 §·配置rsync以守护进程的方式运行 3 ※·安装并启动 xinetd 3 ※·为rsync服务器提供配置…

    Linux干货 2016-10-30