返回介绍

第 23 章 自动化运维

发布于 2024-02-10 15:26:30 字数 4571 浏览 0 评论 0 收藏 0

第 23 章 自动化运维

目录

23.1. 日志中心
23.1.1. 什么是日志中心
23.1.2. 工作原理
23.1.3. 安装
23.1.4. 命令
23.1.5. 操作演示
23.2. Python 开发防火墙
23.2.1. 我为什么要开发一个防火墙软件?
23.2.2. 安装 Python 防火墙
23.2.3. 切换防火墙规则
23.2.4. 规则库
23.3. 监视文件系统
23.3.1. watchdog
23.3.2. pyinotify
23.4. 容器
23.4.1. 在 Docker 容器中运行 Python 项目
23.4.2. 在 kubernetes 中部署项目

23.1. 日志中心

23.1.1. 什么是日志中心

日志中心是针对日志类数据一站式管理,日志中心分成两部分,分别是采集端和收集端。

采集器从各服务器采集数据,然后发送给接收端,接收端接到数据后,将日志保存到磁盘上。用户能在日志中心服务器上查询和分析日志,帮助运维、运营提升效率。

当年我开发此程序的时候还没有出现如今流行的ELK方案,接下来就让我为大家介绍如何使用 Python 开发一个日志采集和接受程序。

23.1.2. 工作原理

日志采集端:有两种工作方式:一种是文件采集,另一种是标准输出采集。文件采集又分为,静态日志文件采集,将整个文件给接收端。动态文件采集,仅采集添加到日志文件尾部的更新内容,即每次只读取日志追加的内容。

日志接收端: 启动后进入后台,开启UDP端口,等候采集端发送内容。

23.1.3. 安装

pip 安装

[root@localhost ~]# pip3 install netkiller-logging

源码安装

[root@localhost ~]# git clone https://github.com/netkiller/logging.git
[root@localhost ~]# cd logging
[root@localhost ~]# python3 setup.py sdist
[root@localhost ~]# python3 setup.py install		

23.1.4. 命令

23.1.4.1. 日志采集端

日志采集端名师是 rlog

[root@localhost ~]# whereis rlog 
rlog: /usr/local/bin/rlog

[root@localhost ~]# rlog 
Usage: rlog [options] filename

Options:
-h, --help            show this help message and exit
-H localhost, --host=localhost
			push log to remote host
-p 1214, --port=1214  port
--sleep=0.05          with -s, sleep  for  approximately S  seconds between
			iterations
-d, --daemon          run as daemon
-f, --full            Full text
--stdin               cat file | prog ...
-e /tmp/rlog.log, --errlog=/tmp/rlog.log
			error log
--postion             save postion of log file

Homepage: http://netkiller.github.io	Author: Neo <netkiller@msn.com>				

23.1.4.2. 日志接收端

日志接收端命令式 collection

[root@localhost ~]# collection 
Usage: collection [options] module

Options:
  -h, --help            show this help message and exit
  -p 1214, --port=1214  port
  -l /tmp/test.log, --logfile=/tmp/test.log
			log file
  --list                show module message
  -d, --daemon          run as daemon

  Homepage: http://netkiller.github.io	Author: Neo <netkiller@msn.com>		

23.1.5. 操作演示

23.1.5.1. 从标准输出采集日志

日志接收端命令:

collection -p 1214			

启动日志接收程序,使用UDP 1214 端口接收日志。

日志采集端命令:

echo Helloworld | rlog -H 127.0.0.1 —stdin			

运行日志采集程序,将标准输出内容发送到日志接收端。

23.1.5.2. 发送日志文件

将日志文件发送给日志接收端

日志接收端命令:

collection -p 1214

这里仅仅演示,所以我们在终端输出日志。

日志采集端命令:

rlog -H 127.0.0.1 -f /var/log/your.log

参数 -f 是指发送整个文件,否则只会发送采集程序启动后,追加的日志。

23.1.5.3. 接收日志并保存到文件

日志接收端命令:

collection -p 1214 -l /tmp/test.log		

参数 -l 表示将接收到的日志写入文件,使用 -l 参数后,终端屏幕不再输出内容

日志采集端命令:

rlog -H 127.0.0.1 -f /var/log/your.log

参数 -f 是指发送整个文件,否则只会发送采集程序启动后,追加的日志。

23.1.5.4. 发送动态日志文件

所谓动态日志文件是指,正在运行的程序随时向日志追加内容,例如WEB服务器nginx

日志接收端命令:

collection -d -p 1214 -l /tmp/test.log

参数 -d 表示后台运行,-l 将接收到的日志写入文件

日志采集端命令:

rlog -d -H 127.0.0.1 /var/log/your.log

参数 -d 表示rlog启动后在后台运行,注意不要使用 -f 参数

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文