欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

日志服务管理

发布时间:2024/1/1 编程问答 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 日志服务管理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

日志服务管理

文章目录

  • 日志服务管理
    • 系统日志管理
      • 系统日志介绍
        • sysklogd系统日志服务
        • rsyslog系统日志服务
        • ELK
      • rsyslogd
        • 系统日志术语
        • rsyslog相关文件
        • rsyslog配置文件
        • 日志文件的格式
        • ssh服务日志单独设置
        • 远程日志功能
      • 日志文件
      • **日志管理工具** **journalctl**
    • 网络文件共享服务

系统日志管理

系统日志介绍

在现实生活中,记录日志也非常重要,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用

日志记录的内容包括:

  • 历史事件:时间,地点,人物,事件
  • 日志级别:事件的关键性程度,Loglevel

sysklogd系统日志服务

CentOS 5 之前版本采用的日志管理系统服务

  • syslogd: system application 记录应用日志
  • klogd: linux kernel 记录内核日志

事件记录格式:

日期时间 主机 进程[pid]: 事件内容

C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理

rsyslog系统日志服务

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。

http://www.rsyslog.com/ —官网

rsyslog 特性

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

ELK

ELK:由Elasticsearch, Logstash, Kibana三个软件组成

  • 非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene
  • Elasticsearch是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能
  • Logstash对日志进行收集、分析,过滤,并将其存储供以后使用
  • Kibana 可以提供的日志分析友好的 Web 界面

rsyslogd

系统日志术语

  • facility:设施,从功能或程序上对日志进行归类
服务名称服务说明
auth(LOG_AUTH)安全和认证相关消息(不推荐使用 authpriv 替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron(LOG_CRON)统定时任务 cront 和 at 产生的日志
daemon(LOG_DAEMON)和各个守护进程相关的日志
ftp(LOG_FTP)ftp 守护进程产生的日志
kern(LOG_KERN)内核产生的日志(不是用户进程产生的)
local0-local7(LOG_LOCAL0-7)为本地使用预留的服务
lpr(LOG_LPR)打印产生的日志
mail(LOG_MAIL)邮件收发信息
new(LOG_NEWS)与新闻服务器相关的日志
syslog(LOG_SYSLOG)有 syslogd 服务产生的日志信息虽然服务名称已经改为rsyslogd,但是很多配置都还是沿用了 syslogd 的,这里 并没有修改服务名
user(LOG_USER)用户等级类别的日志信息
uucp(LOG_UUCP)uucp 子系统的日志信息,uucp 是早期 linux 系统进行数 据传递的协议,后来也常用在新闻组服务中
  • Priority 优先级别,从低到高排序
等级名称等级说明
debug(LOG_DEBUG)一般的调试信息说明
info(LOG_INFO)基本的通知信息
notice(LOG_NOTICE)普通信息,但是有一定的重要性
warning(LOG_WARNING)警告信息,但是还不回影响到服务或系统的运行
err(LOG_ERR)错误信息,一般达到 err 等级的信息以及可以影响到服务或系 统的运行了
crit(LOG_CRIT)临界状况信息,比 err 等级还要严重
alert(LOG_ALERT)警告状态信息,比 crit 还要严重。必须立即采取行动
emerg(LOG_EMERG)疼痛等级信息,系统已经无法使用了
*代表所有日志等级。比如,“authpriv.*”代表amhpriv认证信息服务产生的日志,所有的日志等级都记录

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

rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成

  • MODULES:相关模块配置
  • GLOBAL DIRECTIVES:全局配置
  • RULES:日志记录相关的规则配置

RULES配置格式:

facility.priority; #分类 优先级

日志文件的格式

  • 事件产生的日期时间 主机 进程(pid):事件内容

示例:

[root@localhost ~]#tail /var/log/messages

ssh服务日志单独设置

[root@localhost ~]#tail -f /var/log/secure #查看位置 [root@localhost ~]#vim /etc/ssh/sshd_config #修改配置文件 SyslogFacility LOCAL6 #添加自己的自定义local6.* /var/log/ssh.log #添加自己的文件位置

远程日志功能

#开启日志的远程传输功能在192.168.78.100 [root@localhost ~]#rpm -ql rsyslog #查看 [root@localhost ~]#ss -ntap |grep 514 #查看514端口是否打开 [root@localhost ~]#vim /etc/rsyslog.conf #修改配置文件 $ModLoad imtcp #19行 $InputTCPServerRun 514 #20行 [root@localhost ~]#ss -ntap |grep 514 #查看514端口是否打开 [root@centos7-2 ~]#vim /etc/rsyslog.conf #修改配置文件 *.info;mail.none;authpriv.none;cron.none @@192.168.78.100 #55行 [root@centos7-2 ~]#logger "this is test log from 192.168.78.5 1" 测试写入日志

日志文件

  • /var/log/secure:系统安全日志,文本格式,应周期性分析
  • /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的日志

查看

[root@localhost ~]#lastb [root@localhost ~]#lastlog [root@localhost ~]#last

日志管理工具 journalctl

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

日志的配置文件:/etc/systemd/journald.conf

journalctl [OPTIONS…] [MATCHES…]

选项说明
journalctl -k查看内核日志(不显示应用日志)
journalctl -b查看系统本次启动的日志
journalctl --since=“时间”查看指定时间的日志
journalctl -n显示尾部的最新10行日志,nhou加数字则是查看尾部指定多少行日志
journalctl -f实时滚动显示最新日志
journalctl /usr/lib/systemd/systemd查看指定服务的日志
journalctl _PID=查看指定进程的日志
journalctl _UID= --since today查看指定用户的日志
journalctl -u 服务查看某个Unit的日志
journalctl 路径查看某个路径的脚本的日志
journalctl --no-pager不分页标准输出
journalctl --disk-usage显示日志占据的硬盘空间
journalctl --vacuum-size=指定日志文件占据的最大空间
journalctl --vacuum-time=指定日志文件保存多久

网络文件共享服务

ftp

文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于C/S结构

数据传输格式:二进制(默认)和文本

双通道协议:命令和数据连接

两种模式:从服务器角度

  • 主动(PORT style):服务器主动连接

命令(控制):客户端:随机port —> 服务器:21/tcp

数据:客户端:随机port <—服务器:20/tcp

  • 被动(PASV style):客户端主动连接

命令(控制):客户端:随机port —> 服务器:21/tcp

数据:客户端:随机port —> 服务器:随机port /tcp

FTP服务状态码: 1XX:信息 125:数据连接打开 2XX:成功类状态 200:命令OK 230:登录成功 3XX:补充类 331:用户名OK 4XX:客户端错误 425:不能打开数据连接 5XX:服务器错误 530:不能登录

用户认证:

匿名用户:ftp,anonymous,对应Linux用户ftp

系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件

[root@centos7-2 ~]#yum install vsftpd -y [root@centos7-2 ~]#ss -natap |grep 21 [root@centos7-2 ~]#systemctl start vsftpd[root@localhost ~]#ftp 192.168.91.101 Connected to 192.168.91.101 (192.168.91.101). 220 (vsFTPd 3.0.2) Name (192.168.91.101:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> helpanonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名 no_anon_password=YES 匿名用户略过口令检查 , 默认NO listen_port=2121 默认值为21 #anon_upload_enable=YES anon_upload_enable=YES 匿名上传,注意:文件系统权限 anon_mkdir_write_enable=YES 匿名建目录

总结

以上是生活随笔为你收集整理的日志服务管理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。