备注:图片因为格式都没有显示,本身是都有的,这里的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及以上版本)
以上部分为设备的基础配置,接下来我们开始安装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源
elasticsearch-6.8.1-1.noarch
删除源
重新安装
rpm -ivh elasticsearch-6.8.1.rpm
查看rpm把elasticsearch安装到了哪里
注:一般/etc/elasticsearch的是配置文件, /opt/elasticsearch是刚才上传的rpm包,/usr/share/elasticsearch才是安装的目录.
建立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}
修改相关权限
chown -R es:es /usr/share/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
4.启动elasticsearch服务
ERROR: bootstrap checks failed
接着报:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改几个参数:
在末尾追加以下内容(es为启动用户,当然也可以指定为*)
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited
继续再修改一个参数
将里面的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
检验: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编译
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
kibana+elasticsearch+logstash+Kafka+filebeat集群安装文档
原文:https://blog.51cto.com/10158955/2431308