centos6及以后的版本默认使用的日志管理系统。Rsyslog实际上syslog的一个增强版本。
日志记录了用户在系统上的一切操作,通过查看日志可分析某些用户在设备上做了些什么。
日志也记录了服务器中自定义级别的全部信息,分析日志可查看系统性能情况!
Rsyslog是多线程的
Rsyslog可以支持网络,但是默认是将日志记录到本地,支持TCP,UDP等协议网络传输
Rsyslog安装系统够默认就有此包
Rsyslog的配置文件介绍 /etc/rsyslog.conf
-#### MODULES #### 模块段
例如:imuxsock是模块命令,正常来说模块是有.so结尾的这个不需要,会自动识别,而且路径也不需要写,会自动识别在/usr/lib64/rsyslog目录下
$ModLoad imuxsock # 功能是支持本地日志
$ModLoad imjournal # 功能是支持使用journal,centos7中有此功能
#$ModLoad imklog # 支持内核日志
#$ModLoad immark # 支持日志标记
#$ModLoad imudp # 支持使用UDP协议传输
#$UDPServerRun 514 # 传输端口
#$ModLoad imtcp # 支持使用使用TCP协议传输
#$InputTCPServerRun 514
-#### GLOBAL DIRECTIVES #### 定义日志格式的指令
-$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # 日志格式模板
$IncludeConfig /etc/rsyslog.d/*.conf # 加载rsyslog.d目录下所有以.conf后缀结尾的文件
-#### RULES ####
#kern.* /dev/console
*.info;mail.none;authpriv.none;cron.none /var/log/messages # info级别的日志或严重度高于info级别的日志存放文件
authpriv.* /var/log/secure # 认证相关的日志存放文件
mail.* -/var/log/maillog # 邮件相关的日志存放文件,-表示异步写入
cron.* /var/log/cron # 系统计划任务日志存放文件
*.emerg :omusrmsg:* # 所有达到emerg级别,都已wall方式通知所有在线用户
uucp,news.crit /var/log/spooler # 新闻等信息存放文件
local7.* /var/log/boot.log # 服务器启动时的日志存放文件
日志记录规则分由两部分组成
1、日志类别facility[设施],从功能和程序上对日志进行分类,每一类的日志有单独的文件存储
auth 认证类
cron 计划任务
daemon
ftp
lpr
mail 邮件
news 新闻
syslog 系统
user 用户和内核
uucp
local0 to local7 自定义
2、日志信息的记录级别
emerg 崩溃
alert 必须立即修改的信息
crit 可能导致系统不能工作
err 错误
warning 警告
notice 应该注意了
info 一般信息
debug 调试信息
拿这行解释
*.info;mail.none;authpriv.none;cron.none /var/log/messages
所有程序从info级别的日志信息,除了mail,auth,cron的日志都记录到/var/log/messages中
程序设施:
* # 表示所有程序
sshd.info # 也可以指定单程序
记录级别:
* # 所有级别
none # 没有级别,就是不记录
info # 表示info以上的级别都记录
=info # 只记录info级别的日志
日志路径:
文件路径:通常在/var/log目录下,文件路径前加 - 表示异步写入
同步写入:只要发生了记录级别内的信息,立刻写入磁盘用户
异步写入:发生了记录级别内的信息,先写入缓冲区,然后等待一个时间在写入磁盘
用户:将日志时间通知给指定的用户,直接在终端显示。*表示所有用户
例:root,cheng 多个用户逗号隔开 或 *
日志服务器:@host,把日志推送到指定的远程服务器,由远程服务器帮忙存储记录日志
管道:|command,转发给其他命令处理
场景
192.168.40.7当rsyslog日志服务器和Apache和PHP服务器
192.168.40.17当MySQL数据库服务器
安装httpd和PHP,源码或yum,根据要求安装
步骤:
1)在40.7rsyslog服务器上安装支持数据库的程序包
yum install rsyslog-mysql httpd php php-mysql php-gd -y
# 此包生成的文件
rpm -ql rsyslog-mysql
#安装自带一个模块
/usr/lib64/rsyslog/ommysql.so
# 此SQL脚本用于创建rsyslog数据库及表
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
2)40.7因为数据库不再本机,所以需要将此SQL脚本拷贝到数据库服务器
scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.40.17:/data/
3)40.7编辑rsyslog配置文件将提至保存至数据库中
vim /etc/rsyslog.conf
添加
#### MODULES ####
$ModLoad ommysql
#### RULES ####
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.40.17,Syslog,syslog,123123
格式为:模块名:数据库地址,数据库名,连接用户,用户密码
4)40.17安装mariadb-server,
yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
5)导入传送过来的脚本
mysql > /data/mysql-createDB.sql
6)40.17在数据库上创建授权rsyslog能连接至当前服务器的用户
grant all on Syslog.* to syslog@'192.168.40.%' identified by '123123';
配置LogAnalyzer
源码包下载地址:https://loganalyzer.adiscon.com/downloads/
1)上传到虚拟机解压缩,lrzsz包,当时是现在的编译安装环境,所以网页根目录不再/var下
tar xf loganalyzer-4.1.8.tar.gz -C /var/www/html
cd /var/www/html
ls loganalyzer-4.1.8/
ChangeLog contrib COPYING doc INSTALL src
# 此目录中真正用到的网站是src目录。所以单独移动出来
mv loganalyzer-4.1.8/src/ logs
# 进入lgos目录创建文件并授权,contrib目录下存放了两个文件就是创建目录的,可以自己看
touch config.php
chmod 666 config.php
通过浏览器访问并设置DB位置,DB名称,用户,密码等信息,输入时要注意大小写。
设置完成后将刚才创建的文件权限回收
chmod 644 config.php