系统日志管理

本文介绍了Linux系统日志管理,包括rsyslog服务的配置,如修改日志级别,指定日志存储位置,以及如何将日志记录到MySQL数据库。此外,还涉及到日志文件的常见类型,如secure、messages等,以及日志管理工具journalctl的使用。最后,详细阐述了rsyslog与MySQL的集成步骤,包括在MySQL服务器上创建数据库和授权。
摘要由CSDN通过智能技术生成

 日志多了会很烦,少了你观察不到会更烦,出了事不知道哪里会抑郁死

目录

rsyslog 系统日志服务

ubuntu改日志 级别

改ssh的日志归在那个类里应用级别是什么(通用为什么区别)

指定服务器存日志文件

常见日志文件

日志管理工具 journalct 

 利用rsyslog日志服务,将收集的日志记录于MySQL中

准备 MySQL

设置nginx的日志转储 


 

rsyslog 系统日志服务

rsyslog 特性

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式
  • 适用于企业级中继链

 rsyslog 相关文件

  • 程序包:rsyslog
  • 主程序:/usr/sbin/rsyslogd
  • CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
  • CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
  • 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
  • 库文件: /lib64/rsyslog/*.so

1.2.3 rsyslog配置文件

  • /etc/rsyslog.conf 配置文件格式:由三部分组成
  • MODULES:相关模块配置
  • GLOBAL DIRECTIVES:全局配置
  • RULES:日志记录相关的规则配置

在这里插入图片描述

priority格式: 

  • *: 所有级别
  • none:没有级别,即不记录
  • PRIORITY:指定级别(含)以上的所有级别
  • =PRIORITY:仅记录指定级别的日志信息

  vim/etc/rsyslog.cong     - 异步存放,先放缓冲区,在存文件 可以减少io(中国式过马路)

# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages    立即写磁盘

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog      -异步存放,先放缓冲区,在存文件

ubuntu改日志 级别

[root@ubuntu2004 rsyslog.d]#vim /etc/rsyslog.d/50-default.conf   

systemctl restart  rsyslog.service  重启

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog                 再次改,*。info级才提醒
#cron.*             /var/log/cron.log
#daemon.*           -/var/log/daemon.log
kern.*              -/var/log/kern.log
#lpr.*              -/var/log/lpr.log
mail.*              -/var/log/mail.log
#user.*             -/var/log/user.log

改ssh的日志归在那个类里应用级别是什么(通用为什么区别)

1  vim /etc/ssh/sshd_config

# Logging
#SyslogFacility AUTH
#LogLevel INFO
SyslogFacility LOCAL6         在这里加上一行 ,等级可以自行制定

# Authentication:

 2 vim /etc/rsyslog.d/50-default.conf   在这里加路径

#daemon,mail.*;\
#   news.=crit;news.=err;news.=notice;\
#   *.=debug;*.=info;\
#   *.=notice;*.=warn   /dev/tty8

local6.*           /var/log/sshd.log    加上指定路径

3 [root@ubuntu2004 ~]#systemctl restart sshd rsyslog.service  因为改其文件所以需要重启文件

指定服务器存日志文件

1 开启注释掉的协议   vim /etc/rsyslog.conf

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

[root@ubuntu2004 ~]#systemctl restart rsyslog.service    重启加载服务

[root@ubuntu2004 ~]#ss -unl                                           查看UDP协议要写U

在客户端指定将日志发送到远程的TCP、UDP的日志服务器   双开也行 

[root@centos7 ~]#vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @@10.0.0.18:514 #TCP
*.info;mail.none;authpriv.none;cron.none @10.0.0.18:514 #UDP

[root@rocky8 ~]#systemctl restart rsyslog.service                  重启

[root@rocky8 ~]#logger "This is a test lig"                          测试命令权限等级大可能看不见注意

lastb                                                                                     查看ssh失败登录的记录

last -x                                                                                    查看关机记录

cat /var/log/boot.log                                                              操作系统启动信息

dmesg                                                                                   操作系统启动插入的硬件信息

常见日志文件

  • /var/log/secure,/var/log/auth.log:系统安全日志,文本格式,应周期性分析
  • /var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
  • /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
  • /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
  • /var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录,也可以通过专用命令
  • dmesg查看,可持续记录硬件变化的情况
  • /var/log/boot.log 系统服务启动的相关信息,文本格式
  • /var/log/messages :系统中大部分的信息
  • /var/log/anaconda : anaconda的日志

#显示系统关机项和运行级别更改
last -x, --system 

日志管理工具 journalct 

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用
journalctl一个命令,查看所有日志(内核日志和应用日志)。

#查看上一次启动的日志(需更改设置)
        journalctl -b -1
#查看指定时间的日志
        journalctl --since="2017-10-30 18:10:30"
        journalctl --since "20 min ago"
        journalctl --since yesterday
        journalctl --since "2017-01-10" --until "2017-01-11 03:00"
        journalctl --since 09:00 --until "1 hour ago

#查看某个 Unit 的日志
        journalctl -u nginx.service

以 JSON 格式(单行)输出
        journalctl -b -u nginx.service -o json

 利用rsyslog日志服务,将收集的日志记录于MySQL中

[root@ubuntu2004 ~]#apt -y install rsyslog-mysql

[root@ubuntu2004 ~]#ls /usr/lib/x86_64-linux-gnu/rsyslog/      im为进,om为出

[root@ubuntu2004 ~]#vim /etc/rsyslog.d/mysql.conf      看看是否自己配好,里面有下面就不用

server="10.0.0.18"                                                           相关数据需要自己改下  重启  

vim /etc/rsyslog.conf 
        ####MODULES####
        #在 MODULES 语言下面,如果是 CentOS 8 加下面行
        module(load="ommysql")
        #在 MODULES 语言下面,如果是 CentOS 7,6 加下面行
        $ModLoad ommysql

[root@ubuntu2004 ~]#vim /etc/rsyslog.d/50-default.conf 
        auth,authpriv.*         /var/log/auth.log
        *.*;auth,authpriv.none      -/var/log/syslog
        *.*;auth,authpriv.none      :ommysql:10.0.0.18,Syslog,rsyslog,123456     指定密码

[root@ubuntu2004 ~]#systemctl restart rsyslog.service                                   生效

准备 MySQL

root@centos8 ~]#yum install mysql-server
#在MySQL数据库服务器上创建相关数据库和表,并授权rsyslog能连接至当前服务器
[root@centos8 ~]#mysql -u
mysql>source /data/mysql-createDB.sql
mysql>CREATE USER 'rsyslog'@'10.0.0.%' IDENTIFIED BY '123456';
mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'10.0.0.%' ;

[root@rocky8 log]#systemctl enable --now mysqld; mysql -e "create database Syslog"
 

[root@rocky8 ~]#mysql Syslog 
mysql> CREATE USER 'rsyslog'@'10.0.0.%' IDENTIFIED BY '123456';

mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'10.0.0.%' ;
 

网上也与有别的·软件可以

[root@ubuntu2004 ~]#find /var/log -mtime +30 -ok rm -rf {} /;      删除30天的,删一下问一下

设置nginx的日志转储 

cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
rotate 100
missingok
compress
delaycompress
notifempty
create 644 ngnix nginx
postrotate
if [ -f /app/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /app/nginx/logs/nginx.pid`
fi
endscript
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值