linux日志:
/var/log/messages, secure,
facility:设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志。
facility对日志进行分类,并用专门的工具进行记录
auth |
认证相关日志 |
authpriv |
认证授权相关的日志 |
cron |
帮周期性计划记录日志 |
daemon |
帮首部进程记录日志 |
kern |
帮内核记录日志 |
lpr |
帮打印记录日志 |
帮邮件子系统记录日志 |
|
mark |
防火墙标记记录日志 |
news |
新闻组记录日志 |
security |
安全相关的记录日志,和auth差不多 |
syslog |
syslog自己的日志 |
user |
用户相关的日志 |
uucp |
unix 系统之间 |
local0 through local7: 8 customed facility |
local0 through local7 ,8个可自定义的facility工具 |
通配符:用来指定facility时使用字符
* : 表示所有的facility
f1,f2,f3,...: 列表 用来facility例表中,分隔facility使用
! : 用来取反
priority:日志优先级
debug |
调试 |
info |
次之 |
notice |
需要注意的 |
warn, warning |
警告 |
err, error |
错误 |
crit |
蓝色警告 |
alert |
橙色警告 |
emerg, panic |
红色警告 |
通配符: |
|
* |
所有级别 |
none |
没有任何级别 |
rsyslog的主配置文件:
/etc/rsyslog.conf,其定义格式 :facility.priority Target (日志记录工具,日志级别 )
facility.priority;facility.priority不同级别之间用分号隔开。
faclility,facility.priority 相同级别之间用逗号分隔,代表两个facility都是一个priority级别的
例子:
mail.info /var/log/maillog
# 比指定级别更高的所有级别,包括指定的级别本身;
mail.=info /var/log/maillog
# 明确指定级别;
mail.!info *
# 除了指定级别
*.info | COMMAND
# 所有facility的info级别
mail.* ???
# mail的所有级别
mail,news.info ???
# mail和news都是info级别
Target: 日志记录的去向
文件路径 |
例如/var/log/messages |
用户 |
* 当前系统登录的所有用户,也可以单指 |
日志服务器 |
@SERVER_IP 服务器IP |
管道 |
|COMMAND |
- |
在日志记录去向前加- ,代表异步储存日志记录。 |
日志信息格式:
时间 主机 进程(PID):事件
启动日志服务器的功能:
rsyslog是模块化的,所有模块化功能都需要写在MODULES段中。
装在imudp模块,基于UDP514端口提供服务
# Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
装在imtcp模块,基于TCP514端口提供服务
# Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
日志服务器IP:192.168.1.124
本机IP:192.168.1.123
修改日志记录位置为远程服务器192.168.1.124
记录一下时间,在本机执行yum repolist
查看日志服务器有没有记录日志:
明显日志记录的就是本机的日志信息。
rsyslog支持将日志存储于MySQL服务器中:
要让rsyslog链接到MySQL数据库,它需要自己的驱动。
1)安装配置好mysql数据库服务;
2)安装rsyslog-mysql包;这是链接到数据库的必须。
[root@www ~]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so 日志输出模块
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 日志表格式MySQL脚本可以直接创建库表
添加模块:
#syslog-mysql /lib64/rsyslog/ommysql.so 在#### Modules #####启用模块: $ModLoad ommysql 在####rules####段中定义记录日志信息于数据库中 facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD
修改日志存放位置
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.1.124,Syslog,sysloguser,syslogpass :ommysql(通过momysql这个模块把日志发往):192.168.1.124(数据库地址),Syslog(数据库表),sysloguser(用户),syslogpass(密码)
3)创建rsyslog依赖的数据库:
发送/usr/share/doc/rsyslog-5.8.10/createDB.sql 表到数据库主机
# mysql < /root/createDB.sql
第一次导入失败,是因为我的数据库有密码,所有加上账号密码即可
登陆数据库,即可发现,Syslog库和表创建OK。
创建前边添加的用户,否则那边无法登陆
在192.168.1.123测试登陆MySQL看是否成功。
重启服务:
service rsyslog restart
在192.168.1.123端执行一个安装,查看数据库中是否有日志生成
查看数据库,生成了数据
4)通过webGUI展示日志信息
loganalyzer # yum -y install httpd php php-mysql php-gd # tar xf loganalyzer-3.6.5.tar.gz # mkdir /var/www/html/loganalyzer # cp -R loganalyzer-3.6.5/src/* /var/www/html/loganalyzer/ # cp -R loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/ # cd /var/www/html/loganalyzer/ # chmod +x configure.sh secure.sh # ./configure.sh # ./secure.sh # chmod 666 config.php # chown -R apache.apache ./*
http://SERVER_IP/loganalyzer/
http://192.168.1.124/log