
运维之道
收集了运维打怪升级过程中遇到的艰难险阻和有趣故事
乱弹世界
向上的路并不难走,因为更多的人选择安逸
展开
-
定时清理elasticsearch索引和数据
业务中由于索引是按照时间自动创建的,所以需要定时任务来清理这些索引和数据#!/bin/bashclean_log="/data/elk/tools/es_index.log"pre_deltime=5live_deltime=30#不同环境索引关键字不一样pre_indexs=`curl --user test:test123 -s "10.0.0.1:9200/_cat/indices?v" |awk '{print $3}' |grep "pre"`live_indexs=`curl原创 2022-05-14 11:41:46 · 2645 阅读 · 0 评论 -
rocketmq 集群部署
架构图部署环境hostnameip备注mqnamesrv110.0.0.1namesrvmqnamesrv210.0.0.2namesrvmqbroker310.0.0.3broker-master-amqbroker410.0.0.4broker-master-bmqbroker510.0.0.5broker-slave-amqbroker610.0.0.6broker-slave-b系统初始化内核参数、防火墙等进行原创 2022-05-11 11:19:56 · 3177 阅读 · 2 评论 -
kubernetes深入理解
原创 2022-02-23 17:45:37 · 236 阅读 · 0 评论 -
Redis6.2安装部署
redis编译安装,以6.2.2版本为例#redis6.2.2 in centos 7.2wget http://download.redis.io/releases/redis-6.2.2.tar.gztar -xvf redis-6.2.2.tar.gz && cd redis-6.2.2make distcleanyum install tcl -yyum install systemd-devel -ymake USE_SYSTEMD=yesmake testg.原创 2022-02-18 10:37:18 · 1186 阅读 · 0 评论 -
Elasticsearch报错out of range of long完整解决流程
定位问题业务侧的数据类型是uint64位,通过filebeat传输到logstash,然后输出到elasticsearch。运营QA等人员在kibana上查数据发现会有丢失查不到的情况发现es的日志有大量的报错如下:Caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (18446744073709551615) out of range of long (-9223372036854775808 - 92原创 2022-01-21 16:09:17 · 3141 阅读 · 0 评论 -
docker防火墙管理
docker环境容器业务,新增docker网卡,所以防护策略有所变化(1,执行iptables-save > /etc/sysconfig/iptables保存现有的防护规则(2,增删改查规则直接在/etc/sysconfig/iptables进行调整,然后iptables-restore < /etc/sysconfig/iptables加载到现网(3,在rc.local启动配置里面添加iptables-restore < /etc/sysconfig/iptables,这样服务原创 2021-11-30 14:02:50 · 1608 阅读 · 0 评论 -
直播网站是怎么实现的
音频、视频采用 FFmpeg 将流媒体切片(编码),类似 m3u8 作为目录,切成多个视频 ts 文件再根据不同清晰度编码多个版本,来应对用户再不同网络环境情况直播动态 m3u8 文件,不断编码写入目录,并上传内容,再由流媒体服务器分发传输通常视频文件较大,所以传输需要压缩,播放需要解码一个直播网站通常会有下面 5 个部分组成:录制端:负责录制直播视频,用流的形式上传。计算集群:专门负责编码上传的流数据,然后进行压缩、转码、切片等工作。对象存储:存储原始视频和转码后的视频(相当于转载 2021-10-27 18:49:09 · 522 阅读 · 0 评论 -
网络长连接和短连接
什么是长连接和短连接左边是短连接,右边是长连接。我们会看到短连接为每一次的数据传输准备了一个传输通道,比如客户端向服务端要传送数据的时候,它会先建立连接,然后传递数据,最后关闭连接。当要传递第 2 份数据的时候,又要重复这个过程。所以短连接就是在每一次传输数据前,建立一次连接的通道。长连接则是建立了一条可以连接通道,并一直保持,每一次传输数据时会复用同一条连接通道。建立长连接的前提第 1 个是客户端使用长连接方式请求第 2 个是服务端需要支持长连接。keepalive_timeout 控制着转载 2021-09-30 15:25:54 · 3791 阅读 · 0 评论 -
centos6给dmesg内核日志增加时间
在centos6中,dmesg日志默认是不带时间戳的,这样系统出现了一些故障,很难去根据故障日志来判断发生的时间点,所以有必要给dmesg配置上时间戳。dmesg增加时间戳和转化时间戳的脚本centos_ver=$(rpm --eval '%{centos_ver}')if [[ ${centos_ver} == "6" ]]then#enable dmesg timestamp echo 1 > /sys/module/printk/parameters/time ..原创 2021-06-22 10:34:25 · 1281 阅读 · 0 评论 -
Centos7安装和配置supervisor
我们在服务器上经常会使用到supervisor来管理进程。supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。安装yum install -y python-setuptoolseasy_install supervisorecho_supervisord_conf > /etc/supervisord.confmkdir /etc/supervisor echo -e "[inclu原创 2021-04-22 16:41:59 · 236 阅读 · 0 评论 -
企业微信API&群机器人配置
我们公司用的企业微信,会把相关开发或者运维拉到一个群里,然后配置上一个群机器人,这样的话就可以用企业微信API来配置群机器人接收消息,把一些日常的服务器或者日志告警发送到对应的群。以下介绍两种常用的消息发送类型:文本类型和文件类型发送文本类型的消息文本消息示例{ "msgtype": "text", "text": { "content": "广州今日天气:29度,大部分多云,降雨概率:60%", "mentioned_list":["wangqi原创 2021-03-12 10:39:54 · 5869 阅读 · 3 评论 -
Centos下利用lm_sensors监控服务器CPU温度
centos6.5下添加lm_sensor监控cpu温度关于服务器基础监控这块,需要加上对CPU温度的监控,这样可以在机房温度有异常或者是服务器CPU负载较高温度上升的情况下,可以及早发现问题。因为centos官方对6.5的yum源不做支持,所以采用腾讯的进行更新和安装#如果是centos7就不用这一步更新yum源了wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_bas原创 2020-12-21 15:46:49 · 2207 阅读 · 0 评论 -
Docker监控:cAdvisor的安装和使用
Docker容器的监控方案有很多,除了Docker自带的docker stats命令,还有其他的开源解决方案,例如sysdig、cAdvisor、Prometheus等,都是常用的监控工具。这里主要介绍一下cAdvisor的安装和使用。cAdvisor是谷歌开源的一款通用容器监控工具。它不仅可以采集机器上所有运行的容器信息,还提供了基础的查询界面和HTTP接口,更方便与外部系统结合。所以cAdvisor很快成了容器指标监控的最常用组件,并且Kubernetes也集成了cAdvisor作为容器监控指标的.原创 2020-11-20 14:42:05 · 1875 阅读 · 3 评论 -
Linux网卡速率监控脚本
在运维工作中,要对每一台服务器的网卡速率进行监控。但是如果项目很多,网卡取名规则不统一,就会导致不管zabbix还是其他的监控系统,对网卡的抓取都不能很精准和方便。所以自己写了一个获取网卡脚本,并且对速率进行监控。#!/bin/bashnets=()results=()#get the network cardfor dir in `cd /sys/class/net/ && ls`;do if [ `grep "up" /sys/class/net/$dir/oper原创 2020-11-18 14:13:42 · 629 阅读 · 0 评论 -
磁盘测试和带宽测试工具
磁盘测试工具安装工具和测试脚本yum -y install fio iperf3echo "随机写"fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=2G -group_reporting -name=mytestecho "顺序写"fio -filename=/data/testfile -direct=1 -iodepth 1 -thre原创 2020-11-05 15:35:34 · 332 阅读 · 2 评论 -
Linux查看Buffer&Cache被哪些进程占用
Buffer和CacheBuffer 是缓冲区,而 Cache 是缓存,两者都是数据在内存中的临时存储。Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。从读的角度来说,既可以加速读取那些需要频繁访问的数据,也降低了频繁 I/O 对磁盘的压力。如何查看Buffer&Cache使用率高的进程有哪些推荐一个工具hc原创 2020-10-14 17:16:14 · 21341 阅读 · 0 评论 -
centos6.2 安装virtualenv 来隔离python2 和python3 以及部署Django
下载Python-3.6.0 https://download.youkuaiyun.com/download/linxi7/10328013安装软件yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel xz gcc zlib zlib-devel安装解压Pytho...原创 2018-04-04 19:23:10 · 349 阅读 · 0 评论 -
linux 系统 UDP 丢包问题分析思路
序言最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。首先网络报文通过物理网线发送到网卡网络驱动程序会把网络中的报文读出来放到 ring buffer 中,这个过程使用 DMA(Direct Memory Access),不需要 CPU 参与内核从 ring buffer 中读取报文进行处理,执行 IP 和 TCP/UDP 层的逻辑,最后把报文放到应用程序的 socket转载 2020-10-13 11:13:15 · 1244 阅读 · 0 评论 -
系统内存还有很多的情况下为何swap使用很高了
Swap是什么Swap就是把一块磁盘空间或者一个本地文件,当成内存来使用。换出,就是把进程暂时不用的内存数据存储到磁盘中换入,就是在进程再次访问这些内存的时候,从磁盘中读取到内存Swap其实是把系统的可用内存变大了,这样即使服务器的内存不足,也可以腾出空间来运行大内存的应用程序。既然Swap是为了回收内存,那么Linux会在什么时候需要回收内存呢?它又是怎么来衡量内存是不是紧张或者压力大呢?内存回收是什么?内存回收是子系统释放掉可以回收的内存缓存和缓冲区,他们在内存管理中,叫做文件页原创 2020-10-10 16:46:46 · 9939 阅读 · 2 评论 -
CMDB批量操作给Linux服务器改hostname
现在的服务器维护,大部分是用CMDB操作了,在使用CMDB批量改名的过程中,需要找到对应服务器的ip和相对应的hostname,然后进行hostname设置,以下是我经常使用的一个小脚本:#!/usr/bin/env python#-*- codinig: UTF-8 -*-import osimport subprocessimport socketips = '''10.0....原创 2020-04-20 15:26:52 · 275 阅读 · 0 评论 -
influxdb+grafana监控网络情况
日常的服务器监控中,网络监控是必不可少的,而influxdb+grafana是我在工作中经常用到的,接下来做个部署流程记录,以下服务器基于centos7:1.安装influxdb下载安装包进行yum本地安装#wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm #yum localinstal...原创 2019-11-19 16:54:33 · 2267 阅读 · 0 评论 -
ELK部署安装以及配置
发现了一篇不错的关于ELK安装部署的文章,这里做个记录。一、什么是ELKELK是Elasticsearch + Logstash + Kibana 这种架构的简写。这是一种日志分平台析的架构。从前我们用shell三剑客(grep, sed, awk)来分析日志, 虽然也能对付大多数场景,但当日志量大,分析频繁,并且使用者可能不会shell三剑客的情况下, 配置方便,使用简单,并且分析结果更加直...转载 2019-07-30 17:00:17 · 9502 阅读 · 0 评论 -
nginx根据post请求参数做转发
在工作中遇到了根据post请求做转发的需求,决定使用nginx来完成。1.源码安装nginx,带上form-input-nginx模块wget http://nginx.org/download/nginx-1.16.0.tar.gztar -zxvf nginx-1.16.0.tar.gz cd nginx-1.16.0/git clone http://github.com/simp...原创 2019-07-23 09:16:22 · 17135 阅读 · 0 评论 -
mysql 配置文件设置最大链接数 max_connections不生效
mysql5.71、临时设置最大链接数为1000,重启mysql后 会变成默认值151.mysql -uuser -ppassword(命令行登录MySQL)mysql>show variables like ‘max_connections’;(查可以看当前的最大连接数)msyql>set global max_connections=1000;(设置最大连接数为1000,可...转载 2019-06-19 12:41:01 · 7490 阅读 · 1 评论 -
redis sentinel主从切换
sentinel(哨兵)进程是用来监控master redis的,如果主master出现故障,并且符合sentinel设定的切换条件,那么sentinel就会自动的切换主从关系。老的主从配置master redis配置bind 0.0.0.0 //绑定IP地址,可以通过ifconfig 获取Ip地址protected-mode yesport 6379tcp-backlog 511...原创 2019-05-24 16:50:49 · 1654 阅读 · 0 评论 -
Mysql主从切换为从主
mysql主从关系中,如果master宕机了,则要提升slave为主,等原来的主库恢复之后,则要把老的主库变为从库,这样才能尽最大可能的保证应用层面的业务高可用性和数据的完整性。## mysql主从切换为从主:从库变主库old slave: show processlist;# 确保Slave has read all relay log;STOP SLAVE IO_T...原创 2019-03-27 16:17:01 · 3129 阅读 · 0 评论 -
centos6系统HAproxy编译安装
一. Linux编译安装haproxy部署前说明:(1)系统版本: centos 6.6(64位)(2)相关中间件信息haproxy版本信息: haproxy-1.5.15编译安装haproxy1.1 到haproxy官网下载haproxy源码包如下cd ~wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.15.tar...转载 2019-02-21 14:26:07 · 873 阅读 · 0 评论 -
CentOS6.x 安装 Docker 和 Docker Compose
本来,对于 CentOS 系列,Docker 官方要求要 CentOS7.0 及以上系统版本,但是有时候迫不得已,还是要在已有的 CentOS6.x 的系统上安装。比如我遇到的:要在一台已有的 CentOS6.5 的服务器上部署一个 Java 应用,该 Java 应用基于 Java8 和 Mysql5.6 开发,都用到了相应的特性。但是,已有的 CentOS6.5 上已经在跑着几个 PHP 和 ...转载 2018-11-19 18:47:46 · 492 阅读 · 0 评论 -
python多线程批量过滤文件关键字
基于上一篇博客中的问题,我尝试用python改成多进程运行:https://blog.youkuaiyun.com/linxi7/article/details/81317704#!/usr/bin/env pythonimport time, datetimeimport os, sys, commandsimport socketimport threadingOSS_DIR="/da...原创 2018-08-10 14:28:03 · 1060 阅读 · 0 评论 -
shell实现队列控制并发执行脚本
在工作中,个人需要用到统计数据的脚本,比如对批量文件过滤关键字进行统计等等,这种需求很常见。默认的shell脚本是串行的,当有大量文件的时候,要进行循环一个个的过滤出来,这个过程需要比较久,效率也比较低。通过查找资料,对脚本进行调整,实现并发执行,具体如下:#!/bin/bashdateDIR=/test/log/FILE_NAME=65535_`date +"%Y%m%d"`;...转载 2018-07-31 17:46:05 · 2814 阅读 · 0 评论 -
Centos升级jdk到1.8
1.下载jdk1.8 链接地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载成功之后放到 /usr/local/include 目录下并且解压 2.配置系统环境变量在/etc/profile文件末尾加入以下关于jdk1.8的配置: 这里有个地方需要注...原创 2018-06-30 16:56:28 · 10476 阅读 · 2 评论 -
超强、超详细Redis入门教程
转载自:http://www.h5min.cn/article/56448.htm这篇文章主要介绍了超强、超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下【本教程目录】1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.red...转载 2018-05-28 17:13:02 · 351 阅读 · 0 评论 -
Centos7上安装Redmine-3.4项目管理软件
1.安装系统包和部分软件包yum -y install patch make gcc gcc-c++ gcc-g77 flex* bison file yum -y install libtool libtool-libs libtool-ltdl-devel* autoconf kernel-devel automake libmcrypt* yum -y install lib原创 2018-01-31 14:25:13 · 6953 阅读 · 0 评论 -
Linux服务器实现Google Authenticator和ssh双认证
现在的服务器(一般是堡垒机)为了保证安全,通常会采用双认证+防火墙的形式。双身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统。双认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时原创 2018-01-16 16:47:59 · 1593 阅读 · 0 评论 -
CentOS7系统中关闭firewall,并使用iptables管理防火墙
在我们日常服务器管理中,经常会统一防火墙的管理形式,我们常用的是关闭iptables(centos6.X),使用脚本来管理防火墙。如果有的系统是centos7的话,就要同时关闭firewall防火墙了。 1.关闭系统默认的firewall防火墙systemctl stop firewalld.service 关闭防火墙systemctl disable firewalld.servic原创 2018-01-16 16:35:01 · 2181 阅读 · 0 评论