标签:rsyslog
日志:
日志是历史时间
按时间序列将发生的事件予以记录的文件
日志记录:事件发生的时间,事件内容
日志级别:事件的关键性程度,log level
Linux:哪些进程需要记录日志?
syslog: 日志系统
syslogd: 系统进程的相关日志
klogd: 内核事件相关的日志
我们这里使用rsyslog来记录日志。
rsyslog特点: 支持多线程 支持:TCP,SSL,TLS,RELP 支持:MySQL, PGSQL, Oracle等多种关系型数据中 有强大的过滤器,可实现过滤系统信息中的任意部分 支持自定义输出格式 适用于企业级别日志记录需求 模块化程序 rsyslog主配置文件:/etc/rsyslog.conf rsyslog的选项:facility(设施),priority(级别),Target(路径) facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志 auth:跟认证相关的 authpriv:跟认证授权相关的 cron:跟周期性任务相关的 daemon:帮守护进程相关的 kern:帮内核记录日志的 lpr:帮打印组记录日志 mail:帮邮件服务记录日志 mark:防火墙标记记录日志的 news: 新闻组 security:跟安全相关的 syslog:syslong自己的日志 user:跟用户相关的 uucp:unix日志 local0 through local7: 8 customed facility(8个自定义的facility) 指定设施时可以使用通配符:指定日志选项 * :所有 ,:列表,f1,f2,f3,f4... ! : 取反 ; :记录多个日志信息 - :启用异步功能 priority: 级别,如果不用=号会记录比自己更高的级别 debug info notice warn, warning err, error crit alert emerg,panic 通配符: * :所有级别 none :没有任何级别,不记录日志信息 ; :记录多个日志信息 - :启用异步功能 Target: 文件路径:例如/var/log/messages 用户:*,所有用户 日志服务器:@SERVER_IP 管道:|COMMAND rsyslog的格式: facility.priority Target 例如1:mail.info /var/log/maillog 比指定级别更高的所有级别,包括指定的级别本身 例如2:mail.=info /var/log/maillog :只记录info级别的日志 明确指定级别 例如3:mail.!info /var/log/maillog 除了指定级别 例如4:*.info /var/log/log 所有facility的info级别 例如5: mail.* /var/log/maillog mail的所有级别 例如6:mail,news.info /var/log/maillog mail与news的info级别 例如7:mail.notice, new.info /var/log/log mial的notice级别和new的info级别 例如8:mail.info * mail的日志发送给当前系统上已登录的所有用户info级别及以上的日志 例如9:mail.=info @192.168.1.1 将mail的info日志发送给192.168.1.1这个日志服务器 例如10:mail.!info | COMMAND 将mail除info之外的其他级别日志发送给一个命令,如gerp 例如11:*.info;mail.none 记录所有设施的info及其他更高级别日志,但是mail不记录 例如12:mail.* -/var/log/maillog 记录mail的所有级别日志,但是日志是异步同步的 查看日志信息: tail /etc/log/messages 日志信息格式: 时间 主机 进程(PID):时间
启用接受其他服务器发送来的日志文件功能:启用日志服务器功能
vim /etc/rsyslog.conf 修改配置之后重启才会生效 MODULES: 模块 #没跟空格的都是可启用功能 ModLoad imudp :装载一个udp模块 UDPServerRun 514 监听在UDP的514端口接收其他服务器发来的日志信息 -------------------------------------------------- ModLoad imtcp :装载一个tcp模块 InputTCPserverRun : 监听在TCP的514端口接收其他服务器发来的日志信息 -------------------------------------------------- GLOBAL DIRECTIVES: 全局指令 -------------------------------------------------- RULES: 规则
rsyslog支持将日志存储于MySQL服务器中:
vim /etc/rsyslong.conf yum install rsyslog-mysql : 安装rsyslog-mysql模块 rpm -ql rsyslog-mysql /lib/rsyslog/ommysql.so : om代表输出模块im代表输入模块 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql :日志输出模版 begin forwarding rule MODULES #Log event to MySQL $ModLoad ommysql : 装载mysql模块 RULES mail.* :ommysql:127.0.0.1,Syslog,sysloguser,syslogpass facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWD 将日志模版重定向输入到mysql数据库 mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql mysql : 进入mysql数据库 SHOW DATABASES; : 查看是否已经将模版导入 use Syslog; : 将Syslog设为默认数据库 SHOW TABLES; : 查看默认数据库的表 GRANT ALL ON Syslog.* TO sysloguser@127.0.0.1 IDENTIFIED BY ‘syslogpass‘; 设置sys的用户名与密码并切拥有syslog的所有权限 FLUSH PRIVILEGES; : 刷新权限 service rsyslog restart :重启服务 做一个服务访问让其生成日志 SELECT * FROM SystemEvents; :查看日志信息
标签:rsyslog
原文地址:http://kmk0226.blog.51cto.com/5975994/1693931