
运维常用
文章平均质量分 53
乱弹世界
向上的路并不难走,因为更多的人选择安逸
展开
-
定时清理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 评论 -
NodePort vs LoadBalancer vs Ingress
前言在上一篇《Kubernetes网络三部曲~Service网络》中,介绍了K8s的4层网络栈中的第2层Service网路。有了Service网络,K8s集群内的应用可以通过服务名/ClusterIP进行统一寻址和访问,而不需要关心应用集群中到底有多少个Pods,Pod的IP是什么,会不会变化,以及如何以负载均衡方式去访问等问题。但是,K8s的Service网络只是一个集群内部网络,集群外部是无法直接访问的。而我们发布的应用,有些是需要暴露出去,要让外网甚至公网能够访问的,这样才能对外输出业务价值。K8s转载 2022-04-03 23:15:03 · 956 阅读 · 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 评论 -
网络长连接和短连接
什么是长连接和短连接左边是短连接,右边是长连接。我们会看到短连接为每一次的数据传输准备了一个传输通道,比如客户端向服务端要传送数据的时候,它会先建立连接,然后传递数据,最后关闭连接。当要传递第 2 份数据的时候,又要重复这个过程。所以短连接就是在每一次传输数据前,建立一次连接的通道。长连接则是建立了一条可以连接通道,并一直保持,每一次传输数据时会复用同一条连接通道。建立长连接的前提第 1 个是客户端使用长连接方式请求第 2 个是服务端需要支持长连接。keepalive_timeout 控制着转载 2021-09-30 15:25:54 · 3791 阅读 · 0 评论 -
Python检测UDP端口是否正常通信
通过python脚本构建客户端,向服务器发送hello的UDP包,然后在跑客户端的机器上tcpdump抓包查看是否能正常收到UDP回包,即可判断UDP服务是否正常。# -*- coding:utf-8 -*-#!/usr/bin/pythonimport sysimport osimport socketimport threadingfrom threading import _Timerimport datetimeimport timeimport selecttotal.原创 2021-08-25 15:26:41 · 2743 阅读 · 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 评论 -
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 评论 -
kubeadm部署安装k8s集群
Kubernetes组件介绍k8s master包含的三大组件kube-apiserver,是整个 Kubernetes 集群的“灵魂”,是信息的汇聚中枢,提供了所有内部和外部的 API 请求操作的唯一入口。同时也负责整个集群的认证、授权、访问控制、服务发现等能力。Kube-Controller-Manager,负责维护整个 Kubernetes 集群的状态,比如多副本创建、滚动更新等。Kube-controller-manager 并不是一个单一组件,内部包含了一组资源控制器,在启动的时候,会通过原创 2020-12-18 10:57:29 · 2764 阅读 · 1 评论 -
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 评论 -
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 评论 -
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 评论 -
python脚本-mysql监控指标
python写的监控mysql各项指标的脚本:#!/usr/bin/env python#! coding:utf-8import pymysqlimport socketmyname = socket.getfqdn(socket.gethostname())class DBMonitor(): def __init__(self, db_host, db_user, ...原创 2019-08-16 15:40:23 · 715 阅读 · 0 评论 -
一款新游戏上线流程中,运维需要注意的事项
一款新游戏上线流程中,运维需要做的事情往大了讲,其实没有多少,无非就是前期和开发讨论合适的架构,准备测试环境和正式环境各种资源等,后期为游戏的稳定运行保驾护航。但是往小了看,事情其实复杂繁多,这里做一个简单的记录。IDC需要关注的地方:服务器和网络设备机房和带宽网络设备监控服务器部署需要关注的地方:ulimit虚拟内存日志切割服务开机自启动服务器的基础监控事项:CP...原创 2019-08-16 15:32:19 · 1822 阅读 · 0 评论 -
CentOS7 真正的Failed to start LSB: Bring up/down解决方法
安装完centos7之后,配置好网络,重启网卡有报错:解决办法:systemctl stop NetworkManagersystemctl disable NetworkManager网卡配置中NM_CONTROLLED=nosystemctl restart network结果还是提示上面截图报错,因为服务器只配置了内网ip,于是打算使用ifdown和ifup来手动重启内网网...原创 2019-08-15 20:50:13 · 18336 阅读 · 3 评论 -
Linux服务器实现Google Authenticator和ssh双认证
现在的服务器(一般是堡垒机)为了保证安全,通常会采用双认证+防火墙的形式。双身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统。双认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时原创 2018-01-16 16:47:59 · 1593 阅读 · 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 评论 -
mysql安装和主从搭建
主库: CentOS 6.2上MySQL安装:yum -y install mysql mysql-server mysql-devel mysql-libs安装完MySQL,更改配置/etc/my.cnf:[mysqld]datadir=/data/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlport=3306# ...原创 2018-03-13 18:22:17 · 355 阅读 · 0 评论 -
超强、超详细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 评论 -
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 评论 -
shell实现队列控制并发执行脚本
在工作中,个人需要用到统计数据的脚本,比如对批量文件过滤关键字进行统计等等,这种需求很常见。默认的shell脚本是串行的,当有大量文件的时候,要进行循环一个个的过滤出来,这个过程需要比较久,效率也比较低。通过查找资料,对脚本进行调整,实现并发执行,具体如下:#!/bin/bashdateDIR=/test/log/FILE_NAME=65535_`date +"%Y%m%d"`;...转载 2018-07-31 17:46:05 · 2814 阅读 · 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 评论 -
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 评论 -
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 评论 -
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 评论 -
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 配置文件设置最大链接数 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 评论 -
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 评论 -
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 评论