自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山炮运维

叶俊海的博客

  • 博客(75)
  • 收藏
  • 关注

原创 python3 端口监控

用python脚本做端口监控已经稳定跑了2年多了,换了2家公司都在用,监控效果很好,及时发现故障。中间更新了好几个版本,博客上还是旧的,更新下新版本的脚本。企业微信监控效果:增加多个端口监控,多个端口用;分号隔开,增加发到不同企业微信机器人,联系人填了手机号会@指定人员数据库2个表,port_monitor用于记录IP端口信息,port_monitor_status用于记录告警时间状态用于判断是否发送告警。加入多线程,生产153台机0.15秒就跑完了,之前一直都是单线程在跑,遇

2021-03-23 18:08:23 2035

原创 Shell IP地址监控

企业微信:邮件告警:#!/bin/bash#ip.txt存放IP地址 QQ450433231 #ip2.txt存放项目名称 IP地址 等信息 用于格式化输出,事先文本定义好IP位置,有利于快速排障#本次更新增加恢复告警 故障时间 . /root/weixin.sh #调用微信机器人发送告警:https://blog.csdn.net/weixin_46175620/article/details/106936957. /root/downiptime.sh #根据日志计算故障时间

2020-06-24 09:59:14 563

原创 Shell 企业微信机器人发送告警

#!/bin/bashwx(){#将下面的webhook地址替换成你的企业微信机器人地址,$1为告警消息 $2为@人的手机号 $2可以为空cat > $0.msg << EOFcurl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=d25d7339-9b15-4b17-80ae-2f546140c349' \ -H 'Content-Type: application/json' \ -d ' {

2020-06-24 09:22:43 3154

原创 python Cloudflare 批量关闭IPv6兼容性脚本

Cloudflare免费版控制台不给关IPv6,需要使用API关闭,先申请API令牌,再执行脚本。

2024-02-04 16:52:26 554 1

原创 AWS创建实例 启用/禁用 自动分配公有 IP

AWS ECS 启用/禁用自动分配公有 IPv4 地址

2023-09-14 18:31:58 732

原创 python3 发送到企业微信机器人

python3 发送到企业微信机器人 省去安装requests依赖 直接调用。

2022-10-13 11:40:07 472 1

原创 jumpserver 添加windows主机

之前一直搞不明白添加windows主机那个特权用户写啥,原来授权普通用户就行了。先添加administrator用户 ,用普通用户就行,用户要要和登入windows的远程用户账户相同,特权用户在windows上没用,因为是必选随便选一个就行,必选把我搞懵逼了。特权用户这边选随便选就好,linux才有用,windows主机要授权administrator那个普通用户添加授权 系统用户用刚刚的普通用户就行,一开始就纳闷windows怎么用特权用户用jumpserver访问海外的主机比直接mstsc远程

2022-02-18 16:13:27 3299

原创 shell 日志文件监控

监控需求:监控应用输出的错误日志,不需要太复杂的日志监控系统,程序有异常错误日志要企业微信告警出来。这个shell监控了日志文件的行号 有变动就将新增的日志内容发送企业微信告警, 用crontab 挂1分钟执行1次监控。#!/bin/bashset -u -e#监控脚本存放目录 $0.log用于记录上一次读取日志的行号mkdir -p /shcd /shif [[ ! -f $0.log ]];then touch $0.logfi#发企业微信告警wx(){cat

2022-01-28 10:55:39 2653

原创 AWS api查询账单

作为运维要经常关注公司账户消耗情况,账户多了看账单的时间都需要优化,搞个脚本定期推送AWS账单,后续在搞监控,AWS就是api不太好找#!/usr/bin/env python3# coding=utf-8#AWS API参考:https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetCostAndUsage.htmlimport boto3#账户的访问密钥aws_access_key_id = ''

2022-01-24 16:53:18 3521 4

原创 AWS 查看S3所有桶大小

每个桶点存储桶指标可以查看当前桶的大小,AWS桶实在太多了,一个一个去点开实在太麻烦了,S3对比OSS还是有不是太适合国人喜欢的地方,分享查看脚本,输入access_key和区域就可以用了。#!/usr/bin/env python3# coding=utf-8import boto3import datetime#key填写账户生成的,可以去用户账户里面生成 aws_access_key_id = ''aws_secret_access_key = ''#桶所在区域region_

2021-12-15 16:58:26 3034

原创 自动关闭zabbix问题

zabbix做的日志监控 如果不关闭问题,就不会再次告警,有时候告警多了一条一条确认太麻环了,看官方文档找到了api,搞个脚本快速关;手动关。。。。。真累用python脚本实现快速关闭所有问题# -*- coding:utf-8 -*-import jsonimport requestspost_headers = {'Content-Type': 'application/json'}#http://127.0.0.1/zabbix.php zabbix的web访问地址改成api访问

2021-12-03 15:23:42 1450

原创 shell awk监控磁盘使用率

awk

2021-11-29 17:47:45 1045

原创 jumpserver api添加删除主机

右上角先创建API Key 脚本需要用到#!/usr/bin/env python3# -*- coding:utf-8 -*-import requestsimport datetimefrom httpsig.requests_auth import HTTPSignatureAuthimport jsondef add_host(hostname, ip): url = 'https://jempserver地址' + '/api/v1/assets/assets/' .

2021-11-29 17:34:18 1615

原创 python 修改华为云负载均衡权重

公司阿里云迁移华为云,接口调用员老叶重新对接了下,用于jenkisn系统启停负载均衡器,实现滚动更新,就这样用吧。传入IP就是修改传入IP在负载均衡的权重,不传就获取本机eth0的ip权重阿里默认是100 华为是给1 刚好迁移过来就用100了start 设置权重100deploy 设置权重10 用于小量测试权重想怎么改都行stop 设置权重为0 没请求开始更新应用status 查询本机或者其他机子 不传IP查询本机所在后端服务区组的信息使用效果截图:查询当前主机所属组的状态 故障在ec

2021-08-18 14:48:21 254

原创 redis 集群扩容 自动分槽

生产环境redis为3主3从 4核32G配置,业务量增长要扩容成4主4从的配置,看个网上的教程都是手动移动槽位太麻烦了,这次用cluster rebalance ,生产30多G的内存数据自动重新分槽 30分钟就扩容完了,全程对业务无影响。 redis集群版本5.0.4以下是扩容过程生产节点信息:hm_redis_cluster001 192.168.0.1:7001 masterhm_redis_cluster002 192.168.0.2:7002 masterhm_redis_clust

2021-06-22 16:55:24 766 1

原创 AWS Redshift 存储利用率巡检监控

AWS 告警邮件太多容易被忽略,公司维护着十几家的平台,都是在用Redshift,磁盘满了邮件又没看到就麻烦了。接口调用员老叶就想把告警发到企业微信上来,,以后学废了再来改进脚本,先解决现在的问题。企业微信效果:取到存储利用率把调用频率增加,在加个判断就可以告警了#!/usr/bin/env python3# coding=utf-8import boto3import pytzimport timeimport pymysqlimport sysimport requests

2021-03-24 16:40:30 250

原创 AWS curl获取本机信息

一直爱用ifconfig显示本机网卡信息,在写shell脚本也用ifconfig 会出现linux版本不同抓不到本机IP的问题,发布系统对接机子发行版多了这个shell会很难写。好在AWS还是很不错的 提供了一个ec2-metadata 命令可以查看本机信息,最后用ec2-metadata去写的shell发现还有linux没有ec2-metadata命令。AWS提供了http://169.254.169.254/latest/meta-data/ url可以查看本机信息 这个就很好用...

2021-02-25 16:28:11 685 1

原创 AWS 域转移到其他AWS账号

AWS 域转移到其他AWS 账号 记录踩坑 aws route53domains transfer-domain-to-another-aws-account --domain-name "test.com" --account-id "对方账户ID"账户ID在IAM里面可以看用aws cli 转移的时候出现出问题连不到 思考Route53是全球服务 指定的region不行Could not connect to the endpoint URL: "https://route53domains

2021-01-28 10:59:36 925

原创 AWS 跨区域互访

数据库在美国,EC2主机在亚洲,后续全球都要部署节点,每个区域都要能访问数据库安全组放行维护起来非常麻烦,还不是很安全。查下AWS的资料,做VPC的对等连接就可以实现跨区域的服务互访,类似阿里云云企业网,安全维护还方便,唯一的缺陷貌似DNS的解析不能互传,流量费用也便宜$0.01/GB,设置对等不收费。打开VPC创建对等连接,填写目标VPC-id这里要注意 ,对端的VPC和本端的VPC CIDR网段不能相同,冲突会建立不成功。建议一个区域新建CIDR 不要用默认的VPC去建立互访 默认是172.31

2020-12-07 17:19:04 1446 1

原创 AWS 负载均衡导入ECC证书

最近被网站优化搞得生活不能自理,测试了下竞品的网站发现SSL握手部分慢了300ms,对于RSA算法来讲,目前至少使用2048位以上的密钥长度才能保证安全性。ECC只需要使用224位长度的密钥就能实现RSA2048位长度的安全强度,在进行相同的模指数运算时速度显然要快很多。在FreeSSL申请了免费的https ECC加密的证书,ACM导入成功都没有报错,然后,ALB负载均衡死活认不到证书,坑呐,重新生成RSA加密的导入就可以用。查了下才知道AWS ACM支持导入但不能用(做这个导入功能干嘛),要从IAM导

2020-11-26 10:46:38 611 1

原创 低于4G内存安装 Jumpserver

看了JUMPserver的文档要求最低4G内存,去阿里开了一台4G内存机子发现无法安装。。更换系统还好,升级配置可是要收费的。。。看了下安装检测脚本,修改下内存检测要求就可以了。[root@hm-JumpServer ~]# cd /opt/setuptools/scripts/[root@hm-JumpServer scripts]# vi check_install_env.sh修改check_install_env.sh 安装检测脚本 原来4G检测的值是3750000 - -! 阿里开

2020-10-30 15:36:00 993

原创 jenkins 自动化部署

开发了5个发布场景 具体区别如下图所示。因为更新需要停负载均衡,负载均衡公有云都有提供接口,负载均衡启停脚本看:https://blog.csdn.net/weixin_46175620/article/details/108573293基本的流程:gitee/github 添加项目的部署公钥(只有拉取代码权限), 私钥导入jenkins用于拉取代码使用。jenkins拉取代码后使用gradle、maven等工具打包构建。ansible把打包的包部署到每台生产环境滚动更新,因为有负载均衡,

2020-10-14 18:47:42 651

原创 jenkins 自动化部署 shell监控脚本

jenkins发布系统,配合开发了3个监控脚本,shell的免安装,且代码量比python还少,少安装很多依赖包。开发的3个监控场景都是为了发布更新不会影响到正常的用户。具体发布脚本看:分享下思路:应用层日志监控,监控应用访问日志access.log改变。网络层监控,监控端口3次握手ESTABLISHED状态确认连接数。http请求返回值,应用发布后请求响应码200,确认发布成功。第一个脚本#! /bin/bash# 负载均衡停止后,监控应用日志access.log,确保没有新的用户访问

2020-10-14 18:26:11 665

原创 jenkins 解决控制台输出中文乱码

war包部署的jenkins,发现控制台输出中文乱码,参考网上改了N多环境变量和中文字体啥的都没用在启用war包前,添加这句环境变量解决:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

2020-09-25 18:44:43 431

原创 Jenkins使用企业微信报错No appropriate protocol

Jenkins使用war包部署 在调用企业微信插件发送消息报错:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)使用docker部署的时候都没发现这个问题 可以正常发送为啥不直接用官方的容器镜像,官方镜像折腾老半天没装上ansible各种报错,pip安装ansible都装不上不知道为啥 2个pip版本都试过,还试了

2020-09-25 14:06:23 1190 2

原创 python 修改阿里云负载均衡权重

最近给公司新上了堡垒机,需求是在EC2上更新的时候直接修改负载均衡权重,后续都登入堡垒机,就不要再登入阿里云的网页去修改。- -目前还没有发布系统。看了阿里的文档还是很齐全的,写了2个版本 修改虚拟服务器权重 修改默认服务器权重,阿里都给了接口。研发的需求就是start启动 stop停止,权重100启动, 权重0停止 ,阿里好像也可以有开关的接口没去研究。实现过程:先查询本机的IP根据内网IP查出ECS实例ID,最后根据ECSID查询关联的负载均衡修改。脚本用法:python3 脚本名 start #

2020-09-14 10:30:09 845

原创 Shell脚本监控错误日志

错误日志事需要写到指定的文件位置,写脚本监控监控日志文件发企业微信告警。分享下监控日志文件的思路,就是记录每次读取到的行号用crontab 每隔一段时间调用就好,有记录行号不怕重复发送日志#!/bin/bash#监控错误日志set -e -u -o pipefailrow_number=0 #初始行号 这边用sed记录了行号 用于从上一次的位置开始读取wx(){#读取日志发送到企业微信 企业微信机器人使用方法 https://blog.csdn.net/weixin_46175620/ar

2020-08-27 17:30:31 2468

原创 Shell+Iptables 防御TCP SYN洪泛攻击

在运维某平台发现非常大量访问卡在的SYN_RECV状态,可以确认为SYN泛洪攻击,看到的netstat -antp状态如下:Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:875

2020-06-26 20:27:38 600

原创 Linux buffer/cache 清理脚本

centos7 阀值修改下 挂crontabl就可以清理了#!/bin/bashif [ `free -g|awk '/Mem:/{print$6}'` -ge 4 ];then # buffer/cache 大于4g 开始清理 sync echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/

2020-06-25 20:38:49 234

原创 lvm 扩容

#查看剩余空间vgs#(1)剩余空间都扩容到根(/)目录lvextend -l +100%FREE `df|grep -w '/'|awk '{print$1}'`#(2)扫描磁盘识别已扩容空间,磁盘为xfs文件系统,CentOS 7系统默认文件系统为XFS格式xfs_growfs `df|grep -w '/'|awk '{print$1}'` --------------------------------------------------------------#只需替换grep -

2020-06-25 20:31:43 205

原创 python3 企业微信机器人发送图片

import requestsimport base64import hashlibdef wx_image(image): with open(image, 'rb') as file: #转换图片成base64格式 data = file.read() encodestr = base64.b64encode(data) image_data = str(encodestr, 'utf-8

2020-06-25 20:28:54 2336

原创 lvs结合ssh免密做监控,移除故障节点脚本

2020-06-22 15:58:44elk系统logstash日志处理端使用lvs做的负载均衡,端口监控发现logstash节点因为最大文件数到达限制挂了一台,lvs不知道后端的logstash挂了。看告警虚拟IP恢复是因为转发到正常的节点了,端口监控后续就一直波动恢复告警- -!,因为lvs没有移除故障节点,处理不及时,丢的东西就多了。lvs结合ssh免密做监控,移除故障节点脚本这边用利用ssh免密做的监控,后端Real Server不能禁止lvs访问22端口,lvs定期去检查logstash是

2020-06-22 18:11:52 244

原创 将博客搬至CSDN

51CTO不知道怎么了 旧的博客都自己可见 懒的问客服了,搬家https://blog.csdn.net/weixin_46175620

2020-06-22 17:56:49 104

原创 python3 监控脚本

周末在家花了3个晚上重写了之前4个监控脚本,记录下用的是mysql数据库 还在强化学习企业微信监控效果:邮件监控效果:增加了邮件告警,每台机监控的阈值可以自定义使用paramiko登入每台机收集CPU 内存 磁盘 网卡 并发连接数# -*- coding: utf-8 -*-import paramikoimport pymysqlimport timeimport request...

2020-06-19 15:00:00 408

原创 XFS lvreduce减容后无法挂载,报错superblock read failed修复

xfs文件系统是不支持减容的,刚好碰到,这里用试验还远下重现故障恢复过程这里把var使用lvreduce进行减容把31变成20g ,问了是否选了Y ,这边y敲下去,就凉了![root@YYYJUNHAI~]#lvreduce-L20g/dev/VG01//dev/VG01/opt/dev/VG01/root/dev/VG01/swap/de...

2020-05-20 14:53:38 7224 7

原创 python3 paramiko 巡检网络设备

用paramiko做网络设备巡检,发现大坑,就是show run这种看配置有多页存在的没法显示第二页,没找到paramiko翻页的地方,添加多个空格也不是很好使。避开这个坑,自动登入搞定了后面命令怎么传都是小事了,传参参考第二个脚本吧。cisco的全页打印显示配置信息的命令:terminallength0showrun华为和H3C的全页打印显示配置信...

2020-05-10 08:58:18 909

原创 python3 端口监控

原来一直用shell结合nmap做端口监控,最近刚好有时间改用python重写。监控效果:mysql数据库用于读取IP地址,输出IP详细信息,记录故障时间,send记录是否发生变量。#-*-coding:utf-8-*-#@Time:2020-4-1022:13#@Author:yejunhai#@Site:#@File:port_mo...

2020-04-15 14:28:38 674

原创 ansible 推送脚本巡检

推送的需要的机子多最好使用数据库,机子少就写死变量了,在被巡检主机上新建一个普通用户,被巡检主机免安装,增加ansible-hosts新加巡检主机,多个租户可以用docker隔离,扩展可以用yml role代码复用配上数据库就很方便了,现在更新巡检脚本只要更新ansible-server上的脚本,增加新功能。这里需要被巡检主机免安装就没用数据库记录,yml要用cop...

2020-02-25 22:10:18 955

原创 Shell+Iptables 防御TCP SYN洪泛

在运维通信监管平台发现大量访问卡在的SYN_RECV状态,看到的netstat -antp状态如下:ActiveInternetconnections(serversandestablished)ProtoRecv-QSend-QLocalAddressForeignAddressStat...

2020-02-07 11:22:50 230

原创 python ssh登入

#-*-coding:utf-8-*-importparamikoimportosdefssh_command(command): client=paramiko.client.SSHClient() client.set_missing_host_key_policy(paramiko.client.AutoAddPolicy())...

2020-01-09 21:55:56 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除