ELK Elasticsearch 集群部署

ELK Elasticsearch 集群部署

数据流向:1、后台服务器产生的日志由filebeat收集通过logstasg进行标准化处理,传输给es1、es2(两个是一个主备的关系,数据都是一致的),然后传输给可视化设备。

有了flebeat可以节省资源,可以通过filebeat和logstash实现远程数据收集。

filereat不能对数据进行标准输出,不能输出为ES格式的数据,所以需要logstasg把filebeat数据做标准化处理

less 复制代码
192.168.11.150  ELK1  node1 (es1) 设置Java环境、部署 Elasticsearch、 Elasticsearch-head、node、 phantomjs
192.168.11.151  ELK2  node2 (es2) 设置Java环境、部署 Elasticsearch、 Elasticsearch-head、node、 phantomjs
192.168.11.152  ELK3  部署     kibana-6.7.2-x86_64.rpm  logstash-6.7.2.rpm
192.168.11.144  后台服务器     Apache、MySQL、Nginx、部署Logstash    

E LK1 ELK2 部署

less 复制代码
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数据做标准化处理

LESS 复制代码
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 日志可视化部署

less 复制代码
[root@apache-elk3 opt]#cd /opt/
[root@apache-elk3 opt]#rpm -ivh kibana-6.7.2-x86_64.rpm  
[root@apache-elk3 conf.d]# 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"]
指向ELK1  ELK2   
 37 kibana.index: ".kibana"
 96 logging.dest: /var/log/kibana.log
 113 i18n.locale: "zh-CN"
[root@apache-elk3 opt]#  systemctl restart kibana.service 
[root@apache-elk3 opt]#  systemctl enable  kibana.service 
[root@apache-elk3 opt]#  netstat -antp | grep 5601
[root@apache-elk3 opt]# 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 [tags] {

        elasticsearch {
               hosts => ["192.168.11.150:9200","192.168.11.151:9200"]
               index=> "%{[fields][service_name]}-%{+YYYY.MM.dd}"
          }
        }
      if "httpd" in [tags] {
               elasticsearch {
               hosts => ["192.168.11.150:9200","192.168.11.151:9200"]
               index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
          }
}
       if "mysql" in [tags] {
           elasticsearch {
               hosts=>["192.168.11.150:9200","192.168.11.151:9200"]
              index=> "%{[fields][service_name]}-%{+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数据做标准化处理

less 复制代码
yum install -y httpd
yum install -y nginx
yum install -y mysqld   (可以编译安装)
-------------------------------确定每个服务的日志保存的绝对路径-----------------------------------------
find / -name  nginx
find / -name  http   #查找日志路径
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##########
[root@myslq4 nginx]# vim /etc/nginx/nginx.conf
 38     server {
 39         listen       8888;
 40         listen       [::]:8888;
 41         server_name  _;
 42         root         /usr/share/nginx/html;
 [root@myslq4 nginx]# 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 

主机上配置日志收集

less 复制代码
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
[root@myslq4 filebeat]# pwd
/usr/local/filebeat
[root@myslq4 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

复制代码
相关推荐
会飞的小蛮猪25 分钟前
ELK运维之路(使用Logstatsh对日志进行处理综合案例)
elasticsearch·自动化运维·logstash
catoop33 分钟前
Jenkins Pipeline 中使用 GitLab Webhook 触发任务执行
jenkins
Gss7771 小时前
Jenkins流水线项目发布
运维·jenkins
爱学习的爬虫2 小时前
Python实现Jenkins实现自动化执行Job
python·自动化·jenkins
lang201509282 小时前
Spring Boot Actuator应用信息Application Information全解析
spring boot·后端·elasticsearch
三口吃掉你10 小时前
Docker安装Elasticsearch、kibana、IK分词器
elasticsearch·docker·kibana·ik分词器
dehuisun10 小时前
jenkins流水线部署springboot项目
运维·jenkins
神秘人X70714 小时前
Jenkins 持续集成与部署指南
运维·ci/cd·jenkins
一棵树735114 小时前
Android OpenGL ES初窥
android·大数据·elasticsearch
_李小白14 小时前
【OPENGL ES 3.0 学习笔记】第九天:缓存、顶点和顶点数组
笔记·学习·elasticsearch