1 日志介绍
Linux系统的日志记录
rsyslog程序
rsyslog的一些特性:
多线程
可以基于UDP,TCP,SSL,TLS,RELP 实现日志记录
MySQL, PGSQL,Oracle实现日志存储
自定义输出
ELK: elasticsearch, logstash,kibana
非关系型分布式数据库
基于apache软件基金会jakarta项目组的项目Lucene(搜索引擎)
Elasticsearch是个开源的分布式搜索引擎
Logstash对日志进行搜集,分析,并将其存储以供分析使用
Kibana可以提供的日志分析很好的web界面
rsyslog的介绍
facility: 设施,从功能或程序上对对日志进行分类 auth,authpriv,cron,daemon,ftp,kernel,lpr,mail,news,security(auth),user,uucp,local0-local7,syslog
priority 优先级,从低到高
debug,info,notice,warn,err,crit,alert,emerg
系统记录日志的默认文件:
/var/log/secure: 系统安装日志,文本格式
/var/log/btmp: 当前系统上,用户的失败尝试登录相关的日志分析,二进制格式,lastb命令进行查看
/var/log/lastlog: 每一个用户最近一次登录信息,二进制格式,lastlog命令可以查看
/var/log/dmesg: 系统引导过程中的日志信息,文本格式,可通过文本查看工具或dmesg命令查看
/var/log/messages: 系统中大部分的信息
/var/log/anaconda: anaconda的日志(CentOS7 存在)
2 journalctl
日志管理工具journalctl (CentOS7)
systemd 统一管理所有Unit的启动日志.带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用服务日志).日志的配置文件/etc/systemd/journald.conf
journalctl的用法:
journalctl -k # 查看内核日志,默认为应用的日志
journalctl -b -0 | journalctl -b # #查看系统本次启动的日志,通过#可以查看上几次的日志
journalctl --since "time1" --until "time2" #通过指定时间可以查看指定范围的日志
journalctl -n # # 可以通过#设定查看尾部指定行的日志
journalctl -f # 实时滚动日志显示最新日志
journalctl -p priority -b # 显示指定级别的日志
journalctl --disk-usage # 显示日志占据的磁盘空间
journalctl --vacuum-size=# #指定日志文件占据的最大空间
journalctl --vacuum-time=# #指定日志文件可以保存多长时间
配置使用基于mysql存储日志信息:
(1) 准备好MySQL服务器,创建用户,授权对Syslog数据库的全部访问权限;
(2) 安装rsyslog-mysql程序包;
(3) 创建rsyslog-mysql依赖的数据库;
# mysql -uUSERNAME -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4) 配置rsyslog使用ommysql模块
#### MODULES ####
$ModLoad ommysql
#### RULES ####
facility.priority :ommysql:DBHOST,DB,DBUSER,USERPASS
重启rsyslog服务
(5) 安装loganalyzer
(a) 配置webserver, 支持php
# yum install httpd php php-mysql php-gd
# service httpd start
(b) loganalyzer
# cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
# cp loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# chmod +x *.sh
# ./configure.sh