首先得部署docker环境 --此处略过
docker pull elasticsearch:7.9.3(重点7.x开始不需要手动下载x-pack)
服务器参数调优
#1.===增大进程可打开的文件数======
vi /etc/security/limits.conf
#在文件末尾中增加下面内容
* soft nofile 65536
* hard nofile 65536
===增大进程可创建的线程数======
vim /etc/security/limits.conf
* soft nproc 10240
* hard nproc 20480
* 为所有用户名
#2.===最大虚拟内存太小====
vi /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p
#3.关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
一个是性能问题,开启swap会严重影响性能(包括内存和I/O);
另一个是管理问题,开启swap后通过cgroups设置的内存上限就会失效。
有的时候可用内存很多也会swap,这时候关闭是为了避免swap带来的性能问题。
es配置调优
#1.jvm堆内存调整
默认为1G启动
合肥云服务器有 46G 的内存,最好分配为总内存的50%,我这边给分配20G
es的config中的jvm.options修改堆内存大小
#2.elasticsearch.yml 配置调优
1.选举配置,都可以成master
2.配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)3台master候选节点,此处就算2 (最好master节点数为奇数)当只要一台存活集群会异常
3.开启跨域访问
4.集群安全认证配置
5.docker部署挂载本地目录
es集群 nginx+keepalived高可用负载均衡
对集群做了两台nginx负载均衡配置
配置为:
least_conn; #把请求转发给连接数较少的后端服务器
keepalived为高可用 vip地址,当一台服务器挂了,vip地址会飘到另外一台上
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbnRT6nD-1656298259825)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20220621103836430.png)]
我此处使用三台服务器进行部署
es-1: 10.254.0.186
es-2: 10.254.0.187
es-3: 10.254.0.188
http://10.254.1.151:9200/_cat/nodes?v
http://10.254.1.151:9200/_cat/health?v
http://10.254.1.151:9100/?auth_user=elastic&auth_password=geovis123
首先每台服务器创建需要docker挂载的文件夹
mkdir -p elasticsearch/{data,logs,config,plugins}
es-1配置在config下创建elasticsearch.yml
#集群名称
cluster.name: es-cluster
#节点名称
node.name: es-1
## 这个参数是用来同时设置bind_host和publish_host上面两个参数。访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,绑定这台机器的任何一个ip。
network.bind_host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 10.254.0.186
#访问端口
http.port: 9200
#集群通讯端口
transport.tcp.port: 9300
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#es7.x 之后新增的配置,节点发现
discovery.zen.ping.unicast.hosts: ["10.254.0.186:9300","10.254.0.187:9300","10.254.0.188:9300"]
# 配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)
# 3台master候选节点,此处就算2 (最好master节点数为奇数)
discovery.zen.minimum_master_nodes: 2
#master节点默认为es-1
cluster.initial_master_nodes: ["es-1"]
# 跨域
http.cors.enabled: true
#开启跨域访问后的地址限制,*表示无限制
http.cors.allow-origin: "*"
#允许head插件等访问的相关设置
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
#集群安全认证配置
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
es-2配置在config下创建elasticsearch.yml
cluster.name: es-cluster
node.name: es-2
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 10.254.0.187
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["10.254.0.186:9300","10.254.0.187:9300","10.254.0.188:9300"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: ["es-1"]
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
es-3配置在config下创建elasticsearch.yml
cluster.name: es-cluster
node.name: es-3
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 10.254.0.188
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["10.254.0.186:9300","10.254.0.187:9300","10.254.0.188:9300"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: ["es-1"]
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
设置ES的JVM占用内存参数
启动之前,设置ES的JVM占用内存参数,防止内存不足错误
config/jvm.options
默认情况下,ES启动JVM最小内存1G,最大内存1G
-Xms256m
-Xmx256m
一般设置为服务器内存一半比较合适
docker启动命令
docker run --name elasticsearch \
--restart=always \
-p 9200:9200 -p 9300:9300 \
-v /mnt/share/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mnt/share/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mnt/share/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /mnt/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.3
docker exec -it elasticsearch bash
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip
docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 --name head5 mobz/elasticsearch-head:5
页面访问
http://10.254.1.151:9100/?auth_user=elastic&auth_password=geovis123
访问页面
http://ip:9100/
docker pull kibana:7.9.3
mkdir -p kibana/config
vim kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://ip:9200","http://ip:9201","http://ip:9202" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
#elasticsearch.username: elastic
#elasticsearch.password: "geovis123"
#xpack.security.enabled: true
xpack.security.encryptionKey: "c77effba756146d382ebc79b279fd694"
i18n.locale: "zh-CN"
启动:
docker run -d --name kibana \
--restart=always \
-p 5601:5601 \
-v /mnt/share/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-d kibana:7.9.3
生成证书
放开elasticsearch.yml中的认证配置
docker exec -it elasticsearch bash
bin/elasticsearch-certutil ca 一路回车
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 一路回车
cd config
mkdir certs
将生成的两个文件移到certs下
chown elasticsearch elastic-certificates.p12
chomd 777 elastic-certificates.p12
这时将这个文件夹,cp到其他两个服务器docker中去
重启es
再进es
docker exec -it elasticsearch bash
执行如下命令需要一直设置密码,可以全部设置一样
bin/elasticsearch-setup-passwords interactive
打开上面kibana.yml的注释
elasticsearch.username: elastic
elasticsearch.password: "geovis123"
xpack.security.enabled: true
重启kibana
es-head访问方式
http://10.254.0.186:9100/?auth_user=elastic&auth_password=geovis123
docker pull docker.elastic.co/beats/metricbeat:7.9.3
cd /data
mkdir -p metricbeat/config
cd metricbeat/config
vim metricbeat.yml
配置如下
metricbeat.modules:
- module: system
period: 10s
metricsets:
- cpu
- load
- memory
- network
- process
- process_summary
#- core
#- diskio
#- socket
processes: ['.*']
process.include_top_n:
by_cpu: 5 # include top 5 processes by CPU
by_memory: 5 # include top 5 processes by memory
- module: system
period: 1m
metricsets:
- filesystem
- fsstat
processors:
- drop_event.when.regexp:
system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)'
- module: system
period: 15m
metricsets:
- uptime
# 直接发送elasticsearch
output.elasticsearch:
hosts: ["10.254.0.186:9200","10.254.0.187:9200","10.254.0.188:9200"]
username: "elastic"
password: "geovis123"
# 要加载仪表板,可以在metricbeat设置中启用仪表板加载。当仪表板加载被启用时,Metricbeat使用Kibana API来加载样本仪表板。只有当Metricbeat启动时,才会尝试仪表板加载。
# 设置kibana服务地址
setup.kibana:
host: "10.254.0.186:5601"
username: "elastic"
password: "geovis123"
# 加载默认的仪表盘样式
setup.dashboards.enabled: true
# 设置如果存在模板,则不覆盖原有模板
setup.template.overwrite: false
启动命令
docker run -d --name=metricbeat \
--privileged=true \
--user=root \
--volume="$(pwd)/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro" \
--volume="/run/docker.sock:/var/run/docker.sock:ro" \
--volume="/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro" \
--volume="/proc:/hostfs/proc:ro" \
--volume="/:/hostfs:ro" \
docker.elastic.co/beats/metricbeat:7.9.3
ubuntu系统部署nginx
安装依赖包
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
# Ubuntu14.04的仓库中没有发现openssl-dev,由下面openssl和libssl-dev替代
#apt-get install openssl openssl-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
/configure --prefix=/usr/local/nginx
make && make install
在nginx.conf中添加
include /usr/local/nginx/conf/conf.d/*.conf;
在nginx conf下创建 conf.d
在conf.d下创建 es.conf
配置如下:
upstream es{
least_conn; #把请求转发给连接数较少的后端服务器
server 10.254.0.186:9200;
server 10.254.0.187:9200;
server 10.254.0.188:9200;
}
server {
listen 9400;
server_name localhost;
underscores_in_headers on;
location / {
proxy_set_header Host $host:$server_port;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://es;
}
}
重载nginx ./nginx -s reload
centos版本不做介绍 下载tar包解压后进行操作,下面主要介绍ubuntu系统
apt-cache madison keepalived
apt -y install keepalived
cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
keepalived.conf配置如下
master节点配置
#全局配置:
global_defs {
router_id es-1 ## 标识本节点的字条串,通常为 hostname
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
#VRRP实例配置
vrrp_instance VI_1 {
state MASTER ## 主节点为 MASTER, 对应的备份节点为 BACKUP
interface enp1s0 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同, 我的是 enp1s0
virtual_router_id 33 ## 虚拟路由的 ID 号, 两个节点设置必须一样, 可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
mcast_src_ip 10.254.0.186 ## 本机 IP 地址
priority 100 ## 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高
nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样, 默认 1s
## 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111 ## 真实生产,按需求对应该过来
}
## 将 track_script 块加入 instance 配置块
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
# 虚拟 IP 池, 两个节点设置必须一样
virtual_ipaddress {
10.254.0.20 ## 虚拟 ip,可以定义多个
}
}
backup节点配置
global_defs {
router_id es-2 ## 标识本节点的字条串,通常为 hostname
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
#VRRP实例配置
vrrp_instance VI_1 {
state BACKUP ## 主节点为 MASTER, 对应的备份节点为 BACKUP
interface enp1s0 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同, 我的是 enp1s0
virtual_router_id 33 ## 虚拟路由的 ID 号, 两个节点设置必须一样, 可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
mcast_src_ip 10.254.0.187 ## 本机 IP 地址
priority 90 ## 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高
nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样, 默认 1s
## 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111 ## 真实生产,按需求对应该过来
}
## 将 track_script 块加入 instance 配置块
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
# 虚拟 IP 池, 两个节点设置必须一样
virtual_ipaddress {
10.254.0.20 ## 虚拟 ip,可以定义多个
}
}
systemctl start keepalived 启动即可
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear