日志级别:事件的关键性程度,Loglevel 日志等级 mysql
syslogd: system application 记录应用日志 sql
klogd: linux kernel 记录内核日志 数据库
C/S 架构:经过TCP 或UDP 协议的服务完成日志记录传送,将分布在不一样主机的日志实现集中管理
一、rsyslog 特性:CentOS6 和7,不能用于较大的环境
二、ELK :elasticsearch, logstash, kibana ,管理日志整套的解决方案
基于apache 软件基金会jakarta 项目组的项目lucene
Logstash 对日志进行收集、分析,并将其存储供之后使用
auth, authpriv, cron, daemon,ftp,kern, lpr, mail,news, security(auth), user, uucp, local0-local7, syslog
debug, info, notice, warn(warning), err(error),crit(critical), alert, emerg(panic)
(3)logger -p rules "显示的东西" 测试命令
例:logger -p local1.info 'this is a test log'
CentOS 6 :service rsyslog {start|stop|restart|status}
CentOS 7 :/usr/lib/systemd/system/rsyslog.service
配置文件:/etc/rsyslog.conf主配置文件,/etc/rsyslog.d/*.conf
RULES 配置格式: facility.priority ; facility.priority… target
例:*.info;mail.none;authpriv.none;cron.none /var/log/messages
facility1,facility2,facility3,... :指定的facility 列表
PRIORITY(只有名字) :指定级别(含)以上的全部级别
④ 日志服务器:@host 或 @@host ,把日志送往至指定的远程服务器记录
例1:自定义ssh服务的日志: local1.* /var/log/sshd.log
需设置sshd的配置文件/etc/ssh/sshd_config
例2:自定义:local2.* along,root,/var/log/sshd.log
测试命令:logger -p local2.info 'this is a test log'
local3.*@192.168.30.111 (@走的是udp协议)
在192.168.30.111 机器上设置,提供UDP远程链接的功能默认被注释了,取消两行注释
local1.* /var/log/remote.log 日志存在111 的/var/log/remote.log下
logger -p local3.info "this is a remote log"
local3.*@@192.168.30.111 (@@走的是tcp协议)
在192.168.30.111 机器上设置,在tcp的注释两行取消
local1.* /var/log/remote.log 日志存在111 的/var/log/remote.log下
logger -p local3.info "this is a remote log"
/var/log/secure:su切换,系统安装日志,文本格式,应周期性分析
/var/log/btmp:当前系统上,用户的失败尝试登陆相关的日志信息,二进制格式,直接查看的乱码
若是想取消错误登陆,不要直接删除btmp文件,>btmp清空就好
/var/log/wtmp:当前系统上,用户正常登陆系统的相关日志信息, 二进制格式
/var/log/lastlog: 每个用户最近一次的登陆信息, 二进制格式,
/var/log/dmesg :系统引导过程中的日志信息,文本格式
/var/log/anaconda : anaconda的安装日志
Systemd 有统一管理全部 Unit 的启动日志。带来的好处就是,能够只用journalctl 一个命令,查看全部日志(内核日志和应用日志)。日志的配置文件/etc/systemd/journald.conf
journalctl --since="2017-10-30 18:10:30"
journalctl --since "20 min ago"
journalctl --since "2017-01-10" --until "2017-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"
journalctl /usr/lib/systemd/systemd
journalctl _UID=33 --since today
journalctl -u nginx.service --since today
例:journalctl -u sshd --since today
journalctl -u nginx.service -f
journalctl -u nginx.service -u php-fpm.service --since today
(3)查看指定优先级(及其以上级别)的日志,共有8级,默认是分页的
日志默认分页输出,--no-pager 改成正常的标准输出,不分页
journalctl -b -u nginx.service -o json
journalctl -b -u nginx.serviceqq -o json-pretty
journalctl --vacuum-time=1years
① logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并建立新的日志文件,称为日志转储或滚动。能够根据日志文件的大小,也能够根据其天数来转储,这个过程通常经过 cron 程序来执行
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
create mode owner group 转储文件,使用指定的文件模式建立新的日志文件
delaycompress 和 和 compress 一块儿使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 盖 覆盖 delaycompress 选项,转储并压缩
errors address 专储时的错误信息发送到指定的Email 地址
mail address 把转储的日志文件发送到指定的E-mail 地址
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行
rotate count 指定日志文件删除以前转储的次数,0 指没有备份,5 指保留5 个备份
Nomissingok 若是日志不存在,继续下一第二天志,不提示错误
原理:让centos 6上的日志记录到centos 7的数据库中
yum -y install mariadb-server 下包
mysql_secure_installation 安全脚本
yum -y install rsyslog-mysql.x86_64
scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql @192.168.30.222:
① mysql -uroot -p12345 < createDB.sql 以root的身份执行这个脚本,生成指定的数据库的东西
mysql -uroot -p12345 能够登陆查看一下,缺乏生成了
② 建立一个在centos6 上能远程链接7 的用户,并授给他对Syslog数据库的全部权限,并设置密码为along
grant all on Syslog.* to loguser@'192.168.30.111' identified by 'along';
四、在centos 6 容许rsyslog-mysql 模块使用
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.30.222,Syslog,loguser,along 把全部日志都放到7 上的数据库
格式: :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
MariaDB [Syslog]> select * from SystemEvents \G;
不过看着不舒服,为了看的舒服,搭建lamp,用php实现图形化界面,利用查看
yum -y install httpd php-fpm php-mysql
systemctl start php-fpm 开启php-fpm服务
DirectoryIndex index.php index.html
vim /etc/httpd/conf.d/fcgi.conf
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
systemctl restart httpd 重启http服务
yum -y install rsyslog-mysql.x86_64
scp /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql @192.168.30.222:
yum -y install mariadb-server 下包
mysql_secure_installation 安全脚本
① mysql -uroot -palong < mysql-createDB.sql 以root的身份执行这个脚本,生成指定的数据库的东西
mysql -uroot -palong 能够登陆查看一下,确实生成了
② 建立一个在B 上能远程链接A 的用户,并授给他对Syslog数据库的查看权限,并设置密码为along
grant select on Syslog.* to loguser@'192.168.30.107' identified by 'along';
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.30.222,Syslog,loguser,along 把全部日志都放到7 上的数据库
格式: :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
tar xvf loganalyzer-4.1.5.tar.gz
yum -y install php-gd 装php的图形包
mv src/* /var/www/html/ 由于php的源代码都在src里,只把这个目录下全部东西拷过去就行