kibana+elasticsearch+logstash+Kafka+filebeat集群安装文档

架构图:
kibana+elasticsearch+logstash+Kafka+filebeat集群安装文档
备注:图片因为格式都没有显示,本身是都有的,这里的IP 是随便写了个10.168.0.0代替所有需要用的IP
参考文档
https://blog.csdn.net/weixin_41047933/article/details/82699823
https://www.cnblogs.com/chenjw-note/articles/10880637.html
https://www.cnblogs.com/tonglin0325/p/9044674.html
https://blog.csdn.net/weixin_41047933/article/details/82699823
https://blog.csdn.net/miss1181248983/article/details/89384990#commentBox

一:安装JDK(server,client)(jdk版本在1.8.0_131及以上版本)

  1. 将提前下载好的jdk-8u151-linux-x64.rpm 上传到/usr/local
  2. 配置JAVA环境变量 # vi + /etc/profile
    JAVA_HOME=/usr/java/jdk1.8.0_141
    JRE_HOME=/usr/java/jdk1.8.0_141/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    立即生效环境变量:
    source /etc/profile
    验证:
    echo $JAVA_HOME
    /usr/java/jdk1.8.0_141

以上部分为设备的基础配置,接下来我们开始安装ELK各个部件

注意:安装组件版本要一致!!!
二:先安装elasticsearch6.8.1,5台Centos7.2服务器。
1.下载elasticsearch6.8.1,并分别上传到5台服务器上。
我的版本为elasticsearch6.8.1,并放在 /opt 目录下。root用户个es用户添加操作访问elasticsearch的权限
chown -R es:es elasticsearch-6.8.1.rpm

2.我用的rpm包安装的,其他的安装方法各不相同(比如编译安装或者yum安装,因为每个安装里面的配置相关路径不同)
rpm -ivh elasticsearch-6.8.1.rpm

CentOS 7 rpm -i 时 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解决方法
这是由于yum安装了旧版本的GPG keys造成的,解决办法就是 运行下面命令即可

rpm --import /etc/pki/rpm-gpg/RPM*

查询已安装的rpm源

rpm -qa | grep elasticsearch

elasticsearch-6.8.1-1.noarch
删除源

rpm -e elasticsearch

重新安装
rpm -ivh elasticsearch-6.8.1.rpm
查看rpm把elasticsearch安装到了哪里
注:一般/etc/elasticsearch的是配置文件, /opt/elasticsearch是刚才上传的rpm包,/usr/share/elasticsearch才是安装的目录.

  1. 建立elasticsearch账号因为root不能启动elasticsearch服务。
    我建立的账号为es,输入命令:
    useradd -r -m es
    默认家目录是/home/es 。用户的切换命令为:su[空格]es 从root切换到普通用户es

    我把elasticsearch的数据目录和日志目录都放在 /data/es 目录下。在 /data/es 目录下建立data 文件夹和 log文件夹。(这里是自定义的根据你的配置文件可以修改)
    修改vi /etc/sudoers 添加es

    创建相关目录
    mkdir -pv /data/es/{data,log}

  2. 核心步骤,编辑 vi /etc/elasticsearch/elasticsearch.yml 文件,一共要修改5处地方。
    1. 查找 “cluster.name”,把注释去掉。这是集群的名称,自定义一个即可,以我的为例,我将其定为 “es-cluster”。注意的是5台机的集群名称必须相同。
    2. 查找 “node.name”,把注释去掉。这是节点名,也是自定义即可,以我的为例,节点1为“es-1”,节点2为“es-2”, 节点3为“es-3” N多个节点依此操作。
  3. 查找 “path.data” 和 “path.log”。把注释去掉。这是定义数据目录和日志目录。把上面建立的数据目录路径和日志目录路径写上即可。
  4. 查找 “discovery.zen.ping.unicast.hosts”。把注释去掉。这是填写在这个集群内各个机器的ip或别名。我的因为在hosts已经配置了别名,所以我填写的是别名。
  5. 查找 “discovery.zen.minimum_master_nodes”。把注释去掉。这是定义有几台master机器,我自己是定义有3台机器作为master。
    注意:每一个配置项,冒号后边一定要留个空格!
    cluster.name: es-cluster #集群名称,只有es-cluster相同时,节点才能加入集群。请设置为具有描述性的名字。不建议在不同环境中使用相同的集群名。
    node.name: es-1 #节点描述名称,默认情况下,Elasticsearch将使用随机生成的UUID的前7个字符作为节点id。设为服务器的主机名 node.name: ${HOSTNAME}
    node.attr.rack: r1 #指定节点的部落属性,机架位置,比集群范围更大。
    path.data: /var/lib/elasticsearch #Elasticsearch的数据文件存放目录 如果是默认位置,在将Elasticsearch升级到新版本时,很可能会把数据删除。(建议修改)
    path.logs: /var/log/elasticsearch #日志目录。(建议修改)
    bootstrap.memory_lock: true #启动后锁定内存,禁用swap交换,提高ES性能。
    network.host: 10.168.0.0 #指定监听的地址
    http.port: 9200 #监听的WEB端口
    discovery.zen.ping.unicast.hosts: ["IP:9300"]: #默认网络配置中,Elasticsearch将绑定到回环地址,并扫描9300-9305端口,试图连接同一台服务器上的其他节点,可以自动发现并加入集群。
    • 10.168.0.0:9300 #此端口为TCP传输端口,用于集群内节点发现、节点间信息传输、ES Java API也是通过此端口传输数据,transport.tcp.port定义。9200为HTTP端口。
    • host1.vtlab.io
      discovery.zen.minimum_master_nodes: 2 #为防止数据丢失,discovery.zen.minimum_master_nodes设置至关重要,主节点的最小选举数。避免脑裂,应将此值设为(master_eligible_nodes / 2) + 1,换言之,如果有3个节点,(3/2)+1 or 2

修改相关权限

chown -R es:es /etc/elasticsearch/

chown -R es:es /usr/share/elasticsearch/

chgrp -R es /etc/elasticsearch/

chgrp -R es /etc/sysconfig/elasticsearch
数据和日志
chown -R es:es /data/es/
chgrp -R es /data/es/
修改es启动占用的内存空间(云主机一般不需要)
解释:默认情况下,es启动互检测内存2G,对云主机内存不足的情况有所限制,虚拟机更需要修改,需要修改占用的内存空间
修改es根目录下config目录的jvm.options

vi /etc/elasticsearch/jvm.options

4.启动elasticsearch服务

cd /usr/share/elasticsearch/

./bin/elasticsearch –d

ERROR: bootstrap checks failed
接着报:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改几个参数:

vi /etc/security/limits.conf

在末尾追加以下内容(es为启动用户,当然也可以指定为*)
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited

继续再修改一个参数

vim /etc/security/limits.d/90-nproc.conf

将里面的1024改为2048(ES最少要求为2048)
*          soft    nproc     2048

ERROR: bootstrap checks failed
memory locking requested for elasticsearch process but memory is not locked
vim /etc/security/limits.conf

  • soft memlock unlimited
  • hard memlock unlimited
    备注:* 代表Linux所有用户名称
    保存、退出、重新登录才可生效
    临时取消限制
    ulimit -l unlimited
    报错解决相关文档链接
    https://blog.csdn.net/Hey_WonderfulWorld/article/details/73612929
    重启服务器后重新启动elasticsearch服务,无报错。

检验:curl http://10.168.0.0:9200

5.查看集群

查看集群健康状态:

查看master

安装head
因为head插件是用node.js开发的,所以需要此环境。
tar -Jxf node-v10.16.0-linux-x64.tar.xz
mv node-v10.16.0-linux-x64/ /usr/local/node
vim /etc/profile
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
source /etc/profile
检验
node -v

安装head插件:
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip && mv elasticsearch-head-master/ /usr/local/elasticsearch-head
cd /usr/local/elasticsearch-head
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g grunt-cli
cnpm install -g grunt
cnpm install grunt-contrib-clean
cnpm install grunt-contrib-concat
cnpm install grunt-contrib-watch
cnpm install grunt-contrib-connect
cnpm install grunt-contrib-copy
cnpm install grunt-contrib-jasmine #若报错就再执行一遍
修改head的连接地址 elasticsearch-head/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
localhost改为自己的ip
vim /usr/local/elasticsearch-head/Gruntfile.js
#找到下面connect属性,新增 hostname: '0.0.0.0',

            connect: {
                    server: {
                            options: {
                                    hostname: '*',            #不要忘了后面的逗号
                                    port: 9100,
                                    base: '.',
                                    keepalive: true
                            }
                    }
            }

修改服务器的监听地址elasticsearch-head/Gruntfile.js
connect: {
server: {
options: {
port: 9100,
base: '.',
keepalive: true
}
}
}
options中添加 hostname: '*'
后台启动grunt server
cd /usr/local/elasticsearch-head
nohup grunt server &
eval "cd /usr/local/elasticsearch-head/ ; nohup npm run start >/dev/null 2>&1 & "
打开浏览器访问10.168.0.0:9100,可以看到head页面

三.安装kibana
rmp -ivh kibana-6.8.1-x86_64.rpm
vim /etc/kibana/kibana.yml
server.port: 5601
server.host: 10.168.0.0
elasticsearch.url: ["http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200","http://10.168.0.0:9200"]
logging.dest: /data/kibana/log/kibana.log
创建日志文件:
[root@master-node ~]# mkdir /data/kibana/log
[root@master-node ~]# touch /data/kibana/log/kibana.log
启动kibana服务,并检查进程和监听端口:
先到相关目录里面

关闭需要先查端口之后kill 相关进程(这里注意不要直接杀node进程,因为es也有用到)

登陆页面

配置用户密码登陆
相关文章:https://blog.51cto.com/10950710/2334528?source=dra

Kibana配置索引

四.安装logstash

警告问题解决(这个警告之后日志采集会有用到所以要处理)

安装完之后,先不要启动服务,先配置logstash收集syslog日志:(这里的配置是查看是否可以收集日志,之后需要根据服务相关的日志格式采集而自定义配置)

基本格式模板
input { # 定义日志源
syslog {
type => "system-syslog" # 定义类型
port => 10514 # 定义监听端口
}
}
output { # 定义日志输出
stdout {
codec => rubydebug # 将日志输出到当前的终端上显示
}
}

检测配置文件是否有错

输出ok 代表没有问题
相关文档链接:http://www.51niux.com/?id=203

五:安装zookeeper
下载链接:http://archive.apache.org/dist/zookeeper/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
使用tar解压要安装的目录即可
这里以解压到/usr/local,实际安装根据自己的想安装的目录修改(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)
tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local/
cd /usr/local/ && mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper
添加环境变量:
vi /etc/profile
export ZK_HOME=/usr/local/zookeeper
export PATH=$ZK_HOME/bin:$PATH
source /etc/profile
在主目录下创建data和logs两个目录用于存储数据和日志:
mkdir -p /data/zk/{data,logs}
在conf目录下新建zoo.cfg文件,写入以下内容保存:
以下分别在每台配置

vim /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/data/zk/data
dataLogDir=/data/zk/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.168.0.0:2888:3888
server.2=10.168.0.0:2888:3888
server.3=10.168.0.0:2888:3888
server.4=10.168.0.0:2888:3888
server.5=10.168.0.0:2888:3888

echo '1' > /data/zk/data/myid
echo '2' > /data/zk/data/myid
echo '3' > /data/zk/data/myid
echo '4' > /data/zk/data/myid
echo '5' > /data/zk/data/myid

启动zookeeper

查看状态

其他的几个配置都一样 之后启动 (注意zookeeper集群需要都启动之后才会自动去连接)
六:安装Kafka
tar -zxvf kafka_2.12-2.2.0 .tgz && mv kafka_2.12-2.2.0 .tgz /usr/local
mv kafka_2.12-2.2.0 kafka
配置kafka环境变量,首先打开profile文件
vi /etc/profile
export KAFKA_HOME=/usr/local/kafka
export PATH=${KAFKA_HOME}/bin:$PATH
source /etc/profile
修改文件配置
vi /usr/local/kafka/config/server.properties
broker.id=1 (集群配置不能是一样的)
listeners=PLAINTEXT://10.168.0.0:9092 (配置自己IP端口)
log.dirs=/data/kafka/logs
zookeeper.connect=10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181 (集群IP端口)
之后同理修改其他几台机器
启动
cd /usr/local/kafka/
./bin/kafka-server-start.sh -daemon ./config/server.properties
安装kafka-manager(用作Kafka页面管理)
下载源码
使用Git或者直接从Releases中下载,这里我们下载 2.0.0.2 版本:https://github.com/yahoo/kafka-manager/releases

解压
wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz
tar -zxvf 2.0.0.2.tar.gz –C /opt/
sbt编译

配置yum

curl https://bintray.com/sbt/rpm/rpm > /etc/yum.repos.d/bintray-sbt-rpm.repo
yum makecache
#安装sbt
yum -y install sbt
编辑项目(慢)
cd kafka-manager-2.0.0.2
./sbt clean dist
如果编译错误要重新编译,最好是能找到编译好的包。
拷贝编译后的压缩包并解压
cp target/universal/kafka-manager-2.0.0.2.zip /opt
unzip kafka-manager-2.0.0.2.zip

vi /usr/local/kafka-manager/conf/application.conf
#kafka-manager.zkhosts="localhost:2181" ##注释这一行,下面添加一行
kafka-manager.zkhosts="10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181,10.168.0.0:2181"
添加用户
basicAuthentication.enabled=true
basicAuthentication.username=admin
basicAuthentication.password=admin123

启动
nohup /usr/local/kafka-manager/bin/kafka-manager -Dconfig.file=/usr/local/kafka-manager/conf/application.conf -Dhttp.port=8899 >> /data/kafka-manager/main.log 2>&1
相关文档
https://blog.csdn.net/qq_23160237/article/details/89677647

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值