光之使者 发表于 2024-8-6 10:43:36

ELK Elasticsearch 集群部署

ELK Elasticsearch 集群部署

https://i-blog.csdnimg.cn/direct/7c2a311beb744d26828b9d428652cf61.png
数据流向:1、配景服务器产生的日志由filebeat收集通过logstasg进行尺度化处理,传输给es1、es2(两个是一个主备的关系,数据都是同等的),然后传输给可视化装备。
有了flebeat可以节流资源,可以通过filebeat和logstash实现长途数据收集。
filereat不能对数据进行尺度输出,不能输出为ES格式的数据,所以需要logstasg把filebeat数据做尺度化处理
192.168.11.150ELK1node1 (es1) 设置Java环境、部署 Elasticsearch、 Elasticsearch-head、node、 phantomjs
192.168.11.151ELK2node2 (es2) 设置Java环境、部署 Elasticsearch、 Elasticsearch-head、node、 phantomjs
192.168.11.152ELK3部署   kibana-6.7.2-x86_64.rpmlogstash-6.7.2.rpm
192.168.11.144后台服务器   Apache、MySQL、Nginx、部署Logstash   
E LK1 ELK2 部署

1.环境准备
#设置Java环境
java -version                                                                #如果没有安装,yum -y install java

2.部署 Elasticsearch 软件
(1)安装elasticsearch—rpm包
#上传elasticsearch-6.7.2.rpm到/opt目录下
cd /opt
rpm -ivh elasticsearch-6.7.2.rpm

(2)修改elasticsearch主配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
--17--取消注释,指定集群名字
cluster.name: my-elk-cluster
--23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
node.name: node1
node.master: true                #是否master节点,false为否
node.data: true                        #是否数据节点,false为否
--34--取消注释,指定数据存放路径
path.data: /var/lib/elasticsearch
--38--取消注释,指定日志存放路径
path.logs: /var/log/elasticsearch
--43--注释,避免es使用swap交换分区,可以不注释
# bootstrap.memory_lock: true
--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200                                        #指定es集群提供外部访问的接口
transport.tcp.port: 9300                #指定es集群内部通信接口
--68--取消注释,集群发现通过单播实现,指定要发现的节点
discovery.zen.ping.unicast.hosts: ["192.168.11.150:9300", "192.168.11.151:9300"]
91 http.cors.enabled: true
92 http.cors.allow-origin: "*"

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

(3)启动elasticsearch是否成功开启
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
netstat -antp | grep 9200

(5)查看节点信息
浏览器访问http://192.168.11.150:9200、 http://192.168.11.151:9200 查看节点 Node1、Node2 的信息。
浏览器访问 http://192.168.11.150:9200/_cluster/health?pretty、 http://192.168.11.150:9200/_cluster/health?pretty查看群集的健康情况,可以看到 status 值为 green(绿色), 表示节点健康运行。
浏览器访问 http://192.168.11.150:9200/_cluster/state?pretty检查群集状态信息。


3.安装 Elasticsearch-head 插件
(1)编译安装 node
#上传软件包 node-v8.2.1.tar.gz 到/opt
yum install gcc gcc-c++ make -y
cd /opt
tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/
./configure
make -j 4 && make install

(2)安装 phantomjs
#上传软件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到
cd /opt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd /opt/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

(3)安装 Elasticsearch-head 数据可视化工具
#上传软件包 elasticsearch-head-master.zip 到/opt
cd /opt
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/

#速度慢,可以指定为淘宝镜像
npm config set registry http://registry.npm.taobao.org/
npm install

(4)修改 Elasticsearch 主配置文件
vim /etc/elasticsearch/elasticsearch.yml

--末尾添加以下内容--
http.cors.enabled: true                                #开启跨域访问支持,默认为 false
http.cors.allow-origin: "*"                        #指定跨域访问允许的域名地址为所有
systemctl restart elasticsearch

(5) 启动 elasticsearch-head 服务
#必须在解压后的 elasticsearch-head 目录下启动服务,进程会读取该目录下的 gruntfile.js 文件,否则可能启动失败。
cd /opt/elasticsearch-head-master
npm run start &
netstat -natp |grep 9100
ELK3 日志收集装置部署

有了flebeat可以节流资源,可以通过filebeat和logstash实现长途数据收集。
filereat不能对数据进行尺度输出,不能输出为ES格式的数据,所以需要logstasg把filebeat数据做尺度化处理
1.更改主机名
hostnamectl set-hostname ELK3
bash
2.安装Apahce服务(httpd)
yum -y install httpd
systemctl start httpd

3.安装Java环境
yum -y install java
java -version

4.安装logstash
#上传软件包 logstash-6.7.2.rpm 到/opt目录下
cd /opt
rpm -ivh logstash-6.7.2.rpm                        
systemctl start logstash.service                     
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

logstash -e 'input { stdin{} } output { stdout{} }'
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.11.150:9200","192.168.11.151:9200"] } }'--path.data /opt/test1

ELK3 日志可视化部署

#cd /opt/
#rpm -ivh kibana-6.7.2-x86_64.rpm
# vim /etc/kibana/kibana.yml
2 server.port: 5601
7 server.host: "0.0.0.0"
28 elasticsearch.hosts: ["http://192.168.11.150:9200","http://192.168.11.151:9200"]
指向ELK1ELK2   
37 kibana.index: ".kibana"
96 logging.dest: /var/log/kibana.log
113 i18n.locale: "zh-CN"
#systemctl restart kibana.service
#systemctl enablekibana.service
#netstat -antp | grep 5601
# chmod 777 /var/log/messages

浏览器访问:192.168.11.152:5601

#配置接收日志脚本
cd /etc/logstash/conf.d
vim xhg.conf

input {
   beats { port => "5046"}
}

output {
         if "nginx" in {

      elasticsearch {
               hosts => ["192.168.11.150:9200","192.168.11.151:9200"]
               index=> "%{}-%{+YYYY.MM.dd}"
          }
      }
      if "httpd" in {
               elasticsearch {
               hosts => ["192.168.11.150:9200","192.168.11.151:9200"]
               index => "%{}-%{+YYYY.MM.dd}"
          }
}
       if "mysql" in {
         elasticsearch {
               hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
            index=> "%{}-%{+YYYY.MM.dd}"
          }
       }
}

logstash -f xhg.conf --path.data /opt/test9 &   #先执行
主机配置1

主机有Apache、httpd、nginx服务,将三个服务产生的日志通过ELK3收集,过滤、分析、汇总、再以尺度格式输出到ELK1、ELK2,通过kiabana可视化进行查看
有了flebeat可以节流资源,可以通过filebeat和logstash实现长途数据收集。
filereat不能对数据进行尺度输出,不能输出为ES格式的数据,所以需要logstasg把filebeat数据做尺度化处理
yum install -y httpd
yum install -y nginx
yum install -y mysqld   (可以编译安装)
-------------------------------确定每个服务的日志保存的绝对路径-----------------------------------------
find / -namenginx
find / -namehttp   #查找日志路径
mysql日志路径: general_log_file=/usr/local/mysql/data/mysql_general.log
nginx 日志路径:   - /usr/local/nginx/logs/access.log
                  - /usr/local/nginx/logs/error.log
httpd日志路径: /var/log/httpd/access_log
               /var/log/httpd/access_log

#############注意: http服务和nginx服务所使用的端口都是80端口需要修改其中一个端口的使用##############
########修改nginx端口信息改成8888##########
# vim /etc/nginx/nginx.conf
38   server {
39         listen       8888;
40         listen       [::]:8888;
41         server_name_;
42         root         /usr/share/nginx/html;
# netstat -antp | grep nginx
tcp      0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      30416/nginx: master
tcp6       0      0 :::8888               :::*                  LISTEN      30416/nginx: master
主机上配置日志收集

1.更改主机名
hostnamectl set-hostname 后台服务器

2.安装Apahce服务(httpd)
yum -y install httpd
systemctl start httpd

3.安装Java环境
yum -y install java
java -version

4.安装logstash
#上传软件包 logstash-6.7.2.rpm 到/opt目录下
cd /opt
rpm -ivh logstash-6.7.2.rpm                        
systemctl start logstash.service                     
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

#可以指定logstash的工作目录,默认为:/etc/logstash/conf.d
path.config: /opt/log

cd /opt
tar -xf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat
cd /usr/local/filebeat/
cp filebeat.yml filebeat.yml.bak
# pwd
/usr/local/filebeat
# vim filebeat.yml
- type: log
enabled: true
paths:
    - /usr/local/nginx/logs/access.log
    - /usr/local/nginx/logs/error.log
tags: ["nginx"]
fields:
    service_name: 192.168.11.144_nginx
    log_type: nginx
    from: 192.168.11.144

- type: log
enabled: true
paths:
    - /var/log/httpd/access_log
    - /var/log/httpd/access_log

tags: ["httpd"]
fields:
    service_name: 192.168.11.144_httpd
    log_type: httpd
    from: 192.168.11.144


- type: log
enabled: true
paths:
    - /usr/local/mysql/data/mysql_general.log
tags: ["mysql"]
fields:
    service_name: 192.168.11.144_mysql
    log_type: mysql
    from: 192.168.11.144


95 filebeat.config.modules:
96   # Glob pattern for configuration loading
97   path: ${path.config}/modules.d/*.yml
99   # Set to true to enable config reloading
100   reload.enabled: false
107   setup.template.settings:
108   index.number_of_shards: 3
188   output.logstash:
189   # The Logstash hosts
190   hosts: ["192.168.11.152:5046"]

nohup ./filebeat -e -c filebeat.yml > filebeat.out &
tail -f filebeat.out
t to true to enable config reloading
100 reload.enabled: false
107 setup.template.settings:
108 index.number_of_shards: 3
188 output.logstash:
189 # The Logstash hosts
190 hosts: [“192.168.11.152:5046”]
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
tail -f filebeat.out

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: ELK Elasticsearch 集群部署