草庐IT

使用 Prometheus Pushgateway 推送监控指标

我们知道Prometheus采用的pull模式,但是某些网络场景下面(比如不在一个子网或者防火墙),Prometheus无法直接拉取监控指标数据,这个时候我们可能就需要一种能够主动push的模式了。而 Pushgateway 就是Prometheus生态中来解决这个问题的一个工具。但是Pushgateway也不是万能的,其本身也存在一些弊端:将多个节点数据汇总到pushgateway,如果pushgateway挂了,受影响范围更大Prometheus拉取状态up只针对pushgateway,无法做到对每个目标有效由于Pushgateway可以持久化推送给它的所有监控数据,所以即使你的监控已经下

运维必备,Linux服务器抓包工具 tcpdump 示例详解

您是否正在尝试捕获数据包以分析网络上的流量?也许您是一名服务器管理员,遇到了问题并想要监控网络上传输的数据。无论情况如何,tcpdumpLinux实用程序都是您所需要的。在本文中,我们将详细讨论tcpdump命令,以及一些有关如何在Linux系统上安装和使用tcpdump的指南。什么是tcpdump命令?Tcpdump是一个强大的网络监控工具,它允许用户有效地过滤网络上的数据包和流量。您可以获得有关TCP/IP和网络上传输的数据包的详细信息。Tcpdump是一个命令行实用程序,这意味着您可以在没有显示的Linux服务器上运行它。系统管理员还可以将tcpdump实用程序与cron集成,以便自动执

同事多线程使用不当导致OOM,被我怒怼了

事故描述老规矩,我们先看下事故过程:某日,从6点32分开始少量用户访问app时会出现首页访问异常,到7点20分首页服务大规模不可用,7点36分问题解决。整体经过事故的整个经过如下:6:58,发现报警,同时发现群里反馈首页出现网络繁忙,考虑到前几日晚上门店列表服务上线发布过,所以考虑回滚代码紧急处理问题。7:07,开始先后联系XXX查看解决问题。7:36,代码回滚完,服务恢复正常。事故根本原因事故代码模拟如下:publicstaticvoidtest()throwsInterruptedException,ExecutionException{Executorexecutor=Executors

如何在 RHEL 9 上创建本地 Yum/DNF 仓库

你好,技术兄弟,最近红帽发布了最新的操作系统RHEL9,RHEL9满足了混合云的所有要求。它可以安装在物理服务器、虚拟机和容器镜像中。当我们没有订阅的时候,想安装软件包来做实验,那么设置本地的Yum或DNF仓库将是很方便的。在本指南中,我们将介绍如何在RHEL9上使用DVD或ISO文件一步一步地创建本地Yum/DNF资源库。创建本地Yum/DNF资源库的先决条件:最小化安装RHEL9系统具有管理权限的sudo用户RHEL9DVD或ISO文件1)挂载RHEL9ISO文件或DVD我们假设RHEL9iso文件已经被复制到系统中。运行下面的挂载命令,将ISO文件挂载到 ​​/opt/repo​​ 文件

两小时 Elasticsearch 性能优化,直接把慢查询干团灭了……

​问题:慢查询搜索平台的公共集群,由于业务众多,对业务的es查询语法缺少约束,导致问题频发。业务可能写了一个巨大的查询直接把集群打挂掉,但是我们平台人力投入有限,也不可能一条条去审核业务的es查询语法,只能通过后置的手段去保证整个集群的稳定性,通过slowlog分析等,下图中cpu已经100%了。​昨天刚好手头有一点点时间,就想着能不能针对这些情况,把影响最坏的业务抓出来,进行一些改善,于是昨天花了2小时分析了一下,找到了一些共性的问题,可以通过平台来很好的改善这些情况。首先通过slowlog抓到一些耗时比较长的查询,例如下面这个索引的查询耗时基本都在300ms以上:{"from":0,"si

VictorialMetrics存储原理之索引存储格式

​​前文我们介绍了当插入数据的时候会先去添加索引数据​​,索引构建完成后又是如何去持久化数据的呢?保存的数据又是怎样的格式呢?本节我们将对此进行详细讲解。添加索引数据索引构建完成后会调用 AddItems​ 函数将索引添加到 Table 中去://lib/mergeset/table.go//AddItems添加指定的items到table中去func(tb*Table)AddItems(items[][]byte)error{iferr:=tb.rawItems.addItems(tb,items);err!=nil{returnfmt.Errorf("cannotinsertdataint

Kubernetes 网络插件 Calico 完全运维指南

适用范围本文档测试范围:概述Calico是一种开源网络和网络安全解决方案,适用于容器,虚拟机和基于主机的本机工作负载。Calico支持广泛的平台,包括Kubernetes,docker,OpenStack和裸机服务。Calico后端支持多种网络模式。BGP模式:将节点做为虚拟路由器通过BGP路由协议来实现集群内容器之间的网络访问。IPIP模式:在原有IP报文中封装一个新的IP报文,新的IP报文中将源地址IP和目的地址IP都修改为对端宿主机IP。cross-subnet:Calico-ipip模式和calico-bgp模式都有对应的局限性,对于一些主机跨子网而又无法使网络设备使用BGP的场景可以

CentOS7下使用Lsyncd实现文件实时同步

Lsyncd简单介绍Lsyncd 使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更改同步到远程文件系统。默认使用的同步方法是rsync。因此,Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会影响本地文件系统的性能。作为rsync的替代方案,Lsyncd还可以通过rsync+ssh推送更改。当文件或目录被重命名或移动到本地树中的新位置时,rsync+ssh允许更有效的同步。(相比之下,plainrsync通过删除旧文件然

VictorialMetrics源码分析之插入指标数据

为了调试方便,这里我们将VictorialMetrics代码使用Goland打开。每个组件的入口位于app//main.go,比如vmstorage组件的入口位于app/vmstorage/main.go:为了对VM整个流畅分析,我们可以直接在IDE中来启动这些组件。直接在vmstorage入口的main函数上点击Run'gobuildmain.go'即可启动该组件:通过日志记录可以看出vmstorage会在8401端口监听vmselect的连接请求,在8400端口监听vminsert的连接请求,其本身的服务会通过8482端口进行暴露。启动后会在根目录下面创建一个名为vmstorage-dat