- 博客(34)
- 收藏
- 关注
原创 Flask + echarts 轻松搞定 nginx 日志可视化
一、思路nginx 访问日志,记录了每次客户端请求,其中包括 ip、时间、使用的客户端等信息通过解析每行数据,提取这些信息,然后对信息进行整理,并做一些必要的统计最后将统计数据展示出来,可以直观地感知数据中蕴含的问题基本思路就是这样,不过知道和做到之间的距离还有很远,为了达到目标,需要一些工具做支持由于数据是 nginx 访问日志,所有不需要爬取,从服务器上下载就好整理处理过程,除了 python 本身一些功能外,还离不开 pandas 的支持最后数据展示部分,用的是 Flask + echa
2020-09-17 09:55:27
424
原创 Github上有趣的100个python项目
Github上面有很多有趣的python项目,包括软件、库、教程、资源等。这次收集了其中比较受欢迎的100个,供大家参考。资料来源:https://github.com/521xueweihan/HelloGitHub项目链接:https://pan.baidu.com/s/16RFV_qFrpKUA2H7dknmzAQ提取码:v2wo❞1、awesome-python-webapp:廖老师的 Python 入门教程中的实践项目的代码2、Minos:一个基于 Tornado/MongoDB/Re
2020-09-17 09:53:46
50136
原创 python操作elasticsearch
1、python 安装上elasticsearch 模块2、2.1 指定连接:es = Elasticsearch( ['172.16.153.129:9200'], # 认证信息 # http_auth=('elastic', 'changeme'))2.2 动态连接es = Elasticsearch( ['esnode1:port', 'esnode2:port'], # 在做任何操作之前,先进行嗅探 sniff_on_start=Tru
2020-07-31 18:27:06
3139
原创 openfalcon 添加自定义报警
1、falcon 添加自定义报警 虽然和zabbix 相似 但是还是有区别2、目标是ping 三个ip 哪个不通 自动报出是哪个ipfalconplush 机制要求上报的数据格式如下:root@host01:/path/to/plugins/plugin/sys/ntp]#./600_ntp.py[{“endpoint”: “host01”, “tags”: “”, “timestamp”: 1431349763, “metric”: “sys.ntp.offset”, “value”: 0.73
2020-07-09 12:48:18
584
原创 salt 常用模块
##先看一个简单的例子:salt: pkg.latest: - name: salt service.running: - names: #多个值,一行一个,且为names,复数 - salt-master - salt-minion - require: - pkg: salt - watch: - file: /etc/salt/minion/etc/salt/minio
2020-06-17 16:06:12
606
原创 salt通信原理
一、saltstack的两个端口:4506端口的作用:salt Master Ret接口,支持认证、文件服务、结果手机等功能4505端口的作用:salt Master pub接口,提供远程执行命令发送功能saltstack通信过程:(1)salt minion启动时候,从配置文件中获取到master地址,如果是域名,那就进行解析。(2)salt minion连接master的4506进行key认证。认证通过,就从4505端口获取master的publish_port,然后连接publish_po
2020-06-15 15:26:11
980
原创 SaltStack中 Syndic架构
一、salt 架构目前百度还有的知识都是单独master上述架构比较好搭建都按着默认参数配置即可,但是上述弊端主master 挂了之后,影响使用,本次介绍是双master.架构如下:mastersyndicminionsalt-master1sa-syndic1sa-minion1salt-master2sa-syndic2sa-minion2node1\node2node3\node4node5\node6在两个主master 上配置:
2020-06-12 10:55:09
402
原创 python实现字典一对多
dict.setdefault()该接收两个参数,第一个参数是健的名称,第二个参数是默认值。假如字典中不存在给定的键,则返回参数中提供的默认值;反之,则返回字典中保存的值dict.setdefault(kw, 0) # 默认值设为0dict.setdefault(kw, []) # 默认值为空列表dict.setdefault(kw, []).append(value) # 把value增加到kw对应的键值列表中,实现了一对多dict.setdefault(kw, {}) # 默认值为空字典 .
2020-06-01 14:50:31
5229
原创 token 认证
1、python3#python 3.7import timeimport hmacimport hashlibimport base64import urllib.requesttimestamp = int(round(time.time() * 1000))secret = 'this is secret'secret_enc = secret.encode('utf-8')string_to_sign = '{}\n{}'.format(timestamp, secret)s
2020-05-20 14:21:20
753
原创 zabbix监控用户密码剩余过期天数
1、前提 开发突然登录不上了设备,查看是密码过期了,所以针对用户密码剩余过期天数做个监控2、例如chage 查看密码剩余过期天数[root@liantong-jtfwq ~]# chage --list root 或 chage -l rootLast password change : Feb 25, 2019 // 上次密码修改的时间Password expires
2020-05-20 14:15:48
2392
原创 Tornado
1、介绍Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架特点:作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处理方式。作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。2、Hello wordimport tornado.ioloop
2020-05-14 18:38:03
131
原创 安装python 虚拟运行环境,linux下配置worken 切换虚拟环境
一、查询python解释器所在的路径以下查询py3和py2的目录:$ which python3/usr/bin/python3二、安装python虚拟运行环境pip 安装$ sudo pip install virtualenvwrapper上述工具安装好后,需要执行以下环境变量设置1、创建目录用来存在虚拟环境mkdir $HOME/.virtualenvs2、在~/.bashrc中添加行:export WORKON_HOME=$HOME/.virtualenvsVIRTUA
2020-05-12 09:41:05
715
原创 Mysql基础知识
##查看当前使用的用户#select user()#设置密码#set password = password('新密码')#远程登录 -h#数据库的操作: #创建库 create database 库名; #查看库:show databases; #使用库:user 库名; #删除库: drop database 库名;#表的操作 #创建表: create table 表...
2020-04-13 14:13:58
92
原创 数据库和python
pymysql 模块1、连接数据库import pymysqlconn = pymysql.connect(host='127.0.0.1',user = 'root',password ='123456',database = 'py27')# # cur = conn.cursor(cursor=pymysql.cursors.DictCursor) ##这样是返回字典cur...
2020-04-06 14:18:12
358
原创 python并发编程
1、进程的概念及相关知识 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有...
2020-03-21 16:06:45
155
原创 python 网络编程
1、基础知识1.1 网络编程(CS/BS架构)1.1.1 c/s 架构C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大1.1.2 b/s 架构B/S即:Browser与Server,中文意思:浏览...
2020-03-17 15:08:00
322
原创 python错误处理
1、错误处理异常处理捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。格式:try : 语句1except 错误代码 as e: 语句2except 错误代码 as e: 语句3......except ...
2020-03-14 11:41:12
263
原创 logging模块
1、日志的等级级别何时使用DEBUG最详细的日志信息,典型应用场景是 问题诊断INFO信息详细程度仅次于DEBUG,通常只记录关键节点信息WARNING表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息CRITICAL当发生严重错误,导致应用程...
2020-03-14 11:36:01
228
原创 面向对象
1、面向对象初识面向对象什么是类: 一系列具有相同属性和相似方法的事物的抽象什么是对象: 一个带有具体属性值的类的实例什么是实例化:通过创造对象的过程面向对象的语法:class Person: #Person 是类 def __init__(self,name,hp,ad,sex,job): self.username = name self.hp = hp sel...
2020-03-07 12:03:52
124
原创 json/pickle
1、序列化模块1.1 json 模块json 是一种通用的数据格式,本质是一个字符串loads dumps 和内存交互load dump 和文件交互import jsondic = {'苹果':'apple','梨':'pear'}ret = json.dumps(dic,ensure_ascii=False) ###序列化的过程,把字典或者其他数据类型转换成字典,如果字...
2020-03-01 17:08:18
197
1
原创 python 正则表达式
正则1、 匹配所有的数字[0-9] 匹配所有的字母[a-z] 匹配所有的大写字母 [A-Z] 匹配所有数字字母 [0-9a-zA-Z] 2、元字符 \d 是匹配所有数字 \w 是配置所有的数字字母下划线还有中文 \s 是匹配所有的空白符 制表符 换行符 \n 匹配回车 \t...
2020-02-03 16:29:20
112
原创 内置函数
内置函数1、eval()把 字符串组成的代码当做python 代码来自执行,并返回值2、ord()把数字换成对象的字符chr()把字符转换成数字3、slice()切片4、filter()生成器函数,返回一个5、enumerate() #枚举函数给可迭代的生成序号6、zip()拉链方法7、random() 随机数random.random() 生成小于1的随机数r...
2020-01-19 14:31:40
143
原创 递归函数
递归函数1、深层列表使用递归函数lst = [“a1”,“a2”,“a3”,[“a22”,“a11”,“a33”,[“a111”,“a222”]]]def look_up(lst):for i in lst:if type(i) is list:look_up(i)else:print(i)look_up(lst)2、递归函数返回值...
2020-01-17 15:56:10
151
原创 爬虫相关知识
爬虫相关知识知识点beautifulsoupsoup = BeautifulSoup(demo, “html.parser”)“”"demo 表示被解析的html格式的内容html.parser表示解析用的解析器“”"print(‘a标签的href属性是:’, soup.a.attrs[‘href’]) # 同样,通过字典的方式获取a标签的href属性soup.find(na...
2019-12-27 14:49:28
115
原创 HTML
Html例子HTML格式:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body></body></html>简介 &...
2019-10-13 15:57:37
165
原创 装饰器等
装饰器1、函数的引申#实际上函数的名字可以被赋值,也可以作为一个容器类型的元素,可以作为函数的参数#变量怎么使用,函数的名字都可以怎么用例如:def a(): print('in a ')def wahaha(f): #形参是个变量 f() #形参加( ) 就是a() 函数的调用wahaha(a) #传入的实参是个函数 的内存地址2、函数...
2019-10-07 20:59:17
113
原创 函数
函数1、函数的使用增强代码的可读性降低代码的重复性2、return不写return所有代码的执行完毕自动结束函数返回值未none只写return遇到return函数结束返回值nonereturn 结果程序结束 返回结果return 结果1 结果2 结果3会被变成元组返回给调用者3、函数3.1 定义def 函数名(参数):在函数中执行的代码retur...
2019-10-06 17:04:59
70
原创 day03
上周回顾1、基础数据类型分类记忆一:数字类型:bool int float序列类型:str tuple list散列类型:dict set2、基础数据类型分类记忆二可变数据类型: list dict set不可变数据类型:bool int float str tuple## 文件操作1、打开文件f = open(r’C:\Users\TAL\Desktop\sql.sq...
2019-10-06 13:54:24
165
原创 元组
元组(tuple)day= (‘alex’,‘wusi’)元组是不可变的序列##注意a = (1) ## 这样不是元组,如果只有一个值应该这么写a = (1,)
2019-10-05 17:22:35
92
原创 day02
day002##pass 语句1、占位符,代表什么也不做##格式化输出1、print(’%s昨天开着%s撞树上了’%(变量1,变量2))2、print(‘一个%s:’%变量) ##一个变量%s 可以批量数字和字符串%d 只能匹配数字##运算符1、字符串可以相加print(‘hello,’+‘world’)2、 逻辑运算符顺序:not>and>or3、身份...
2019-10-05 15:14:45
106
原创 字符串常用到方法
字符串常用到的方法定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,“” 和‘’ 中间包含的内容称之为字符串特性:1、只能存放一个值2、不可变3、按照从左到右的顺序定义字符集合,下标从1开始顺序访问,有序...
2019-07-27 21:28:04
138
原创 Day2
列表自带的函数列表的创建list_tes=[‘ceshi’,12,'abc]索引 lst = [1,'ceshi',2,'hello'] print(lst[0]) print(lst[1])切片 lst = [1,'hello','word',2,3,'哪吒'] print(lst[1:3]) print(lst[1:4:2]) pri...
2019-07-27 20:45:19
95
转载 Day1
变量1. 声明变量 name = "hello,word"2. 变量定义规则变量名只能是 字母、数字或下划线的任意组合变量名的第一个字符不能是数字以下关键字不能声明为变量名[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’,‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘fin...
2019-07-26 17:25:05
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人