Elasticsearch5版本配置文件详解

此文章主要讲解5.x版本的配置文件信息

elasticsearch.yml文件详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
[root@CentOS7_node1 ~]# cat /usr/local/elasticsearch-5.6.16/config/elasticsearch.yml
cluster.name: elasticsearch_dockerc
#ES集群名称,同一个集群内的所有节点集群名称必须保持一致

node.name: elasticsearch-node3
#当前节点名称,集群内的各个节点名称必须要唯一

node.master: true
#允许节点是否可以成为一个master节点,ES是默认集群中的第一台机器成为master,如果这台机器停止就会重新选举

node.data: true
#允许该节点存储索引数据(默认开启)

path.data: /data/dockerc/data1,/data/dockerc/data2,/data/dockerc/data3
#ES是搜索引擎,会创建文档,建立索引,此路径是索引的存放目录,如果我们的日志数据较为庞大,那么索引所占用的磁盘空间也是不可小觑的
#这个路径建议是专门的存储系统,如果不是存储系统,最好也要有冗余能力的磁盘,此目录还要对elasticsearch的运行用户有写入权限
#path可以指定多个存储位置,分散存储,有助于性能提升,以至于怎么分散存储请看详解https://www.dockerc.com/elk-theory-elasticsearch/

path.logs: /data/docker/logs
#elasticsearch专门的日志存储位置,生产环境中建议elasticsearch配置文件与elasticsearch日志分开存储

bootstrap.memory_lock: true
#在ES运行起来后锁定ES所能使用的堆内存大小,锁定内存大小一般为可用内存的一半左右;锁定内存后就不会使用交换分区
#如果不打开此项,当系统物理内存空间不足,ES将使用交换分区,ES如果使用交换分区,那么ES的性能将会变得很差

network.host: 10.211.55.10
#es绑定地址,支持IPv4及IPv6,默认绑定127.0.0.1;es的HTTP端口和集群通信端口就会监听在此地址上

network.tcp.no_delay: true
#是否启用tcp无延迟,true为启用tcp不延迟,默认为false启用tcp延迟

network.tcp.keep_alive: true
#是否启用TCP保持活动状态,默认为true

network.tcp.reuse_address: true
#是否应该重复使用地址。默认true,在Windows机器上默认为false

network.tcp.send_buffer_size: 64mb
#tcp发送缓冲区大小,默认不设置

network.tcp.receive_buffer_size: 64mb
#tcp接收缓冲区大小,默认不设置

transport.tcp.port: 9301
#设置集群节点通信的TCP端口,默认就是9300

transport.tcp.compress: true
#设置是否压缩TCP传输时的数据,默认为false

http.max_content_length: 100mb
#设置http请求内容的最大容量,默认是100mb

http.enabled: true
#使用http协议对外提供服务,默认为true,如果为false,则不会监听下面的http.port

http.port: 9201
#定义ES对外调用的http端口,默认是9200

discovery.zen.ping.unicast.hosts: ["10.211.55.7:9301", "10.211.55.8:9301", "10.211.55.9:9301"]
#我们规划ES集群中有好多台主机,我们在这里先把其它集群的主机名称写进入,等其它ES集群节点启动后,在本机中自动添加他们到此集群
#默认主机列表只有127.0.0.1和IPV6的本机回环地址
#上面是书写格式,discover意思为发现,zen是判定集群成员的协议,unicast是单播的意思,ES5.0版本之后只支持单播的方式来进行集群间的通信,hosts为主机
#总结下来就是:使用zen协议通过单播方式去发现集群成员主机,在此建议将所有成员的节点名称都写进来,这样就不用仅靠集群名称cluster.name来判别集群关系了

discovery.zen.minimum_master_nodes: 2
#为了避免脑裂,集群的最少节点数量为,集群的总节点数量除以2加一
#假如我们的总节点数量是4,那就那4除2加一;在此我们的节点数量为3,那么久那三除2然后加1为2.5,按道理来讲四舍五入,但是为了保险起见,我们写为2

discovery.zen.fd.ping_timeout: 90s
#探测超时时间,默认是3秒,我们这里填90秒是为了防止网络不好的时候ES集群发生脑裂现象

discovery.zen.fd.ping_retries: 6
#探测次数,如果每次探测90秒,连续探测超过六次,则认为节点该节点已脱离集群,默认为3次

discovery.zen.fd.ping_interval: 15s
#节点每隔15秒向master发送一次心跳,证明自己和master还存活,默认为1秒太频繁

cluster.routing.allocation.cluster_concurrent_rebalance: 16
#集群内同时启动的数据任务个数,默认是2个

cluster.routing.allocation.node_concurrent_recoveries: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认4个

cluster.routing.allocation.node_initial_primaries_recoveries: 16
#初始化数据恢复时,并发恢复线程的个数,默认4个
阅读全文

Elasticsearch-5.6.16.tar.gz版本安装配置

安装JDK1.8

下载链接:https://pan.baidu.com/s/1uvktlm-6AqhQKJQZR1nQuw
上传到机器

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@CentOS7_node1 src]# tar xf jdk-8u161-linux-x64.tar.gz  -C /usr/local/
[root@CentOS7_node1 src]# mv /usr/local/jdk1.8.0_161 /usr/local/java
[root@CentOS7_node1 src]# tail -5 /etc/profile
#################JAVA#################
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@CentOS7_node1 src]# source /etc/profile
[root@CentOS7_node1 src]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
阅读全文

elk5.5+kafka源码包部署

本文采用源码包安装elk5.5(单机版)

elasticsearch官方文档,请参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
logstash官方文档,请参考:https://www.elastic.co/guide/en/logstash/current/index.html
filebeat官方文档,请参考:https://www.elastic.co/guide/en/beats/filebeat/7.x/index.html
kafka官方文档,请参考:http://kafka.apache.org/21/documentation.html

下载相关部署包:

1
2
3
4
5
6
yum install -y wget
mkdir /export/install_packages && cd /export/install_packages
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
wget https://archive.apache.org/dist/kafka/2.3.0/kafka_2.12-2.3.0.tgz
阅读全文

Bind-DLZ + Django + Mysql DNS管理平台

系统环境:CentOS 7.6 X64

软件版本:

1
2
3
4
bind-9.11.6.tar.gz  
mysql-5.6.16.tar.gz
Python 3.6
Django 1.11.x

一.源码安装配置Bind:

1
2
3
4
5
6
yum -y install make gcc-c++ cmake bison-devel  ncurses-devel python-devel python-ply bind-utils
./configure --prefix=/usr/local/bind/ \
--with-dlz-mysql=/usr/local/mysql \
--enable-threads=no --enable-largefile \
--disable-ipv6 --with-openssl=no
make && make install

1.用户添加授权目录

1
2
3
4
5
6
mkdir -p /usr/local/bind/var/{logs,zones}
cd /usr/local/bind/etc/
/usr/local/bind/sbin/rndc-confgen > rndc.conf
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf
useradd -s /sbin/nologin named
chown -R named:named /usr/local/bind/
阅读全文

LVS性能优化及问题总结

一、LVS 性能调优的方法最佳实践
1、最小化安装编译系统内核
2、优化持久服务超时时间:

​ 1)显示超时时间
​ #ipvsadm -Ln –timeout
​ #Timeout (tcp tcpfin udp): 900 120 300
​ 2)配置为与自身应用贴近的超时时间
​ #ipvsadm –set tcp tcpfin udp
​ ipvsadm –set 900 60 300

3、增大ipvs模块hash table的大小

​ ipvs模块hash table默认值为2^12=4096,改为2^20=1048576。可以用ipvsadm -l命令查询当前hash table的大小。
​ IP Virtual Server version 1.2.1 (size=4096)
​ 修改方法:
​ 在/etc/modprobe.d/目录下添加文件ip_vs.conf,内容为:
​ options ip_vs conn_tab_bits=20
​ 重新加载ipvs模块。
​ IP Virtual Server version 1.2.1 (size=1048576)

4、文件句柄及进程数
1
2
3
4
5
vim /etc/security/limits.conf
* soft nofile 1024000
* hard nofile 1024000
* soft nproc 1024000
* hard nproc 1024000
阅读全文