设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] Linux日志rsyslog

[复制链接]

尚未签到

发表于 2018-5-24 07:22:28 | 显示全部楼层 |阅读模式
Linux日志
一、什么是日志?
  日志总体来说是来记录历史事件的,记录在过去一段事件系统的行为。将过去一段时间所发生的时间按时间序列记录到指定的存储结构中,记录的主要内容有事件的来源、发生的时间、内容、事件的关键程度(日志级别)。例如:在操作系统中安装和卸载过什么软件,这些操作会记录下来。记录日志的主要目的是在发生问题的时候,是解决问题的重合依据之一。
  在Linux中,一般情况下会记录系统进程(syslog)和内核事件(klogd)进程相关的日志。
二、rsyslog
  rsyslog是CentOS6系列提供记录日志的工具,具有如下特点:
    
  支持多线程模式
  支持像TCP,SSL,TLS,RELP等协议
  可以将日志信息记录到像MySQL, PGSQL, Oracle等多种关系型数据中
  强大的过滤器,可实现过滤系统信息中的任意部分
  自定义输出格式
  适用于企业级别日志记录需求
     
三、facility
记录日志的设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志 。简单的来说,就是记录日志的“主人”。常见的有如下:
auth认证相关的
authpriv认证授权相关的
cron周期性计划任务相关的
daemon守护进程相关的
kern内核相关的
lpr打印相关的
mail邮件相关的
mark防火墙标记相关的
news新闻组相关的(较早)
security安全相关的,同auth
syslog记录日志工具自己的日志
user用户相关的
uucpunix to unix copy,unix之间共享文件的协议(较早)
local0-local7用户自定义的
*表示所有
表示取反
四、priority
  称之为级别,来定义日志的紧急程度。常见的有:
debug调试信息,最详细的信息
info基本信息
notice通知信息
warn warnning警告信息
err error错误信息
crit蓝色警戒信息
alert橙色警戒信息
emerg panic红色警戒信息
  这里的级别从上到下表示级别越高,危险程度也越高,像emer级别是系统可能已经挂掉了。这里也可使用 *来表示所有级别,none: 没有任何级别 。
五、Target
  
  target指的是日志存储的位置,常见的有:
  本地文件路径:例如/var/log/messages
  用户: *
  日志服务器:@SERVER_IP(使用UDP协议) @@SERVER_IP(使用TCP协议)
  管道:|COMMAND
  关系型数据库: 例如: ommysql:localhost:Syslog:log:log(下面详细介绍)
六、rsyslog的配置
  

  rsyslog的主配置文件:/etc/rsyslog.conf,在这个配置文件中主要有三方面的定义,如下:
1、MODULES模块,在这里主要定义加载的模块等信息
#### MODULES ####
# 例如:作为日志服务器,使用udp/514作为监听端口
$ModLoad imudp
$UDPServerRun 514
2、GLOBAL DIRECTIVES模块,全局配置模块,在这里定义一些全局生效的属性
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
3、定义日志规则
#### RULES ####
# 其定义格式 :
# facility.priority        Target
mail.info         /var/log/maillog                                 # 比指定级别更高的所有级别,包括指定的级别本身;
mail.=info       -/var/log/maillog                                 # 明确指定级别,这里的 - 表示异步写入磁盘,不加默认同步写入磁盘
mail.!info       *                                                 # 除了指定级别,通知所有的用户
*.info          @172.16.10.88                                      # 所有facility的info级别,将日志以udp通信方式记录到172.16.10.88的日志服务器上
mail.*:         :ommysql:localhost:Syslog:ftp:ftppass              # mail的所有级别,记录到mysql数据库中,登陆账号是:ftp@localhost -u ftp -p ftppass。数据库名称是Syslog
mail,news.info:                                                    # mail,news的info和更高的级别  
  日志信息格式:
# 时间     主机     进程(PID):事件
Aug  7 02:32:14 server abrtd: Init complete, entering main loop
Aug  7 02:32:26 server kernel: readahead-collector: starting delayed service auditd七、日志配置示例
1、日志服务器的功能
  实验原理拓扑图:
   DSC0000.jpg
##########################实验配置##########################################

###########################在172.16.10.9主机上###############################
vim /etc/rsyslog.conf  修改如下内容:
$ModLoad imtcp
$InputTCPServerRun 514
*.info;mail.none;authpriv.none;cron.none             /var/log/messages
# 重启服务
service rsyslog restart
##########################################################################

###########################在172.16.10.1上################################
vim /etc/rsyslog.conf
# 这里将需要的日志发送到日志服务器上
*.info;mail.none;authpriv.none;cron.none            @@172.16.10.9
# 重启服务
service rsyslog restart
######################################################################  测试结果:
DSC0001.jpg

DSC0002.jpg

2、支持mysql记录日志,使用loganalzer监控日志
  配置原理图如下:
DSC0003.jpg

# 配置如下:
###########################################在172.16.10.9上##############################################
1、安装rsyslog和mysql交互的软件
yum install rsyslog-mysql -y
2、搭建好lamp平台(这里不再详细介绍)
yum install httpd mysql php mysql-server php-gd -y
3、导入rsyslog所用到的数据库和表
# 具体通过 rpm -ql rsyslog-mysql 查看
mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
### createDB.sql内容如下:
CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
(
        ID int unsigned not null auto_increment primary key,
        CustomerID bigint,
        ReceivedAt datetime NULL,
        DeviceReportedTime datetime NULL,
        Facility smallint NULL,
        Priority smallint NULL,
        FromHost varchar(60) NULL,
        Message text,
        NTSeverity int NULL,
        Importance int NULL,
        EventSource varchar(60),
        EventUser varchar(60) NULL,
        EventCategory int NULL,
        EventID int NULL,
        EventBinaryData text NULL,
        MaxAvailable int NULL,
        CurrUsage int NULL,
        MinUsage int NULL,
        MaxUsage int NULL,
        InfoUnitID int NULL ,
        SysLogTag varchar(60),
        EventLogType varchar(60),
        GenericFileName VarChar(60),
        SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
        ID int unsigned not null auto_increment primary key,
        SystemEventID int NULL ,
        ParamName varchar(255) NULL ,
        ParamValue text NULL
);
授权登陆用户:
mysql> grant all on Syslog.* to log@'localhost' identified by 'logpass';
mysql> flush privileges;
4、编辑配置文件
# vim /etc/rsyslog.conf
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none                :ommysql:localhost,Syslog,log,logpass
5、重启服务
service rsyslog restart
#################################################################################################################################  测试结果:记录的结果如下,这样看起来比较费劲。
DSC0004.jpg

通过webGUI展示日志信息
# 具体安装步骤,可参考 loganalyzer-3.6.5/INSTASLL
tar xf loganalyzer-3.6.5.tar.gz
cp loganalyzer-3.6.5/src/ /var/www/html/ -R
cd /var/www/html/
mv src loganalyzer
chown -R apache.apache loganalyzer
# 重启服务
/etc/init.d/httpd restart  通过 http://172.16.10.9/loganalyzer 具体安装过程不再一一展示,重要的是每次安装这类软件的方法。几乎每个软件都会自带一个像INSTALL,README的文件,安装前尽量读一下。
  在安装过程中,最重要的配置如下:要与对应的数据库名,表名,登录名一一对应。
DSC0005.jpg

  loganalyzer:功能展示,可以形象的展示日志信息。
   DSC0006.jpg
  其他的功能在这里不再一一介绍,只能自己摸索。
  OVER.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-480441-1-1.html 上篇帖子: Linux 目录结构 linux文件属性详解 下篇帖子: 自制小型Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表