Elastalert2 安装配置流程 - 代替 Elastalert

之前已经有 elastalert 的安装配置文档了,虽然经过了测试但是发现部分内置命令无法正常运行,并且不支持新版本 Kibana,代码仓库长时间没有更新,于是换用新版本的 elastalert2。 Requirements Elasticsearch 7.x 或 8.x,或 OpenSearch 1.x 或 2.x ISO8601 或 Unix timestamped 数据 Python 3.10,Require OpenSSL 1.1.1 或更新版本 pip 根据官方文档描述,需要升级 Python 环境到 3.10,OpenSSL 到 1.1.1。事实上在 Python 3.7 之后的版本,依赖的 OpenSSL 必须要是 1.1 或 1.0.2 之后的版本。 开始安装 Python 3.10 和 OpenSSL sudo yum -y groupinstall "Development tools" sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel make sudo yum install zlib* -y sudo yum install -y gcc gcc-c++ python-devel wget sudo yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz ./config --prefix=/usr/local/openssl shared zlib sudo make && make install mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/include/openssl /usr/include/openssl.bak ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/include/openssl echo /usr/local/openssl/lib >> /etc/ld.so.conf ldconfig -v openssl version wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz sudo ./configure --prefix=/usr/local/python3 --with-ssl=/usr/local/openssl sudo make && sudo make install && sudo make clean 安装完成可能会出现 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping 修改完善 需要修改 vim /tmp/softwarebak/Python-3.10.4/Modules/Setup,在末尾加入以下内容: _socket socketmodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: SSL=/usr/local/openssl _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto 重新编译安装 Python 安装 elastalert2 具体流程,请看官方文档

2022-10-13 · 1 min

OpenResty+Keepalived 组建高可用集群

OpenResty 是一个基于 Nginx 的 Web 平台,可以使用其 LuaJIT 引擎执行 Lua 指令码。由章亦春建立。2011 年之前,它最初由 淘宝网 赞助,2012 年至 2016 年主要由 Cloudflare 支援。自 2017 年起,主要得到 OpenResty 软体基金会和 OpenResty 公司的支援。OpenResty 旨在构建可延伸的 Web 应用、Web 服务和动态 Web 闸道器。OpenResty 的架构是基于几个 nginx 模组,这些模组已经被扩充,以便将 nginx 扩充为一个 web 应用服务器,处理大量的请求。 ...

2022-09-15 · 8 min

Grafana 日志聚合工具 Loki 搭建

Loki 是 Grafana Labs 团队最新的开源项目,是一个水平可扩展、高可用性、多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签,为 Prometheus 和 Kubernetes 用户做了相关优化。项目受 Prometheus 启发,类似于 Prometheus 的日志系统。 ...

2022-09-13 · 3 min

Shell 学习之 getopt 和 getopts

getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数。 getopts 是 Shell 内建命令,getopt 是一个独立外部工具 getopts 使用语法简单,getopt 使用语法较复杂 getopts 不支持长参数(如:--option),getopt 支持长参数 getopts 出现的目的是为了在不太复杂的场景代替 getopt 较快捷地执行参数分析工作 getopts 负责参数解析,可以方便地提取参数值,getopt 只负责按规则重新对参数进行排列,进一步解析需要自行编写代码处理 ...

2022-09-11 · 5 min

LVM 创建和扩容

LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制。LVM 将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。 ...

2022-08-14 · 4 min

Nginx 配置 SSL 证书、黑白名单

HTTP 协议由于其简单快速、占用资源少,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是互联网数据通信的基础,一直被用于网站服务器和浏览器之间进行数据传输。然而,HTTP 是明文协议,不会对数据进行任何方式的加密,在数据传输过程中存在明显安全隐患。 当黑客攻击并窃取了网站服务器和浏览器之间的传输报文时,可以直接读取传输的信息,造成网站或用户资料的泄露。因此,HTTP 不适用于敏感信息的传播,此时需要引入 HTTPS(超文本传输安全协议)。 HTTPS HTTPS(Hypertext Transfer Protocol Secure)是一种以计算机网络安全通信为目的的传输协议。它在 HTTP 基础上加入了 SSL/TLS 层,从而具备保护数据交换的隐私性、完整性和对网站服务器身份认证的功能。简单来说,HTTPS 就是安全版的 HTTP。 在 Nginx 服务器上安装证书 您可以将已签发的 SSL 证书安装到 Nginx 或 Tengine 服务器上。本文介绍如何下载 SSL 证书并在 Nginx 或 Tengine 服务器上完成配置。 编辑 Nginx 配置文件(nginx.conf),修改与证书相关的配置。 # 以下属性中,以 ssl 开头的属性表示与证书配置有关。 server { listen 443 ssl; # 配置 HTTPS 的默认访问端口为 443。 # 如果未在此处配置 HTTPS 的默认访问端口,可能会导致 Nginx 无法启动。 # 如果您使用 Nginx 1.15.0 及以上版本,请使用 listen 443 ssl 代替 listen 443 和 ssl on。 # 网上有些文档仍在使用 ssl on,该写法已被官方弃用。 server_name yourdomain; root html; index index.html index.htm; ssl_certificate cert/yourdomain.com.crt; # (服务器证书) ssl_certificate_key cert/yourdomain.com.key; # (私钥文件) ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 表示使用的加密套件类型。 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 表示支持的 TLS 协议版本,请根据实际安全策略评估是否启用 TLSv1.1。 ssl_prefer_server_ciphers on; location / { root html; # Web 网站程序存放目录。 index index.html index.htm; } } 设置 HTTP 请求自动跳转 HTTPS server { listen 80; server_name yourdomain; # 需将 yourdomain 替换为证书绑定的域名。 rewrite ^(.*)$ https://$host$1 permanent; # 将所有 HTTP 请求重定向到 HTTPS。 location / { index index.html index.htm; } } 或者可以这样 server { listen 80; server_name dev.wangsl.com; return 301 https://$server_name$request_uri; } 其他 Web 服务器或其他语言的实现方式此处不赘述。 记录一个 SSL 配置生成器 SSL Configuration Generator https://ssl-config.mozilla.org/ Nginx 的黑白名单 Nginx 提供了基于 IP 的简单访问控制功能。例如,若要禁止 1.2.3.4 这个 IP 地址访问服务器,可在配置文件中添加如下指令: ...

2022-07-12 · 3 min

Lsync+rsync 实现跨机器文件同步

Lsyncd 即 Live Syncing Daemon,它是开源的数据实时同步工具(后台进程),基于 inotify 和 rsync。Lsyncd 会密切监测本地服务器上的参照目录,当发现目录下有文件或目录变更后,立刻通知远程服务器,并通过 rsync 或 rsync+ssh 方式实现文件同步。这样做的好处就是,你可以利用 Lsyncd 搭建一个 VPS 同步镜像,应用场景例如 CDN 镜像、网站数据备份、网站搬家等等。 ...

2022-06-16 · 2 min

Alertmanager + Grafana 安装及配置服务

The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts. Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share beautiful dashboards with your team and foster a data driven culture. ...

2022-04-09 · 1 min

Elasticsearch+Kibana+X-pack 安装部署

“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。 ...

2022-03-12 · 4 min

用 Docker Compose 部署一套 Prometheus 监控系统

Prometheus 受启发于 Google 的 Borgmon 监控系统(相似的 Kubernetes 是从 Google 的 Borg 系统演变而来),从 2012 年开始由前 Google 工程师在 SoundCloud 以开源软件的形式进行研发,并且于 2015 年早期对外发布早期版本。2016 年 5 月继 Kubernetes 之后成为第二个正式加入 CNCF 基金会的项目,同年 6 月正式发布 1.0 版本。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配合。 ...

2021-12-20 · 1 min