系统日志服务:
1、日志:日志内容、日志格式、日志级别
2、日志服务:
centos5:syslog,syslog日志服务包括以下两个主要进程
syslogd:负责用户空间进程的日志记录
klogd:负责内核相关的日志记录
centos6/7:rsyslog,主进程合而为一:rsyslogd,是
syslog的升级版,包括以下特性:
@支持多线程
@支持TCP、UDP、SSL、TLS、RELP;支持为其他主机提供
日志记录服务
@支持MySQL、PGSQL、Oracle等关系型数据库的日志存储,
要安装相关类型的数据库驱动;
@强大的过滤器功能,能过滤日志中的任何部分;
@自定义输出格式
3、程序配置:
包:rsyslog
服务进程名:rsyslog
模块:主要包括im输入模块和om输出模块
配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
配置文件格式
配置文件分为三段:MODULES,GLOBEL DIRECTIVES,RULES
MODULES:装载要使用的模块
$ModLoad imuxsock;装载本地日志记录模块
$ModLoad imjournal;systemd日志读取模块;
$ModLoad imklog;内核日志读取模块
GLOBEL DIDRECTIVES:全局配置指令
$IncludeConfig /etc/rsyslog.d/*.conf;包含配置文件目录
RULES:定义日志记录规则,facility.priority filepath
facility:为rsyslog内置的日志记录装置,装置对各类日志进行
分类记录,其他调用rsyslog日志记录服务的程序通过选择
对应的装置类型来进行恰当的日志记录;
priority:日志记录级别,一般由:debug、info、notice、warn
(warning)、err(error)、crit(critical)、alert、emergency
(panic)
*:表示记录所有级别的日志;
priority:记录此级别及以上级别的日志;
=priority:记录此级别的日志
none:禁止记录
target:日志发送对象
file:存储到文件中
user:发送给用户,*表示所有用户
@host:发送给日志接收服务器
|command:通过管道发送给命令处理;
例:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
#记录所有装置除开mail、authpriv、cron的info及以上级别的日志
到messages文件
*.emerg :omusrmsg:*
#所有装置紧急级别日志发送到当前所有登录的用户
mail.* -/var/log/maillog
#mail装置的所有级别日志发送到maillog文件,‘-’表示异步写入
Tip:由于日志的功用是记录错误发生时产生的事件以帮助维护
人员分析问题所在,所以日志一般默认同步写入,以免错误
发生时,日志记录不及时;
日志记录格式:
日期-时间-主机-进程-事件
日期:日志产生的日期
时间:日志产生的时间
主机:产生日志的主机(本地或者远程主机)
进程:产生日志的进程
事件:日志记录事件的详细内容
4、使用示例:
为sshd服务使用自定义日志装置
@编辑/etc/ssh/sshd_config文件修改‘SyslogFacility AUTHPRIV’为
SyslogFacility local1
@编辑/etc/rsyslog.conf文件添加:
local1.info /var/log/sshd.log
@重启rsyslog和sshd服务:
#systemctl restart rsyslog
#systemctl restart sshd
@尝试ssh登录到本机,并查看/var/log/sshd.log文件
为其他主机提供日志记录服务
@编辑/etc/rsyslog.conf开启以下选项:
$ModLoad imudp ;加载udp日志接收模块
$UDPServerRun 514;监听端口UDP/514
$ModLoad imtcp ;加载tcp日志接收模块
$InputTCPServerRun 514;监听端口TCP/514
@重启rsyslog服务
#systemctl restart rsyslog
@配置客户端A的rsyslog配置文件/etc/rsyslog.conf,修改
*.info;mail.none;authpriv.none;cron.none /var/log/messages
为*.info;mail.none;authpriv.none;cron.none @192.168.181.10
192.168.181.10为服务器端IP
@重启客户端Arsyslog服务
#systemctl restart rsyslog
@测试日志记录结果,在客户端A上yum安装cobbler
#yum install -y cobbler
@查看服务器端/var/log/messages文件,已经记录客户端yum
安装操作
5、使用mysql存放日志及使用loganalyzer日志分析:
@安装软件:
#yum install httpd php mariadb mariadb-server php-mysql
rsyslog-mysql ;其他依赖包依据提示安装
# wget http://download.adiscon.com/loganalyzer/loganalyzer
-4.1.10.tar.gz ;下载loganalyzer软件包
@启动服务:
启动httpd服务,及确保php模块已经加载:
#systemctl start httpd
#httpd -M|grep php
启动mariadb服务,并做相关初始化操作
#systemctl start maraidb
@配置数据库服务:
连接maraidb数据库,授权rsyslog服务使用的数据库账号
‘rsyslog’@‘192.168.181.10’,设置密码‘rsyslogpass’
#mysql -uroot -p -e “grant all on Syslog.* to 'rsyslog'@'192.168.181.10'
identified by 'rsyslogpass'”
Tip:数据库名称是在rsyslog-mysql包中的脚本文件/usr/share/doc
/rsyslog-8.24.0/mysql-createDB.sql中定义的,该脚本会在后面
执行;
执行上面的脚本,进行rsyslog服务要使用的格式的表的创建
#mysql -ursyslog -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
@配置rsyslog服务:
在/etc/rsyslog.conf文件中添加或修改:
$ModLoad ommysql ;装载mysql日志输出模块
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.181.10,Sy
log,rsyslog,rsyslogpass ;定义使用ommysql模块,主机,数据库名称
用户名,密码
重启rsyslog服务
#systemctl restart rsyslog
@配置loganalyzer
解压压缩包,并安装INSTALL文件说明复制src目录中文件到httpd站点
目录下,复制contrib目录下configure.sh到相同目录下并执行
#tar xf loganalyzer-4.1.9.tar.gz
#cd loganalyzer-4.1.9.tar.gz
# mkdir /var/www/html/loganalyzer
# cp -a src/* /var/www/html/loganalyzer
# cp contrib/configure.sh /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# chmod u+x configure.sh
# configure.sh
浏览器登录192.168.181.10:/loganalyzer/install.php进行网页界面配置
配置完成进入日志统计分析界面
@客户端A上配置使用服务器端的rsyslog服务并测试
修改/etc/rsyslog.conf:
*.info;mail.none;authpriv.none;cron.none @192.168.181.10
重启rsyslog服务
#systemctl restart rsyslog
使用yum安装软件
# yum install vsftpd -y
服务器端使用yum安装软件
# yum install samba -y
@刷新浏览器192.168.181.10/loganalyzer界面,显示来自服务器端
和客户端的yum安装日志记录
6、centos 7上各日志文件说明
/var/log/messages:所有装置(除开mail,cron,authpriv)info级别
以上信息,一般由rsyslog记录的日志都可以在此处找到
/var/log/secure::与安全相关的日志,如用户登录、认证、创建等
/var/log/boot::系统启动的相关日志
/var/log/cron:周期任务的相关日志
/var/log/mailog:邮件的相关日志
/var/log/wtmp:成功登录的用户日志,使用last命令查看
/var/log/btmp:未成功登录的用户日志,使用lastb命令查看
lastlog:所有用户最近的登录情况
/var/log/dmesg:设备信息,可直接查看,也可以用dmesg命令
/var/log/audit/audit.log:审计日志,和用户账号相关
journalct:显示systemd所启动的所有unit的日志,配置文件为
/etc/systemd/journald.conf
-k:显示本次启动的内核日志
-b:显示本次启动的系统日志
-u unit:显示某unit相关的日志,如sshd,httpd
-S time:从某个时间点开始的日志
-u time:到某个时间点结束的日志
例:
journalctl -S ‘20 min ago’:20分钟前的日志
journalctl -U ‘2020-05-21’:到这个时间点的日志
journalctl -S ‘10 hour ago’ -U ‘20 min ago’
7、日志滚动
rsyslog借助logrotate工具来进行日志滚动切割,其日志滚动配置文件
是/etc/logrotate.d/syslog
logrotato的配置文件是/etc/logrotate.conf
日志滚动配置文件格式:
/var/log/cobbler/cobbler.log {
missingok ;忽略丢失错误
notifempty ;文件为空不滚动
rotate 4 ;保留4个备份
weekly ;每周进行一次滚动
postrotate ;滚动后执行动作
/sbin/service cobblerd condrestart > /dev/null 2>&1
endscript
}
elk日志收集分析平台:
完整的集中式日志系统包括以下几个要点:
收集——采集多种来源的日志数据;
传输——稳定的把日志数据传输到中央系统;
存储——日志的存储方式;
分析——支持便捷的UI分析;
警告——提供错误报告、监控机制;
elk:elasticsearch+logstash+kibana
elasticsearch:一个分布式日志搜索和分析引擎,可用于全文搜索、
结构化搜索以及分析;
logstash:具有实时渠道能力的数据收集引擎,主要由三部分构成:
shipper:发送日志数据;
broker:收集数据,默认内置redis
indexer:数据写入
kibana:为elasticsearch提供分析和可视化的web平台
命令:
journal:(https://www.cnblogs.com/sparkdev/p/8795141.html)
journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init
系统提供的收集系统日志的服务
systemctl:(https://linux.cn/article-5926-1.html)
优质文章:
1、IBM社区集中式日志系统详解ELK
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/index.html
2、rsyslog服务的详细说明
https://blog.csdn.net/qq_34889607/article/details/78649115