ubuntu 20.04安装fail2ban1.0.1


安装:由于ubuntu 20.04已经默认没有python2,所以不使用python2来安装fail2ban,改使用python3来安装。通过github下载fail2ban源码wget https://github.com/fail2ban/fail2ban/archive/refs/tags/1.0.1.tar.gz解压并进入目录tar xzf 1.0.1.tar.gz &&

Logstash修改@timestamp时间为日志的产生时间


背景在Logstash读取nginx日志的消息简要如下,可以看到这里的@timestamp和time中的时间戳不一致,那么我们可以修改@timestamp指定为time。{ "@timestamp" => 2022-07-21T07:12:40.806Z, "url" => "/index.php?m=message&

nginx-module-vts模块获取的缓存状态说明


通过nginx-module-vts模块中可以得到nginx的8种缓存状态,分别代表的作用说明如下:miss: 未命中的缓存数。响应在缓存中找不到,所以需要在服务器中取得。这个响应之后可能会被缓存起来。bypass: 绕过缓存旁路数。响应来自原始服务器而不是缓存,因为请求匹配了一个proxy_cache_bypass,这个响应之后可能会被缓存起来。expired: 过期的缓存数。缓存中的某一项过期

Nginx禁用TLS 1.0和TLS 1.1


背景传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999

Nginx安装Brotli压缩扩展


关于BrotliBrotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。与常见的通用压缩算法不同,Brotli使用一个预定义

Nginx支持http2.0


配置nginx要配置使用http2.0,方法也很简单,在nginx配置文件的server模块的listen里,加入http2即可使用http2.0。示例如下:server { listen 443 ssl http2; ssl_certificate server.crt; ssl_certificate_key server.key;}配置完后,需要运行nginx -t检查配置

Etcd的运行时重配置


运行时重配置etcd 被设计为能承受机器失败。etcd 集群自动从临时失败(例如,机器重启)中恢复,而且对于一个有 N 个成员的集群能容许 (N-1)/2 的持续失败。当一个成员持续失败时,不管是因为硬件失败或者磁盘损坏,它丢失到集群的访问。如果集群持续丢失超过 (N-1)/2 的成员,则它只能悲惨的失败,无可救药的失去法定人数(quorum)。一旦法定人数丢失,集群无法达到一致而因此无法继续接收

Etcd介绍


EtcdEtcd 是 CoreOS 基于 Raft 开发的分布式 key-value 存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。Etcd 主要功能基本的 key-value 存储监听机制key 的过期及续约机制,用于监控和服务发现原子 CAS 和 CAD,用于分布式锁和 leader 选举Etcd 基于 RAFT 的一致性选举方法初始启动时,节点处于 followe

删除 Elasticsearch 中指定日期前的数据


之前已搭建一个ELK+Filebeat 的集群,并收集了 Nginx 的日志信息。在 Elasticsearch 中索引的名字是:nginx-access-log-*,后面的*代表的是日期。假如,需要删除7天前的数据,可以执行通过以下方法:curl -u elastic:****** -H'Content-Type: application/json' -d'{ &qu

ELK集群设置账号密码认证


前提在几篇中搭建的 ELK+Filebeat 集群中,版本都是7.16.1,其中ElasticSearch 有两个节点。默认都是无密码登录,所有人都可以登录操作,安全考虑可以设置密码认证。6.2或更早版本需要安装X-PACK,新版本已包含在发行版中,所以可以直接在 ELK 上进行配置。1. Elas

Elasticsearch 单节点改集群,以及查看集群信息


前提:本文主要是将原来Elasticsearch 单节点改成两个节点组成的集群,以及查看集群信息。原来的node-1(192.168.1.240),准备部署的node-2(192.168.1.231)组成一个集群。Elasticsearch的 docker-compose.yml 内容如下:version: '3'services: elasticsearch:

Elasticsearch的RESTful API


接上一篇搭建文章中,nginx.conf 定义的log格式是: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer&qu

ELK+Filebeat 部署安装


ELK+Filebeat介绍ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称(但是后期出现的filebeat(beats中的一种)可以用来替代logstash的数据收集功能,比较轻量级)。市面上也被成为Elastic Stack。Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转

Prometheus监控PHP-FPM


环境PHP版本:7.3在docker里通过supervisor启动PHP步骤PHP-FPM端配置PHP-FPM开启status_path# vim /etc/php-fpm.d/www.confpm.status_path = /statusping.path = /pingNginx端配置监听9010端口server { listen 9010; location ~ ^/(stat

redis之Stream


Stream基本介绍从redis5.0开始,推出了Stream功能。在Stream中有一个消息链表,所有加入链表中的消息都会被串起来,每一条消息都有自己唯一的ID,还有对应的消息内容,消息内容就是key-value。一个Stream上可以有多个消费者,每个消费者都有一个游标,用于访问消息,在消息链表移动就代表着消费消息,多个消费者之间互不影响。基本命令XADD该命令用于添加消息,返回的是消息的ID

docker版mysql:5.7.34 免密码使用mysqldump备份


概述环境:docker数据库版本:mysql 5.7.34目的:每天定时把一个库的数据备份到本机里。容器名称:mysql备份目录:/data/backup由于mysqldump的时候会要求输入密码,无法做到自动备份。本案例通过docker的exec执行容器命令的方式创建login-path和实现自动备份。1.创建login-path创建方法如下:docker exec -it mysql mysq

gitlab runner 使用案例


接上文gitlab runner 配置说明本文以一个使用案例说明docker runner的使用1. 配置文件的大概说明因为gitlab使用的docker版本的:gitlab/gitlab-ce:12.10.14-ce.0,所以gitlab-runner采用docker的版本是:gitlab/gitlab-runner:v12.10.3。所以gitlab-runner的docker-compose

nginx 缓存状态查看


添加语句对于 nginx 的缓存是否命中,可以看得到吗?其实也是可以的。可以通过在 nginx 的配置文件里面增加一个add_header 参数就可以。关于add_header这个指令的说明,可以看ngx_http_headers_module模块的说明找到。Syntax:add_header name value [always];Default:—Context:http, server, l

搭建 adslproxy 代理池


adslproxy 代理池原理:本文采用 redis 做代理IP的存储。存储代理IP前,先使用 adslproxy 做重新拨号和代理IP可用性校验,可用后再保存到 redis 里。在进行重新拨号前,先删除这个原来保存的代理 IP,然后再重新进行拨号操作。然后使用的 adslproxy 搭建一个提取代理 IP 的工具,通过一个 web 接口给客户端使用的时候。客户端用的时候,直接读取这个 web 接

gitlab runner 配置说明


如何安装 runner?案例使用的都是 docker 部署,gitlab 使用的是gitlab/gitlab-ce:12.10.14-ce.0所以安装使用的gitlab runner版本是gitlab/gitlab-runner:v12.10.3。查看信息先在 gitlab 上查看添加 runner 时需要配置的 token(版本不一样,查看位置也会不同)。注册运行gitlab-runner re