日志服务;

1、日志服务含义

日志:某个程序记录所有发生的事情到一个文件里,这个文件里的信息是日志
价值:
1、方便查询以前的事情,可以审计
2、记录出错的信息方便故障排查
3、大数据分析

2、相关命令

rsyslog:

rsyslog是linux系统中用来实现日志功能的服务。默认已经安装,并且自动启用
承接相关服务的日志功能,存放到/var/log下
主要用来采集日志,不产生日志:

支持输出日志到各种数据库,如 MySQL,PostgreSQL,MongoDB ElasticSearch,等等;

通过 RELP + TCP 实现数据的可靠传输(基于此结合丰富的过滤条件可以建立一种 可靠的数据传输通道供其他应用来使用);
精细的输出格式控制以及对消息的强大 过滤能力;
高精度时间戳;队列操作(内存,磁盘以及混合模式等); 支持数据的加密和压缩传输等。

日志级别(越大越高级就越严重):
0 debug 包含详细的开发情报的信息,通常只在调试一个程序时使用。
1 info 通用性信息,一般用来提供有用信息,
2 notice 正常信息,但是较为重要,可能需要处理
3 warning 警告信息
4 error/err 错误信息,某个功能或者模块不能正常工作的信息
5 crit 严重级别,系统或整个软件不能正常工作的信息,例如硬盘错误
6 alert 需要立刻修改的信息,如系统数据库被破坏,ISP连接丢失。
7 emerg 紧急情况,内核奔溃等重要信息
none 什么也不记录

添加RULE
[root@daily_use ssh]# vim /etc/rsyslog.conf 
local1.*                /var/log/sc.log
修改ssh配置文件
[root@daily_use ssh]# vim /etc/ssh/sshd_config
SyslogFacility local1
刷新服务
[root@daily_use ssh]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@daily_use ssh]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
[root@daily_use ssh]# cat /var/log/sc.log
May 30 21:34:27 daily_use sshd[2755]: Received signal 15; terminating.
May 30 21:34:27 daily_use sshd[2808]: Server listening on 0.0.0.0 port 22.
May 30 21:34:27 daily_use sshd[2808]: Server listening on :: port 22.

logrotate

logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱
日志轮转:
作用–》防止一个日志文件过大,需要对文件进行切割
策略–》根据日期、根据文件大小
文件过大坏处–》不方便网络传输,异地备份、读取不方便需要消耗大量磁盘io和内存

工具logrotate:帮助我们进行日志轮转,是一个程序不是一个服务
主配置文件:/etc/logrotate.conf
次要配置文件:/etc/logrotate.d

[root@daily_use log]# date
2023年 06月 04日 星期日 14:00:45 CST
[root@daily_use log]# cd /etc/logrotate.d
[root@daily_use logrotate.d]# ls
bootlog  chrony  cronlog  firewalld  syslog  wpa_supplicant  yum
[root@daily_use logrotate.d]# vim cronlog 
[root@daily_use logrotate.d]# cat cronlog 
/var/log/cron
{
    missingok
    dateext
    weekly
    copytruncate
    rotate 7
    compress
    minsize 10M
    notifempty
}
强制轮转
[root@daily_use log]# logrotate -f /etc/logrotate.d/cronlog 
[root@daily_use log]# ls
anaconda           cron                maillog            secure-20230530       vmware-network.log
audit              cron-20230506       maillog-20230506   spooler               vmware-vgauthsvc.log.0
boot.log           cron-20230530       maillog-20230530   spooler-20230506      vmware-vmsvc-root.log
boot.log-20230502  cron-20230603.gz    messages           spooler-20230530      vmware-vmtoolsd-root.log
boot.log-20230506  cron-20230604.gz    messages-20230506  tallylog              wtmp
boot.log-20230530  dmesg               messages-20230530  tuned                 yum.log
boot.log-20230603  dmesg.old           rhsm               vmware-network.1.log
btmp               firewalld           sc.log             vmware-network.2.log
btmp-20230603      grubby_prune_debug  secure             vmware-network.3.log
chrony             lastlog             secure-20230506    vmware-network.4.log

可以查看对那些进行了日志轮转:

[root@daily_use logs]# cat /var/lib/logrotate/logrotate.status 
logrotate state -- version 2
"/var/log/yum.log" 2023-4-29-18:0:0
"/usr/local/nginx99/logs/access.log" 2023-6-4-15:28:42
"/var/log/firewalld" 2023-4-29-18:0:0
"/var/log/boot.log" 2023-6-3-10:10:1
"/var/log/chrony/*.log" 2023-4-29-18:0:0
"/var/log/wtmp" 2023-4-29-18:0:0
"/var/log/spooler" 2023-6-4-14:23:1
"/var/log/btmp" 2023-6-3-10:10:1
"/usr/local/nginx99/logs/error.log" 2023-6-4-15:20:37
"/var/log/maillog" 2023-6-4-14:23:1
"/var/log/wpa_supplicant.log" 2023-4-29-18:0:0
"/var/log/secure" 2023-6-4-14:23:1
"/usr/local/nginx99/logs/*.log" 2023-6-4-15:0:0
"/var/log/messages" 2023-6-4-14:23:1
"/var/log/cron" 2023-6-4-14:0:36

logger

-d, --udp
使用数据报(UDP)而不是使用默认的流连接(TCP)
-i, --id
逐行记录每一次logger的进程ID
-f, --file file_name
记录特定的文件
-h, --help
显示帮助文本并退出
-n, --server
写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
-P, --port port_num
使用指定的UDP端口。默认的端口号是514
-p, --priority priority_level
指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。比如:" -p local3.info " local3 这个设备的消息级别为 info。默认级别是 “user.notice”
-s, --stderr
输出标准错误到系统日志。
-t, --tag tag
指定标记记录
-u, --socket socket
写入指定的socket,而不是到内置系统日志例程。

[root@daily_use log]# logger -p local1.info -t mytest "this is a test@@@@@"
[root@daily_use log]# logger -p local1.info -t mytest "this is a test@@@@@"
[root@daily_use log]# logger -p local1.info -t mytest -i "this is a test@@@@@"
[root@daily_use shell]# tail -f /var/log/messages
Jun  4 14:07:46 daily_use mytest: this is a test@@@@@

Jun  4 14:08:17 daily_use mytest: this is a test@@@@@
Jun  4 14:08:38 daily_use mytest[4358]: this is a test@@@@@

3、对nginx日志进行轮转

1、进入/etc/logrotate.d配置nginx日志的专用文件

[root@daily_use log]# cd /etc/logrotate.d
[root@daily_use logrotate.d]# ls
bootlog  chrony  cronlog  firewalld  syslog  wpa_supplicant  yum
[root@daily_use logrotate.d]# vim nginx
[root@daily_use logrotate.d]# cat nginx
/usr/local/nginx99/logs/*.log {
	daily
	missingok
	rotate 31
	dateext
	compress
	notifempty
	minsize 100M
	sharedscripts
	postrotate
		if [ -f /usr/local/nginx99/logs/nginx.pid];then
			kill -USR1 `cat /usr/local/nginx99/logs/nginx.pid`
		fi
	endscript
}

2、对nginx日志文件进行强制轮转

[root@daily_use logs]# pwd
/usr/local/nginx99/logs
[root@daily_use logs]# ls
access.log  error.log  nginx.pid
[root@daily_use logs]# logrotate -f /etc/logrotate.d/nginx 
[root@daily_use logs]# ls
access.log  access.log-20230604.gz  error.log  error.log-20230604.gz  nginx.pid

4、ELK

ELK:三个软件的简称
Elasticsearch:存储日志软件(kafka有同等作用)
Logstash:采集日志软件(filebeat有同等作用)
Kibana:出图日志软件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值