当前位置: 首页 > news >正文

飞天使-elk搭建补充

文章目录

      • es 集群创建密码
      • kibana 配置文件以及和nginx配置
      • pm2 安装
      • 定期清理索引以及告警
      • logstash 配置
      • filebeat 配置文件
      • nginx 的日志索引

es 集群创建密码

参考这篇博文进行设置:https://juejin.cn/post/7079955586330132487
最后的效果
#curl -XGET 'http://127.0.0.1:9200/_cat/nodes?pretty' -u elastic:gfsdfdsfesfes
172.16.100.6 25 51 0 0.04 0.32 0.22 cdfhilmrstw * node-3
172.16.100.5 25 51 2 0.05 0.22 0.15 cdfhilmrstw - node-2
172.16.100.4 21 51 0 0.10 0.34 0.23 cdfhilmrstw - node-1es配置
cluster.name: k
node.name: node-1
path.data: /data/esdata
path.logs: /data/eslogs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.16.100.4", "172.16.100.5", "172.16.100.6"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
node.master: true
node.data: truexpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /data/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/elasticsearch/config/elastic-certificates.p12

kibana 配置文件以及和nginx配置

配置文件
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: 
server.basePath: "/elk"
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
["http://172.16.100.4:9200","http://172.16.100.5:9200","http://172.16.100.6:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "gLUAjdwadwadwwda"server {listen       80 ;listen 443 ssl http2;server_name  elkfront.xxx.com;if ($server_port ~ 80){rewrite ^  https://$host/elk$request_uri? permanent;}ssl_certificate  /server/key/xxx.com.crt;ssl_certificate_key /server/key/xxx.com.key;location / {rewrite ^/$ /elk redirect;}location /elk/ {proxy_pass http://127.0.0.1:5601;proxy_redirect off;proxy_set_header Host $host:9091;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;rewrite ^/elk/(.*)$ /$1 break;}
}

pm2 安装

centos7.9 版本 
以下是在 CentOS 7.9 上使用 nvm 安装 Node.js 的步骤:安装 nvm:bashCopy Codecurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash在终端中重新加载 shell 配置或打开一个新的终端窗口:bashCopy Codesource ~/.bashrc安装适用于您的系统的 Node.js 版本。例如,您可以尝试安装 v14.17.6:bashCopy Codenvm install v14.17.6使用 nvm 切换到安装的 Node.js 版本:bashCopy Codenvm use v14.17.6确认 Node.js 版本已切换成功:bashCopy Codenode -v现在,您应该能够使用较新版本的 Node.js,而不会出现与 glibc 版本不兼容的错误。npm install pm2 -gpm2 结合pm2 进行脚本控制
#cat logstash_main.sh 
#!/bin/bash
/data/logstash_main/bin/logstash -f /data/logstash_main/config/logstash.conf  >> /data/logs/logstash_main.log  2>&1pm2 start /data/scripts/logstash_main.shpm2 save 
pm2 startupredis 端口监控
*/5 * * * *  /bin/bash /importredis.sh >/dev/null 2>&1 &
#cat importredis.sh 
#!/bin/bash
gg=`netstat -an |grep ":6379" |awk '$1 == "tcp" && $NF == "LISTEN" {print $0}'|wc -l`
if [[ ${gg}x = "0x" ]];thensystemctl start redis  >/dev/null 2>&1 &
fi

定期清理索引以及告警

30 13 * * 7 sh /root/delete.sh >/dev/null 2>&1
delete.sh
curl -XDELETE 'http://127.0.0.1:9200/xx-jt*' -u elastic:gLcdsdfsdfesdfe告警部分
#cat http_status.py 
from datetime import datetime, timedelta
from elasticsearch import Elasticsearch
import sys
import requestsindex=sys.argv[1] #要查询的索引
http_code=sys.argv[2] #要统计的状态码
limit=int(sys.argv[3])def send_msg(status,count,index):  #上线通知功能token = "2104vfvdffvfdvsdfM" #chat_id = -73223443232 # 替换成你自己的chat_idtry:ret = requests.post(f'https://api.telegram.org/bot{token}/sendMessage', json={"chat_id": chat_id,"text": "ELK通知:\n状态码: {status} \n数量: {count} \n索引: {index}".format(status=status,count=count,index=index)},proxies=None)print(r.json())except:print("error")passes = Elasticsearch(['http://10.0.0.4:9200','http://10.0.0.5:9200','http://10.0.0.6:9200'],http_auth=('elastic', 'gLUAjIJfesfesfsef'),)
query = {"query": {"bool": {"filter": [{"range": {"@timestamp": {"gte": "now-5m", "lte": "now"}}},{"bool": {"should": [{"term": {"status": http_code}},#{"term": {"status": 502}},#j{"term": {"status": 503}},#{"term": {"status": 504}}],"minimum_should_match": 1}}]}}
}result = es.search(index=index, body=query)print(result['hits']['total'])
count=result['hits']['total'].get('value')
print(count)
if count>limit:print("出现异常记录\n")send_msg(http_code,count,index)  #上线通知功能定时计划任务 # xxxxx日志索引
*/1 * * * * python3 /data/shell/http_status.py xxxxx* 500 20
*/1 * * * * python3 /data/shell/http_status.py xxxxx* 502 20
*/1 * * * * python3 /data/shell/http_status.py xxxxx* 503 20
*/1 * * * * python3 /data/shell/http_status.py xxxxx* 504 20

logstash 配置

 jvm.options 配置
-Xms2g
-Xmx2g#cat logstash.conf 
input {# 从文件读取日志信息redis {host => "10.0.0.7"port => 6379password => "Rcfesfefesfesfes"  #如果没有密码不需要写这个参数key => "nginx1"data_type => "list"db => 0}}filter {json {source => "message"remove_field => ["beat","offset","tags","prospector"] #移除字段,不需要采集}date {match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #匹配timestamp字段target => "@timestamp"  #将匹配到的数据写到@timestamp字段中}
}output {if [filetype] == "a1_nginxjson" {elasticsearch {hosts => ["10.0.0.4:9200","10.0.0.5:9200","10.0.0.6:9200"]index => "jxxxxx1-%{+YYYY.MM.dd}"user => elasticpassword => 'gLUAjIJwnuHb1Rp21gWZ'}} else if [filetype] == "a2_nginxjson" {elasticsearch {hosts => ["10.0.0.4:9200","10.0.0.5:9200","10.0.0.6:9200"]index => "jxxxxx-%{+YYYY.MM.dd}"user => elasticpassword => 'fesfefesfadfsd'}} 
} 

filebeat 配置文件

#cat filebeat.yml 
filebeat.inputs:
- type: logenabled: truebackoff: "1s"tail_files: falsepaths:- /home/*.logfields:filetype: log_nginxjsonfields_under_root: true- type: logenabled: truebackoff: "1s"tail_files: falsepaths:- /usr/local/nginx/logs/*.logfields:filetype: a1_nginxjsonfields_under_root: trueoutput.redis:enabled: truehosts: ["10.0.0.7:6379"]password: Rcfesfefesfesfeskey: nginx1db: 0

nginx 的日志索引

        log_format mainJson'{"@timestamp":"$time_iso8601",''"host":"$hostname",''"server_ip":"$server_addr",''"http_x_forwarded_for":"$http_x_forwarded_for",''"domain":"$host",''"url":"$uri",''"referer":"$http_referer",''"args":"$args",''"upstreamtime":"$upstream_response_time",''"responsetime":"$request_time",''"request_method":"$request_method",''"status":"$status",''"size":"$body_bytes_sent",'#'"request_body":"$request_body",''"request_length":"$request_length",''"protocol":"$server_protocol",''"upstreamhost":"$upstream_addr",''"file_dir":"$request_filename",''"http_user_agent":"$http_user_agent",''"remote_addr":"$remote_addr",''"client_ip": "$remote_addr",''"request_uri":"$request_uri",''"request_completion":"$request_completion"''}';

参考网址:https://juejin.cn/post/7079955586330132487

相关文章:

飞天使-elk搭建补充

文章目录 es 集群创建密码kibana 配置文件以及和nginx配置pm2 安装定期清理索引以及告警logstash 配置filebeat 配置文件nginx 的日志索引 es 集群创建密码 参考这篇博文进行设置:https://juejin.cn/post/7079955586330132487 最后的效果 #curl -XGET http://127.0…...

YOLOv7+姿态估计Pose+tensort部署加速

YOLOv7-Pose YOLOv7是一种高效的目标检测算法,用于实时物体检测。姿态估计Pose是一种用于识别和跟踪人体关键点的技术。TensorRT是一个针对深度学习推理任务进行加速的高性能推理引擎。 将YOLOv7和姿态估计Pose与TensorRT结合可以实现快速而准确的目标检测和姿态估…...

Java数据结构 之 包装类简单认识泛类

生命不息,奋斗不止 目录 1. 什么是包装类? 1.1 装箱和拆箱 1.2 自动装箱和自动拆箱 2. 什么是泛型 3. 引出泛型 3.1 语法 4 泛型类的使用 4.1 语法 4.2 示例 4.3 类型推导(Type Inference) 5. 裸类型(Raw Type) (了解&#xff09…...

人工智能 - 人脸识别:发展历史、技术全解与实战

目录 一、人脸识别技术的发展历程早期探索:20世纪60至80年代技术价值点: 自动化与算法化:20世纪90年代技术价值点: 深度学习的革命:21世纪初至今技术价值点: 二、几何特征方法详解与实战几何特征方法的原理…...

多元排列熵 Multivariate Permutation Entropy

熵(Entropy) 信息论中熵的概念首次被香农提出,目的是寻找一种高效/无损地编码信息的方法:以编码后数据的平均长度来衡量高效性,平均长度越小越高效;同时还需满足“无损”的条件,即编码后不能有原始信息的丢失。这样&a…...

Windows安装MySQL8.2

Windows安装MySQL8.2 三种安装模式 默认自定义完整 本案例选择自定义 选择安装目录 勾选 Run MySQL Configurator 配置MYSQL 默认为开发者模式 在 Config Type 下拉列表中选择数据中心 设置 root 账号密码...

Windows下安全认证机制

NTLM(NT LAN Manager) NTLM协议是在Microsoft环境中使用的一种身份验证协议,它允许用户向服务器证明自己是谁(挑战(Chalenge)/响应(Response)认证机制),以便…...

(学习笔记)Xposed模块编写(一)

前提:需要已经安装Xposed Installer 1. 新建一个AS项目 并把MainActvity和activity_main.xml这两个文件删掉,然后在AndriodManifest.xml中去掉这个Activity的声明 2. 在settings.gralde文件中加上阿里云的仓库地址,否则Xposed依赖无法下载 m…...

SSM框架(五):Maven进阶

文章目录 一、分模块开发1.1 分模块开发的意义1.2 步骤 二、依赖管理2.1 依赖传递2.2 可选依赖和排除依赖 三、继承与聚合3.1 聚合3.2 继承3.3 聚合和继承区别 四、属性4.1 pom文件的依赖使用属性4.2 资源文件使用属性 五、多环境开发六、跳过测试七、私服7.1 下载与使用7.2 私…...

【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现

基于计算机视觉的摄像头测距技术 文章目录 基于计算机视觉的摄像头测距技术导读引入技术实现原理技术实现细节Python-opencv实现方案获取目标轮廓步骤 1:图像处理步骤 2:找到轮廓步骤完整代码 计算图像距离前置技术背景与原理步骤 1:定义距离…...

Java项目实战《苍穹外卖》 四、Swagger接口文档

以铜为镜,可以正衣冠;以人为镜,可以明得失;以史为镜,可以知兴替。 - - - 李世民 系列文章目录 苍穹外卖是黑马程序员2023年的Java实战项目,作为业余练手用,需要源码或者课程的可以找我&#xff…...

深度学习——第03章 Python程序设计语言(3.1 Python语言基础)

无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架,例如PyTorch、TensorFlow也都是基于Python。本课程主要是围绕“理论实战”同时进行,所以本章将重点介绍深度学习中Python的必备…...

【人工智能Ⅰ】实验6:回归预测实验

实验6 回归预测实验 一、实验目的 1:了解机器学习中数据集的常用划分方法以及划分比例,并学习数据集划分后训练集、验证集及测试集的作用。 2:了解降维方法和回归模型的应用。 二、实验要求 数据集(LUCAS.SOIL_corr-实验6数据…...

前端下载文件的方法-blob下载

前端经常会遇到下载文件的需求,后端一般提供的以下两种方法: 文件地址。后端直接提供要下载的文件地址,常用于图片、音视频等静态文件文件流。后端返回文件流,常用于excel等动态文件 一、a 标签下载 1、直接html使用a标签下载 …...

zookeeper+kafka+ELK+filebeat集群

目录 一、zookeeper概述: 1、zookeeper工作机制: 2、zookeeper主要作用: 3、zookeeper特性: 4、zookeeper的应用场景: 5、领导者和追随者:zookeeper的选举机制 二、zookeeper安装部署: 三…...

【LangChain实战】开源模型学习(2)-ChatGLM3

介绍 ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型&a…...

Python编程技巧 – 迭代器(Iterator)

Python编程技巧 – 迭代器(Iterator) By JacksonML Iterator(迭代器)是Python语言的核心概念之一。它常常与装饰器和生成器一道被人们提及,也是所有Python书籍需要涉及的部分。 本文简要介绍迭代器的功能以及实际的案例,希望对广大读者和学生有所帮助。…...

C语言练习题

C语言练习题 文章目录 C语言练习题题目一题目二题目三题目四题目五题目六题目八 题目一 #include <stdio.h> //VS2022,默认对齐数为8字节 union Un {short s[7];int n; };int main() {printf("%zd", sizeof(union Un));return 0; }代码运行结果:> 16 sizeo…...

常见的AI安全风险(数据投毒、后门攻击、对抗样本攻击、模型窃取攻击等)

文章目录 数据投毒&#xff08;Data Poisoning&#xff09;后门攻击&#xff08;Backdoor Attacks&#xff09;对抗样本攻击&#xff08;Adversarial Examples&#xff09;模型窃取攻击&#xff08;Model Extraction Attacks&#xff09;参考资料 数据投毒&#xff08;Data Poi…...

flutter开发实战-为ListView去除Android滑动波纹

flutter开发实战-为ListView去除Android滑动波纹 在之前的flutter聊天界面上&#xff0c;由于使用ScrollBehavior时候&#xff0c;当时忘记试试了&#xff0c;今天再试代码发现不对。这里重新记录一下为ListView去除Android滑动波纹的方式。 一、ScrollBehavior ScrollBehav…...

牛客在线编程(SQL大厂面试真题)

1.各个视频的平均完播率_牛客题霸_牛客网 ROP TABLE IF EXISTS tb_user_video_log, tb_video_info; CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 自增ID,uid INT NOT NULL COMMENT 用户ID,video_id INT NOT NULL COMMENT 视频ID,start_time d…...

ubuntu下快速搭建docker环境训练yolov5数据集

参考文档 yolov5-github yolov5-github-训练文档 csdn训练博客 一、配置环境 1.1 安装依赖包 前往清华源官方地址 选择适合自己的版本替换自己的源 # 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak # 修改源文件 # 更新 sudo apt update &&a…...

SpringMVC常用注解和用法总结

目标&#xff1a; 1. 熟悉使用SpringMVC中的常用注解 目录 前言 1. Controller 2. RestController 3. RequestMapping 4. RequestParam 5. PathVariable 6. SessionAttributes 7. CookieValue 前言 SpringMVC是一款用于构建基于Java的Web应用程序的框架&#xff0c;它通…...

webpack如何处理css

一、准备工作 新建目录 添加样式 .word {color: red; } index.js添加dom元素&#xff0c;添加一个css word import ./css/index.css;const div document.createElement("div"); div.innerText "hello word!!!"; div.className "word"; do…...

IELTS学习笔记_grammar_新东方

参考&#xff1a; 新东方 田静 语法 目录&#xff1a; 导学简单句… x.1 导学 学语法以应用为主。 基础为&#xff1a;单词&#xff0c;语法 进阶为&#xff1a;听说读写译&#xff0c;只考听说读写。 words -> chunks -> sentences, chunks&#xff08;语块的重要…...

【计算机组成原理】存储器知识

目录 1、存储器分类 1.1、按存储介质分类 1.2、按存取方式分类 1.3、按信息的可改写性分类 1.4、按信息的可保存性分类 1.5、按功能和存取速度分类 2、存储器技术指标 2.1、存储容量 2.2、存取速度 3、存储系统层次结构 4、主存的基本结构 5、主存中数据的存放 5.…...

vscode配置代码片段

1.ctrl shift p 然后选择 Snippets:Configure User Snippets &#xff08;配置用户代码片段&#xff09; 2.选择vue或者vue.json 3.下面为json内容 { “vue-template”: { “prefix”: “modal-table”, “body”: [ “”, " <a-modal v-model:visible“visible” wi…...

vite脚手架,手写实现配置动态生成路由

参考文档 vite的glob-import vue路由配置基本都是重复的代码&#xff0c;每次都写一遍挺难受&#xff0c;加个页面就带配置下路由 那就利用 vite 的 文件系统处理啊 先看实现效果 1. 考虑怎么约定路由&#xff0c;即一个文件夹下&#xff0c;又有组件&#xff0c;又有页面&am…...

解决浏览器缓存问题

1.index.html文件meta标签添加属性 <meta name"viewport" content"widthdevice-width,initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno" viewport-fitcover >2.提前main.html处理逻辑再跳转到index.html页 <script>…...

【数据中台】开源项目(2)-Davinci可视应用平台

1 平台介绍 Davinci 是一个 DVaaS&#xff08;Data Visualization as a Service&#xff09;平台解决方案&#xff0c;面向业务人员/数据工程师/数据分析师/数据科学家&#xff0c;致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立部署使用&#xff0c;也可作为…...