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文本处理工具 1.Linux 文件系统上的特殊权限: SUID     SGID   Sticky       进程的安全上下文:(1)任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行去权限       &…

    Linux干货 2017-02-25
  • corosync+pacemaker对mariadb实现高可用

    corosync+pacemaker对mariadb实现高可用 利用nfs共享存储,导出一个目录作为mariadb的数据目录,然后利用corosync+pacemaker对mariadb进行高可用 1、实验环境 2、实验前的分析 利用nfs导出目录作为mariadb的共享目录,要确保各个mariadb节点对该目录具有写权限,也就是要确保nfs服务器上有一个U…

    Linux干货 2016-11-24
  • 2016全球运维大会,优云蒋君伟演讲“CMDB+自动化的管理融合”成一大亮点

    2016全球运维大会于9月23日-24日在上海盛大开幕。作为国内运维行业的重量级大会,优云产品总监蒋君伟在自动化专场与来自全国各地的运维同行一起探讨、分享业内自动化运维的最佳实践。现场情绪热烈,气氛高涨,成为了本届全球运维大会的一大亮点。 全新梳理自动化与CMDB的融合之道 全球运维大会当天,运维自动化专场很多大牛针对自动化运维管理中的CMDB进行了激烈的讨…

    Linux资讯 2016-12-05
  • ​HA专题: Corosync+Pacemaker+drbd实现MySQL高可用

    HA专题: Corosync+Pacemaker+drbd实现MySQL高可用 前言 实验拓扑 实验环境 实验步骤 安装前准备工作 配置DRBD 配置MySQL 配置Corosync+Pacemaker 测试 我遇到的问题 总结 前言 上篇文章我们介绍了drbd的相关原理、编译安装、简单的实现. drbd虽然可以保证数据的可靠性但是我们上次的实现还…

    Linux干货 2016-04-13
  • Linux 发展史

    Linux 发展史 一、Linux 系统概述     首先大家需要明白,Linux 只是内核,没有应用程序,如果想有应用程序就需要GNU 组织来提供应用程序,GNU其实就是一个开源组织,这就要说GNU 和GPL 的概念了,其实GNU可以看作就是软件行业的共产党组织 而GPL 就是共产党宣言 为全人类服务。所以说GNU 和 LIN…

    Linux干货 2016-10-19
  • 实时获取MySQL的TPS、QPS(输出到屏幕)

    这个脚本挺好用的,例如我们在主库执行了一个大事务,结果导致从库的show slave status\G 一直卡在 system lock状态,我们用下面这个脚本就能知道到底是hang住了,还是只是执行缓慢(反应在脚本执行结果里面就是qps\tps是不停变动的)。 当然,从库一直处于system lock 状态,一般是因为我们从库也设置双1导致,只要…

    Linux干货 2017-05-07