ELK+Kafka+Filebeat企业内部日志分析系统(1)
Elasticsearch集群部署
1.部署环境
IP地址 | 主机名 | 配置 | 系统版本 |
---|---|---|---|
192.168.222.129 | es1 | 2核4G | RockyLinux |
192.168.222.130 | es2 | 2核3G | RockyLinux |
192.168.222.131 | es3 | 2核3G | RockyLinux |
2.配置主机名解析和主机名
#关闭防火墙与selinux
#更改主机名(三台机器均操作)
[root@localhost ~]# hostnamectl set-hostname es1
#添加主机名解析
[root@es1 ~]# vim /etc/hosts
192.168.222.129 es1
192.168.222.130 es2
192.168.222.131 es3
3.相关地址
官方地址:https://www.elastic.co
官网搭建:https://www.elastic.co/guide/index.html
4.安装配置ES
1.创建运行ES的普通用户
[root@es1 ~]# useradd es
[root@es1 ~]# echo "123" |passwd --stadin "es"
2.安装配置ES
#这里已经把包传到服务器
[root@es1 ~]# ls
anaconda-ks.cfg elasticsearch-7.13.2-linux-x86_64.tar.gz kibana-7.13.2-linux-x86_64.tar.gz node-v10.0.0-linux-x64.tar.gz
[root@es1 ~]# tar xf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/
[root@es1 ~]# cd /usr/local
[root@es1 local]# mv elasticsearch-7.13.2-linux-x86_64.tar.gz/ es
#修改配置文件(删除里面注释添加以下内容)
[root@es1 local]# vim /es/config/elasticsearch.yml
cluster.name: bjbpe01-elk
cluster.initial_master_nodes:["es1","es2","es3"]
node.name: es1
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es2","es3"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"
3. 设置JVM堆大小
[root@es1 local]# sed -i 's/## -Xms4g/-Xms4g/' /usr/local/es/config/jvm.options
[root@es1 local]# sed -i 's/## -Xmx4g/-Xmx4g/' /usr/local/es/config/jvm.options
4.创建ES数据及日志存储目录
#(三台机器均操作)
[root@es1 local]# mkdir -p /data/elasticsearch/data
[root@es1 local]# mkdir -p /data/elasticsearch/logs
5.修改安装目录及权限
#(三台机器均操作)
[root@es1 local]# chown -R es.es /data/elasticsearch
[root@es1 local]# chown -R es.es /usr/local/es
6.系统优化(三台机器均操作)
1.增加最大文件打开数
永久生效方法:
[root@es1 local]# echo "* soft nofile 65536" >> /etc/security/limits.conf
2.增加最大进程数
[root@es1 local]# echo "* soft nproc 65536" >> /etc/security/limits.conf
3.增加最大内存映射数
[root@es1 local]# echo "vm.max_map_count=262144" >> /etc/sysctl.conf
[root@es1 local]# sysctl -p
5.启动ES
[root@es1 local]# cd es
[root@es1 es]# su es
[es@es1 es]$ bin/elasticsearch
6.安装配置head监控插件
- 服务器
安装软件 | 主机名 | IP地址 | 系统版本 | 配置 |
---|---|---|---|---|
Elasticsearch-head-master | es1 | 192.168.222.129 | RockyLinux | 2核4G |
1.安装node
[root@es1 ~]# 123.txt anaconda-ks.cfg elasticsearch-7.13.2-linux-x86_64.tar.gz kibana-7.13.2-linux-x86_64.tar.gz node-v10.0.0-linux-x64.tar.gz
[root@es1 ~]# tar xf node-v10.0.0-linux-x64.tar.gz -C /usr/local
[root@es1 ~]# vim /etc/preofile
NODE_HOME=/usr/local/node-v10.0.0-linux-x64
PATH=$NODE_HOME/bin:$PATH
export NODE_HOME PATH
[root@es1 ~]# source /etc/profile
[root@es1 ~]# node --version
2.下载head插件
[root@es1 ~]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
[root@es1 ~]# yum -y install unzip
[root@es1 ~]# unzip -d /usr/local elasticsearch-head-master.zip
3.安装grunt
[root@es1 ~]# cd /usr/local/elasticsearch-head-master
[root@es1 elasticsearch-head-master]# npm install -g grunt-cli
#检查版本号
[root@es1 elasticsearch-head-master]# grunt -version
5.修改head源码
#修改成以下内容
[root@es1 ~]# vim /usr/local/elasticsearch-head-master/Gruntfile.js +99
port: 9100,
base: '.',
keepalive: true,
hostname: '*'
[root@elk ~]# vim /usr/local/elasticsearch-head-master/_site/app.js +4388
this._super();
this.prefs = services.Preferences.instance();
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.222.129:9200";
6.下载head必要的文件
[root@elk ~]# wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@elk ~]# yum -y install bzip2
[root@elk ~]# mkdir /tmp/phantomjs
[root@elk ~]# mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /tmp/phantomjs/
[root@elk ~]# chmod 777 /tmp/phantomjs -R
7.运行head
[root@elk ~]# cd /usr/local/elasticsreach-head-master
[root@elk elasticsreach-head-master]# npm install
#上一行报错执行以下命令
[root@elk elasticsreach-head-master]# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
[root@elk elasticsreach-head-master]# nohup grunt server &
[root@elk elasticsreach-head-master]# ss -ntlp
7.部署kibana
安装软件 | 主机名 | IP地址 | 系统版本 | 配置 |
---|---|---|---|---|
kibana | es1 | 192.168.222.129 | RockyLinux | 2核4G |
1.安装kibana
[root@es1 ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C /usr/local
4.配置文件
[root@es1 ~]# cd /usr/local
[root@es1 local]# vim kibana-7.13.2-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "192.168.222.129"
elasticsearch.hosts: ["http://192.168.222.129:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
[root@es1 local]# cd kibana-7.13.2-linux-x86_64/
[root@es1 kibana-7.13.2-linux-x86_64]# ./bin/kibana --allow-root