- 部分 I. Python 入门
- 第 1 章 Python 入门
- 第 2 章 Python Package Index (PyPI)
- 第 3 章 Python 模块
- 第 4 章 数据类型
- 第 5 章 数据结构
- 第 6 章 Class
- 第 7 章 Input/Output
- 第 8 章 Pipe
- 第 9 章 Library
- 9.2. 随机数
- 9.3. Python 多线程
- 9.13. syslog
- 9.5. Socket
- 9.6. subprocess
- 9.7. YAML
- 9.8. Daemon
- 9.9. python-memcached
- 9.10. Pyro - Pyro is short for PYthon Remote Objects
- 9.11. Python Imaging Library
- 9.12. getopt – Command line option parsing
- 9.14. python-subversion
- 9.15. SimpleHTTPServer
- 9.16. fuse-python.x86_64 : Python bindings for FUSE - filesystem in userspace
- 9.17. Network
- 9.18. Python-spdylay - Spdylay Python Extension Module
- 9.19. mechanize
- 9.20. Dominate
- 第 10 章 Frameworks
- 第 12 章 终端环境开发
- 部分 II. Python 数据分析
- 第 13 章 Crawler
- 第 14 章 Scrapy - Python web scraping and crawling framework
- 第 15 章 Pandas - Python Data Analysis Library
- 第 16 章 股票
- 第 17 章 数据可视化
- 部分 III. 人工智能 AI
- 第 18 章 OCR
- 第 19 章 语音处理
- 第 20 章 视频
- 第 21 章 人脸识别
- 第 22 章 自然语言处理
- 第 23 章 自动化运维
- 第 24 章 办公自动化
- 第 25 章 OpenCV
- 第 26 章 图形开发
- 第 27 章 3rdparty toolkit
- 第 29 章 实用代码
- 第 30 章 FAQ
第 23 章 自动化运维
第 23 章 自动化运维
目录
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论