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 | 与打印系统相关的信息 |
与邮件系统相关的信息 | |
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及管理工具的初级部署
环境要求:安装有rsyslog、MySQL、及管理工具(这里我们用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 这个是一个管理日志的工具,如果没有课自行到官网下载
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';
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 httpd将httpd启动
8打开浏览器配置
http://10.1.253.4/log/
点上面的here开始配置
第一步检查依赖条件:默认
第二步检查文件权限:默认
第三步基本配置选项:默认
第四步为管路工具添加一个源,也就是管理哪个日志
点finish完成
9配置完成后将config.php文件的权限修改为644
chmod 644 config.php
原创文章,作者:cszdz123,如若转载,请注明出处:http://www.178linux.com/53667