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
下一篇 2016-10-24

相关推荐

  • KVM基本功能

    前言:本来想写出关于KVM的精品文章,然而学的时间不够长,理解也不够透彻。所以有关KVM的高级功能只能等下一次在写。本次只涉及到KVM的基础核心功能,平时经常会使用的功能.。 一、环境准备: 1、BIOS启用Virtualication。 2、在linux系统上查看系统是否支持硬件虚拟化。Intel系列CPU支持虚拟化标识为vmx,AMD系列CPU标识为sv…

    Linux干货 2015-10-27
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     pts/0        2016-06-23&nb…

    Linux干货 2016-06-29
  • 第四周作业新

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ]# cp -r /etc/skel /home/tuser1             &nb…

    2017-02-20
  • Nginx介绍及使用

       Nginx(engine x)是一个高性能的HTTP和反向代理服务器, 也是一个IMAP/POP3/SMTP服务器. Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的, 第一个公开版本在2004年发布. 因为它的稳定性, 丰富的功能集, 示例配置文件和低系统资源的消耗而闻名. Nginx是一款轻量…

    Linux干货 2016-11-11
  • VMware vSphere所需要开放的端口

        80 vCenter Server需要端口80用于直接HTTP连接。端口80会将请求重定向到HTTPS端口443。如果意外使用了http://server而不是https://server,此端口将非常有用。     389 此端口在vCenter Server的本地和所…

    Linux干货 2016-07-07
  • ls、shutdown命令使用及命令提示符格式修改

        ls、shutdown命令使用及命令提示符格式修改                      &nbs…

    Linux干货 2016-10-17