Centos7安装 ELK (Elasticsearch + Logstash+ Kibana) 搭建数据分析系统

                                    ELK(elasticsearch + logstash+kibana首字母缩写) 是比较好用的数据分析系统

                                            (完整过程,并投入使用....待完善......)

  • ElasticSearch 集群发现机制:
  1. Azure Classic Discovery
  2. EC2 Discovery
  3. Google Compute Engine Discovery
  4. Zen Discovery

Zen discovery是elasticsearch默认的内部发现模块

# 设置节点之间交互的tcp端口,默认为9300

transport.tcp.port:  9300

节点发现:

单播方式(6.x.x默认只支持单播发现机制,不支持多播方式,以前的版本支持)

#设置集群中master节点的初始化列表,可以通过这些节点来自动发现新加入集群的节点(:冒号后有空格)

discovery.zen.ping.unicast.hosts:  [“node-1:9300”, ”node-2:9300”, ”node-3:9300”]

有其他节点依次加入即可

 

配置主节点和数据节点:

node.master:  false  #  每一个选项配置冒号后都有一个空格

node.data: true

 

node.master:  true   有资格成为主节点

node.data:  false

 

node.master:  true

node.data:  false

 

node.master:  false  ---即不作主节点

node.data:  false    ---也不存储数据

 

主节点的选取的配置

# 如果没有这种配置,遭受网络故障的集群就有可能将集群分为两个独立的集群--脑裂

形成一个集群,有主节点资格并互相连接的节点的最小数目。

discovery.zen.minimun_master_nodes:  2    设置为至少2个节点才能形成一个集群

例如:

10个节点,此值取(10/2)+1= 6  至少有6个节点才能组成集群

3个节点,此值取(3/2)+1 = 2 至少为2个节点

 

配置单播

transport.tcp.port:   9300

node.master:  true

node.data:  true

discovery.zen.ping.unicast.hosts:

["node-1:9300", "node-2:9300","node-3:9300"]

discovery.zen.minimun_master_nodes:  2

 

cd /tools

tar -zxvf   elasticsearch-6.5.4.tar.gz

mv elasticsearch-6.5.4  /usr/local   程序一般都安装在该目录下面

 

 

 

Caused by: java.lang.RuntimeException: can not run elasticsearch as root  elasticsearch不能运行在root用户下面

useradd    elk

chown -R elk:elk elk

chown -R elk:elk elasticsearch-6.5.4

su - elk  切换到elk这个用户下面

 

[elk@node-1 bin]$ ./elasticsearch    启动es报错

ERROR: [2] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

使用root账号在该文件末尾添加

vi /etc/security/limits.conf

 

*     soft nofile 65536

*     hard nofile 65536

 

vi    /etc/sysctl.conf

vm.max_map_count=262144

 

sysctl  -p 让刚刚更改的配置文件生效 sysctl.conf

 

要重新启动一个终端执行如下的命令才生效:(不能在设置的终端进行该命令,即使执行也不生效)

/etc/security/limits.conf   检查该文件中修改的部分 H 硬件 S 软件

[root@node-1 ~]$ ulimit -Hn

65536

[root@node-1 ~]$ ulimit -Sn

65536

 

上修改的配置文件生效:

 

firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --zone=public --add-port=9300/tcp --permanent

firewall-cmd --reload

 

su  - elk

vi  .bash_profile

export PATH=$JAVA_HOME/bin:$PATH

source  .bash_profile

 

 

下面是一些查询时的慢日志参数设置

index.search.slowlog.level: TRACE

index.search.slowlog.threshold.query.warn: 10s

index.search.slowlog.threshold.query.info: 5s

index.search.slowlog.threshold.query.debug: 2s

index.search.slowlog.threshold.query.trace: 500ms

 

index.search.slowlog.threshold.fetch.warn: 1s

index.search.slowlog.threshold.fetch.info: 800ms

index.search.slowlog.threshold.fetch.debug:500ms

index.search.slowlog.threshold.fetch.trace: 200ms

允许跨域访问

http.cors.enabled: true

http.cors.allow-origin: "*"

 

systemctl list-unit-files | grep enable    查看开机自启动项

 

创建elasticsearch的启动脚本

su - elk  切换到es的启动用户

cd  /usr/local/elasticsearch-6.5.4

touch es-startup.sh

 

#!/bin/bash

nohup /usr/local/elasticsearch-6.5.4/bin/elasticsearch >> /usr/local/elasticsearch-6.5.4/es-output.log 2>&1 &

 

jps  查看java进程

tail -f es-output.log   查看日志

kill -9 jps进程号

 

 

==================================================================================================

  • Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索,查看,交互存放在Elasticsearch索引里的数据,使用各种不同的图表,表格,地图等kibana能够很轻易地展示高级数据分析与可视化。

Kibana可以不更Elasticsearch部署在一台机器,这个看机器的配置,一般部署在单独的一台机器上,比较耗内存

Kibana.yml 基础项配置

server.port: 5601  配置服务端口

server.host: "0.0.0.0"  所有ip都能访问,外网ip也能访问

elasticsearch.url: "http://localhost:9200"  elasticsearch服务所在的Ip, 目前只支持配置集群中的一个ip,可以考虑nginx搭建多台---研究......

 

脚本启动Kibana

cd /usr/local/kibana-6.5.4-linux-x86_64/

touch  kb-startup.sh

chmod a+x kb-startup.sh

#!/bin/bash

nohup /usr/local/kibana-6.5.4-linux-x86_64/bin/kibana >>  /usr/local/kibana-6.5.4-linux-x86_64/kb-output.log 2>&1 &

 

tail -f kb-startup.log

 

 

vi /usr/lib/systemd/system/kibana.service  开机启动

[Unit]

Description=Kibana  Server Manager

[Service]

ExecStart=/usr/local/kibana-6.5.4-linux-x86_64/bin/kibana

[Install]

WantedBy=multi-user.target

 

systemctl daemon-reload

systemctl enable kibana

firewall-cmd --zone=public --add-port=5601/tcp --permanent

firewall-cmd --reload

systemctl start  kibana

systemctl stop kibana

systemctl status kibana

 

http://ip:5601

 

 

你可能感兴趣的:(数据分析系统简易架构)