rsyslog: 日志:历史日志 历史事件 时间,事件 日志级别:事件的关键性程度,loglevel
系统日志服务: syslog: syslogd:system klogd:kernel,记录内核日志
rsyslog:
是一种日志服务
多线程:
支持udp,tcp,ssl,tls加密远程日志传输
支持在MYSQL,PGSQL,Oralce中实现日志存储
强大的过滤器,可实现过滤日志信息中任何部分
自定义输出格式
elasticsearch,logstash,kibana=elk
日志收集方:
facility:设施,从功能或程序上对日志进行分类,共14个(不算*).
auth : 认证相关的
authpri : 权限,授权相关
cron : 任务计划相关
daemon: 守护进程相关
kern : 内核相关的
lpr : 打印相关的
mail : 邮件相关的
mark : 标记相关的
news : 新闻相关的
security : 安全相关的,和auth类似
syslog : 日志自己的
user : 用户相关的
uucp : Unix to unix cp相关的
local0到local7 : 用户自己定义的
* : 所有的facility
priority:loglevel,共十个级别
Debug : 程序或信息的调试信息.
Info : 一般信息.
Notice : 不影响正常功能,需要注意的消息.
Warning/warn : 可能会影响系统功能,需要提醒用户注意的重要事件.
Err/error : 错误信息.
Crit(critical) : 比较严重的.
Alert : 必须马上处理的.
Emerg/panic : 会导致系统不可用.
* : 显示所有的系统信息.
None : 与*相反,表示什么都没有.
指定级别:
*:所有级别
none:禁止记录
priority:记录包含此级别及更高级别的日志级别
=priority:记录此级别
文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
/etc/logrotate.d/syslog
/lib64/rsyslog/*.so
其中i开头的是输入,o开头的是输出
facility.priority /var/log/messages
程序环境: 主程序:rsyslogd 配置文件:/etc/rsyslog.conf 服务脚本:/etc/rc.d/init.d/rsyslog 配置文件: 由MODULES,GLOBAL DIRECTIVES,RULES组成 MODULES部分:加载模块 $ModLoad imuxsock :为本地系统日志记录提供支持 $ModLoad imklog :提供内核日志支持(以前由rklogd完成) 以前由rsyslogd和klogd提供的功能现在由两个模块提供 $ModLoad imtcp :提供tcp为别的主机提供日志记录 $InputTCPServerRun 514:监听514端口 $ModLoad imudp:udp方式 $UDPServerRun 514 RULES(规则)部分: facility.priority target 例: .info;mail.none;authpriv.none;cron.none /var/log/messages:除了mail,authpriv,cron之外都记录到messages中 authpriv. /var/log/secure:authpriv的所有信息都记录到secure中 mail.* -/var/log/maillog:-代表异步写入 target: 文件路径:记录于指定的日志文件中,通常应该在/var/log目录下,"-"代表异步写入 用户:将日志通知给指定用户 *:所有用户 日志服务器:@host host:必须监听在tcp或udp协议的514端口上提供服务 管道: |COMMAND 文件记录的日志格式: 日志产生的日期时间 主机 进程(pid): 事件内容 有些日志记录二进制格式:/var/log/wtmp,/var/log/btmp /var/log/wtmp:当前系统上成功登录的日志 last命令查看 /var/log/btmp:当前系统上失败的登录尝试 lastb命令查看 lastlog命令: 查看当前系统上每一个用户最后的登录时间
搭建rsyslog日志服务器:
redhat6作为日志服务器
centos7作为日志发送机
1. 在redhat6上修改配置文件,将下列选项注释去掉
$ModLoad imtcp :提供tcp为别的主机提供日志记录
$InputTCPServerRun 514:监听514端口
$ModLoad imudp:udp方式
$UDPServerRun 514
2. 在centos7上修改配置文件
*.info;mail.none;authpriv.none;cron.none @192.168.137.143
将日志信息存储到mysql中 redhat6作为服务器 centos7作为mysql服务器 1.安装rsyslog-mysql yum install rsyslog-mysql 安装生成下列文件 /lib64/rsyslog/ommysql.so:输出到mysql的模块 /usr/share/doc/rsyslog-mysql-5.8.10 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql:mysql执行脚本文件 2.在centos7上安装mariadb(默认已安装) 创建一个数据库(可以使用/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql) 创建一个用户并授权 grant all on Syslog.* to 'syslog'@'192.168.137.143' identified by 'syspass'; 然后打开/etc/my.cnf 加入:skip_name_resolve = no:关闭名称反解 innodb_file_per_table = no:支持innodb表共享数据空间 重启服务器 3. 将redhat6上的/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql导入centos7的mariadb mysql -usyslog -h192.168.137.139 -psyspass </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 4. 修改redhat6上的rsyslog.conf 加入$ModLoad ommysql 加入*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.137.139,Syslog,syslog,syspass 格式: --> :模块名:mysql主机,表名,用户名,密码 5. 安装 LogAnalyzer tar -xvf loganalyzer-3.6.5.tar.gz cd loganalyzer-3.6.5 mv src/* /var/www/html:只使用到这个目录中的文件. mv contrib/configure.sh /var/www/html mv contrib/secure.sh /var/www/html cd /var/www/html ./configure.sh chmod 666 config.php ./secure.sh 6. 用浏览器进入web界面进行配置