
自动化运维
文章平均质量分 60
JosenChina
这个作者很懒,什么都没留下…
展开
-
基于Prometheus快速搭建网络质量监控平台
本方案的实现原理主要通过Prometheus模组进行数据采集和告警,通过grafana进行数据展示。Prometheus通过向采集端发送采集指令触发采集动作,采集结果进行解析并入库,同时将根据rules规则,将触发告警的事件推送到应用实现告警功能。原创 2023-11-19 17:23:52 · 571 阅读 · 0 评论 -
从零开始搭建Prometheus+grafana服务器&组件监控系统
本文档主要记录了常用企业级服务器及各种组件的监控手段和监控部署方案,使企业可以实时感知服务器组件的健康状态,并在服务器或组件出现异常时及时做出反应。本方案采用的Prometheus+grafana的方式实现对服务器及各种组件的监控,以下内容将会带你从零开始,一步步搭建整个监控方案。监控对象包括:服务器监控(cpu、内存、磁盘等指标)、mysql监控、redis监控、kafka监控、clickhouse监控、docker容器等常用组件的监控。原创 2023-10-28 18:13:28 · 1129 阅读 · 0 评论 -
linux虚拟机未建分区的情况下对磁盘进行扩容
针对生产环境业务不断增加使得业务系统对服务器的磁盘要求同步提高,对此需要对服务器的磁盘进行扩容,同时要求扩容后不能对服务器已有业务数据造成任何影响原创 2022-09-04 16:16:54 · 2376 阅读 · 0 评论 -
配置文件ip脱敏工具
在项目落地的过程中,经常需要用到实际的业务数据进行系统调试,出于安全性的考虑,客户现场一般不允许直接将生产环境配置(网络设备配置、服务器配置等)导出,而由于生产环境的相对的不便利性(环境稳定性、工具依赖性等),直接在生产环境进行调试往往效率非常低下。基于以上情况,可通过本工具将生产环境的配置信息中的敏感信息进行脱敏后直接导出脱敏后的配置即可。...原创 2022-07-01 12:03:43 · 982 阅读 · 0 评论 -
ansible入门教程——经典场景及jinja2的运用
当ansible与设备进行交互时,会将对应的运行日志打印出来,日志内容对ansible脚本的设计人员和运维人员来讲可能还可以理解,但是如果将设计好需脚本提交给用户,纯粹的打印ansible日志,会导致ansible脚本的使用体验极差。本方案通过简单的例子,讲解如何通过ansible内嵌的jinja2模块,使ansible脚本更加人性化。原创 2022-03-20 15:01:35 · 1234 阅读 · 0 评论 -
python笔记之——删除字符串最后一行
ss = '''hello worldhihihi abcthe last line'''print(ss)sss = ss[:ss.rfind('\n')]print(sss)ssss = sss[:sss.rfind('\n')]输出结果ss输出结果hello worldhihihi abcthe last linesss输出结果hello worldhihihi abcthe last linessss输出结果hello worldhihih原创 2022-02-23 09:26:13 · 1036 阅读 · 2 评论 -
【高可用】通过keepalived实现应用的高可用
keepalive配置用例实现业务的高可用原创 2021-12-19 21:34:42 · 931 阅读 · 0 评论 -
ansible使用之——网络设备自动巡检
ansible网络设备自动巡检前言环境搭建过程演练结果验证前言一般中大型公司需要对网络设备进行定期巡检,当设备量比较大且巡检指标较多的时候,该项工作往往费时费力,同时如果完全采用人工巡检的话,还容易出现人为因素上的失误。通过ansible工具对网络设备进行自动化巡检,可以提高工作效率并且降低人为因素的失误。本博客以ansible自动巡检华为ensp模拟设备,通过检查设备“是否开启snmp配置”为例,讲解网络设备高效巡检过程,相关输入参数如下:ansible版本: 2.8.1设备厂商: 华为路由器原创 2021-10-24 22:00:51 · 4650 阅读 · 2 评论 -
docker安装部署ansible并打包
docker安装部署ansible并打包前言部署过程效果展示前言ansible作为一个高效的自动化运维管理工具,在管理服务器和网络设备上有着明显的优势,但是ansible需要在主控端安装相关应用,而ansible在安装的过程中可能会存在一些版本上以及依赖上的问题导致安装失败,尤其在安装指定版本ansible时,这时候如果可以将ansible安装在docker容器中并打包成镜像,便可被多个不同的操作系统环境中使用。部署过程安装docker参考我的另外一篇博客《docker学习之——离线下安装部原创 2021-10-24 21:01:15 · 5673 阅读 · 0 评论 -
ansible自动批量配置之——下发华为路由器snmp
snmp权限自动配置下发前言配置过程效果展示前言当网络设备规模较大的时候,要配置下发多台设备如果采用人工配置的话,除了工作量较大以外,还可能增加人为犯错的可能性,如果有一个可以自动批量对网络设备下发的工具,不仅可以提高整理工作效率,还可以降低人为上的配置犯错。本博文以ansible自动批量下发多台华为设备开通snmp只读权限为用例,讲解ansible批量操作国产设备过程,由于篇幅有限,可能存在不严谨的地方,欢迎指正。ansible版本: 2.8.1设备厂商: 华为网络拓扑图:下发操作之原创 2021-10-01 15:22:00 · 1607 阅读 · 0 评论 -
ansible使用之——国产设备适配
ansible国产设备适配前言适配过程验证效果前言ansible是美国redhat公司研发的一款开源的自动化运维工具,可以非常高效且可靠的实现对被控制端(服务器、网络设备等被控制节点)进行运维工作。然而,也同样由于此,其对国产设备表现出来的友好性并不是那么足够,庆幸的是ansible预留了对其他设备的适配接口,可以通过这些接口是ansible能够支持原本并不支持的设备。默认情况下,ansible底层使用ssh对网络设备进行操作控制,在某些情况下,还可以通过配置的方式使ansible采用其他的协议(例原创 2021-10-01 12:21:44 · 1651 阅读 · 0 评论 -
CentOS安装指定版本应用(ansible)
浏览器访问https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/可以获取所有ansible版本的连接复制链接,执行安装命令即可,例如:yum install https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.8.1-1.el7.ans.noarch.rpmPS: 确保服务器可以连接外网,若执行失败,可先执行yum install原创 2021-05-14 18:35:36 · 2131 阅读 · 0 评论 -
ansible运维学习笔记——ansible获取时间
获取所有日期属性---- hosts: all vars: ansible_connection: local tasks: - name: show debug vars: ansible_connection: local debug: msg: "{{ansible_date_time}}"获取当前日期---- hosts: all vars: ansible_connection: loca原创 2021-04-16 10:40:14 · 5380 阅读 · 2 评论 -
python日常记录之——Python内置进制转换函数
hex()转换一个整数对象为十六进制的字符串>>> hex(10)'0xa'>>> hex(16)'0x10'>>> hex(512)'0x200'oct()转换一个整数对象为八进制的字符串>>> oct(10)'0o12'>>> oct(20)'0o24'>>> bin()转换一个整数对象为二进制字符串>>> bin(10)'0b原创 2021-02-28 00:50:52 · 194 阅读 · 0 评论 -
Centos运维之——开机自动运行
有时候部分应用或命令需要开机自动运行,需要在某文件下配置对应内容使其开机自动运行具体操作编辑/etc/rc.d/rc.local文件,在其最后添加要开机自动运行的命令或脚本vim /etc/rc.d/rc.local给/etc/rc.d/rc.local文件添加执行权限chmod +x /etc/rc.d/rc.local...原创 2021-02-24 16:35:30 · 273 阅读 · 0 评论 -
CentOS运维之——端口访问限制(不关闭防火墙)
有时为了不关闭防火墙,但是又想访问某端口。以开放redis端口为例iptables -I INPUT -p tcp --dport 6379 -j DROPiptables -I INPUT -s <server1-ip> -p tcp --dport 6379 -j ACCEPTiptables -I INPUT -s <server1-ip> -p tcp --dport 6379 -j ACCEPTiptables -I INPUT -s <serve.原创 2021-02-24 10:47:51 · 1179 阅读 · 0 评论 -
华为光功率模块监控SNMP OID
hwOpticalModuleInfoTable详细描述该表是描述了光模块一些基本信息。该MIB信息存储在光模块上的寄存器中。该表的索引是entPhysicalIndex。说明:1.3.6.1.4.1.2011.5.25.31.1.1.3.1.13、1.3.6.1.4.1.2011.5.25.31.1.1.3.1.14、1.3.6.1.4.1.2011.5.25.31.1.1.3.1.15、1.3.6.1.4.1.2011.5.25.31.1.1.3.1.16、1.3.6.1.4.1.20.原创 2021-02-20 10:44:01 · 3323 阅读 · 0 评论 -
python正则表达式笔记——匹配多行多段
场景分析使用python正则表达式提取某段中多行内容,例如:‘’’aaaa bbbb ccccxx abcdefgabcdefgabc yyabc abde adfdadfeljgslka lkdsjglsxx adgei ,fdasd yyadg asfgk ksdgadsa xxdga dgl yyalkdg‘’’提取被xx和yy包围的字段不使用compilewith open('./filename.txt', 'r') as f: content .原创 2021-02-18 11:00:44 · 2663 阅读 · 1 评论 -
借助docker进行高效的系统运维
前言Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker不同于虚拟机通过软件模拟机器的硬件来虚拟出一台计算机,docker是直接调用系统资源来使用,因此docker无论是在运行性能上还是在工作效率上,相对虚拟机有更大的优势。 背景目前华讯云网系统应用采用docker容器部署,但是在产品之外,例如很多客户...原创 2020-12-31 16:10:22 · 424 阅读 · 0 评论 -
arangodb数据库备份之——导出导入
执行如下脚本:# _*_ coding: utf-8 _*_import ospath = raw_input("请输入备份文件路径: ")ip = raw_input("请输入arangodb服务器ip: ")port = raw_input("请输入arangodb服务端口: ")username = raw_input("请输入arangodb数据库用户名: ")passwd = raw_input("请输入arangodb数据库用户密码: ")database = raw_input原创 2020-09-22 16:46:27 · 2033 阅读 · 0 评论 -
Arista EOS log level
Arista设备syslog告警等级• 0 -emergencies• 1 -alerts• 2 -critical• 3 -errors• 4 -warnings• 5 -notifications• 6 -informational• 7 -debugging原创 2020-09-03 13:58:42 · 255 阅读 · 0 评论 -
NetWork syslog level
很多网管软件都会根据syslog中的标识来识别网络设备的事件等级,一下为官网给出的F5设备日志对应的告警等级(从上往下依次为严重到一般):LevelsThe following levels are available for each facility, as described in the following table. The facilities are listed in order of the severity of the messages they handle. Gene.原创 2020-09-02 15:04:26 · 358 阅读 · 0 评论 -
Linux运维之——查看僵尸进程(死进程)
在shell下输入如下命令即可查看具体的僵尸进程名称以及id号ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'原创 2020-08-19 13:54:25 · 1570 阅读 · 0 评论 -
linux运维之——bash获取进程id
linux下获取进程id平时做linux运维时经常会用到查询应用进程id,一般情况下会使用ps -ef | grep <process-name>,然后在根据现实结果复制出对应的进程id并将其删除。其实可以使用如下命令直接过滤掉其他所有的信息值保留进idps -ef | grep <process-name> | grep -v grep | awk '{print $2}'例如:某场景下要杀掉某应用的进程,可以直接使用如下bash脚本,快速且便捷:pro_id=`ps原创 2020-07-30 11:01:16 · 1851 阅读 · 0 评论 -
elasticsearch安装部署的坑
由于操作系统的文件、进程和内存限制,导致elasticsearch部署后无法启动,需要在root用户下修改两个系统配置文件。修改/etc/security/limits.conf,在文件最后添加如下内存* hard nofile 131072* soft nofile 65536* hard nproc 4096* soft nproc原创 2020-06-02 10:51:17 · 352 阅读 · 0 评论 -
python包讲解之——csv包的读写
csv包读取csv文件数据import csvwith open('./input.csv', 'r') as f: reader = csv.reader(f) for line in reader: print line写入csv文件import csvdata_title = ['name', 'sex', 'age']data_list = [['name0', 'm', '20'],['name1', 'w', '21'],['name2', 'm', '22'],原创 2020-05-14 16:11:44 · 2723 阅读 · 0 评论 -
使用linux自带的tcpdump工具抓取对应端口的数据包
抓取udp协议某端口的流量tcpdump udp port 9996 | grep xxx.xxx.xxx.xxx抓取对应ip的包导出到对应文件(wireshark使用)tcpdump -nn host xxx.xxx.xxx.xxx -w file.data原创 2020-04-27 10:23:44 · 2471 阅读 · 0 评论 -
Linux下批量操作多个docker-compose
一般使用docker的系统都会将多个功能或者多个模块的代码部署在多个docker镜像中,如果要批量操作这些镜像,一个一个进入指定目录操作费时费力,而且容易出错,使用linux的高级命令可以大大提高工作效率和操作准确性。# 进入指定路径cd /<path>/# 过滤掉不需要操作的目录list=`ls | grep -v xxx | grep -v yyy`# 迭代执行for ...原创 2020-04-18 22:24:49 · 763 阅读 · 0 评论 -
nmap端口状态检测结果解析
nmap端口状态解析open : 应用程序在该端口接收 TCP 连接或者 UDP 报文。closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。filtered :由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。unfiltered :未被过滤状态意味...原创 2020-03-04 11:52:57 · 2570 阅读 · 0 评论 -
git文档——基础命令
命令集:以下是git的一些基本命令。git init #创建仓库git add <file> #添加文件git add -A # 添加所有改动git add * # 添加新建文件和修改,但是不包括删除git add . # 添加新建文件和修改,但是不包括删除git add -u # 添加修改和删除,但是不包括新建文件git commit ...原创 2020-02-25 20:59:21 · 496 阅读 · 0 评论 -
H3C设备常用命令
显示命令显示配置信息display current-configuration过滤配置信息display current-configuration | include xxxxx配置命令原创 2019-11-20 14:30:08 · 972 阅读 · 0 评论 -
Cisco rping vrf
rping一般用来检查网络设备之间链路的通信存活情况。查看vrf情况> show ip vrf interface检查链路是否连通> ping vrf <vrf-protocol> <dest-ip>原创 2019-11-08 17:40:59 · 1777 阅读 · 0 评论 -
Palo Alto Network mib
SNMP FOR MONITORING PALO ALTO NETWORKS DEVICESSNMPHARDWAREPAN-OSSymptomThe lists below shows useful OIDs from various MIBs for performing basic SNMP monitoring of the Palo Alto Networks devi...原创 2019-11-07 20:53:19 · 913 阅读 · 0 评论 -
python运行shell命令
python运行系统(Linux)命令的四种做法os.system示例:cmd = 'ls -l'os.system(cmd)os.system会在命令行上显示具体的命令结果os.popen有时我们需要获取到具体的命令输出结果进行处理,而os.system很难做到这种情况,因此我们需要使用os.popen,示例:import oscmd = 'ls -l'result ...原创 2019-10-26 18:27:44 · 335 阅读 · 0 评论 -
docker镜像更新自动化脚本
一般情况下,docker更新需要好几个步骤,乏味而且繁琐,一不小心还容易出错,如果写一个自动化的脚本直接执行,不仅效率可以大大提升,而且还可以避免出错,下面是我写的一个参考脚本。#! /usr/bin/python2.7import osimport reoutput_path = './python_update_log/'os.popen('mkdir -p ' % output...原创 2019-10-24 19:12:17 · 1266 阅读 · 0 评论 -
使用python实现ssh登陆——python验证远程机的ssh是否连通
使用python的paramiko包可以登陆远程机或网络设备(只要该机器支持ssh登陆),并对远程机进行shell命令操作,因此可以使用paramiko来验证远程机的ssh是否连通。具体代码示例如下:#! /usr/bin/pythonimport commandsimport threadpoolimport timeimport paramiko# config# thr...原创 2019-10-18 14:31:08 · 3868 阅读 · 0 评论 -
docker学习笔记之——从0开始学docker
基础命令下载镜像# 例如下载Ubuntu镜像(默认从配置好的远程仓库中下载,配置路径:/etc/docker/daemon.json,若无配置,默认从docker官网下载)$ docker pull ubuntu:18.04列出镜像$ docker image ls# 删除虚悬镜像$ docker image prune# 列出所有镜像(包括其他镜像的以来镜像)$ d...原创 2019-10-17 20:32:34 · 305 阅读 · 1 评论 -
python实现多线程发送网络请求——基础模板
python实现多线程基础模板python实现多线程的方式有很多种,其中有一种比较好用的是使用threadpool线程池,它可以使用多线程的方式自动调动线程任务,具体模板如下:import socketimport timeimport threadpoolsend_host = '192.168.211.20'send_port = 514sleep_sec = 1packag...原创 2019-10-16 13:50:25 · 1881 阅读 · 0 评论 -
nginx高级用法——nginx实现udp负载均衡
nginx是一个高效开源的代理转发组件,目前其应用领域已经非常广泛。尤其是其高效的实现消息的负载均衡功能受到众多企业的青睐。但是截至目前为止,其只能实现tcp的负载均衡,对于udp的负载均衡其无法使用upstream的check模块,进而无法监听转发端的存活性,从而导致即使有一个转发端down掉,nginx依旧会将信息转发给它,需要安装nginx-plus才能使用upstream的check模块,...原创 2019-10-16 11:33:21 · 6137 阅读 · 1 评论 -
CentOS7静态网络初始化配置与软件源的设置
CentOS7静态网络初始化配置修改文件/etc/sysconfig/network-scripts/ifcfg-ens33和文件/etc/sysconfig/network# vi /etc/sysconfig/network-scripts/ifcfg-ens33#static assignment NM_CONTROLLED=no #表示该接口将通过该配置文件进行设置,而...原创 2019-07-31 17:01:15 · 281 阅读 · 0 评论