当前位置: 首页 > article >正文

ELK环境部署

目录

环境准备

Elasticsearch 部署

安装Elasticsearch

Elasticsearch-head 插件

安装node 

安装 phantomjs

安装 Elasticsearch-head

Logstash 安装部署

Kibana 安装部署

ELFK


本章纯搭建过程,几乎无任何注释解释

环境准备

ELK的搭建和测试,至少需要三台机器

172.16.233.101:apache节点

172.16.233.102:node1节点

172.16.233.103:node2节点

首先几台机器均需:

关闭防火墙

关闭增强功能

node1和node2节点需要配置主机名与IP解析

vim /etc/hosts

172.16.233.102 node1

172.16.233.103 node3

保存并退出

确定机器中都装有java

java -version 查看,如果没有直接 yum install

(也可以使用jdk)

Elasticsearch 部署

安装Elasticsearch

(注:以下操作均在node1和node2节点上完成,可以用xshell自带的工具实现,点击工具—>发送键输入到所有会话,将apache节点关闭即可)

安装 elasticsearch 包,上传至/opt 目录下

直接搜索,在官网上下载elasticsearch-rpm 包

cd /opt

rpm -ivh elasticsearch-6.6.1.rpm 

加载系统服务

systemctl daemon-reload

systemctl enable elasticsearch.service

修改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

--33--取消注释,指定数据存放路径
path.data: /data/elk_data

--37--取消注释,指定日志存放路径
path.logs: /var/log/elasticsearch/

--43--取消注释,改为在启动的时候不锁定内存
bootstrap.memory_lock: false

--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0

--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200

--68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

保存并退出

查看配置文件中刚刚取消注释的并修改的行

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

创建data 数据存放目录并赋权

mkdir -p /data/elk_data

chown elasticsearch:elasticsearch /data/elk_data

启动elasticsearch

systemctl start elasticsearch.service

查看端口号 9200

netstat -antp | grep 9200

测试

浏览器访问 172.16.233.102:9200  或者 172.16.233.103:9200   都可以,可以查看节点信息

访问  172.16.233.102:9200/_cluster/health?pretty  或者另一节点

查看集群监控状况,status 值为green ,表示节点正常运行

如果显示为黄色,说明数据完整,但副本有问题

如果显示为红色,那就说明连数据都不完整

这种方法虽然能查看集群健康状态以及其他信息,但其实是不太友好的,字段太过密集,也不方便操作

可以通过安装 Elasticsearch-head 插件,更方便地管理集群

Elasticsearch-head 插件

Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作为独立服务进行安装,需要使用npm工具(NodeJS的包管理工具)安装。

安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs

node 和 phantomjs 的安装包都可以在官网直接下载

将安装包或压缩包都放到 /opt 下

安装node 

yum install -y gcc gcc-c++ make 

cd /opt 

tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/

./configure

make && make install            #这里内存和处理器核数最好高一点,不然需要很久

安装 phantomjs

同样的

tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/

cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs /usr/local/bin

安装 Elasticsearch-head

tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/

cd /usr/local/src/elasticsearch-head/

npm install

修改Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml

G到行尾,在末尾添加如下两行内容

http.cors.enabled: true                               #开启跨域访问支持,默认为 false
http.cors.allow-origin: "*"                            #指定跨域访问允许的域名地址为所有

保存退出

重启 elasticsearch 服务

systemctl restart elasticsearch

启动 elasticsearch-head 服务

elasticsearch-head 启动需要进入目录下启动,进程需要读取该目录下的gruntfile.js 文件

cd /usr/local/src/elasticsearch-head/

npm run start &

显示如下内容说明启动成功 ↓

> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server 

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

查看9100 端口

访问172.16.233.102:9100 或 103

很显而易见,正上方健康值绿色就代表集群正常

我们插入一条索引,索引为 index-demo1 ,类型为test

curl -X PUT 'localhost:9200/index-demo1/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

刷新页面

Logstash 安装部署

(在apache节点上操作)

安装 apache 服务

yum -y install httpd

systemctl start httpd

选择相应的版本下载

Download Logstash Free | Get Started Now | Elastic

rpm -ivh logstash-6.6.1.rpm

systemctl start logstash.service                      

systemctl enable logstash.service

做一个软连接方便系统识别

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

测试Logstash

logstash -e 'input { stdin{} } output { stdout{} }'

…………

…………

等待时机输入随便一个网址

www.baidu.com    

ctrl c 取消

chmod +r /var/log/messages                        #让 Logstash 可以读取日志

vim /etc/logstash/conf.d/system.conf

input {
    file{
        path =>"/var/log/messages"
        type =>"system"
        start_position =>"beginning"
    }
}
output {
    elasticsearch {
        hosts => ["172.16.233.102:9200"]
        index =>"system-%{+YYYY.MM.dd}"
    }
}

保存并退出

重启 Logstash 服务

systemctl restart logstash  

Kibana 安装部署

(在node节点上操作,选一个节点即可)

同样在官网可以选择相应的版本进行下载

Download Kibana Free | Get Started Now | Elastic

右侧的

可以选择版本

放在 /opt 下

rpm -ivh kibana-6.6.1-x86_64.rpm

编辑 Kibana 主配置文件

vim /etc/kibana/kibana.yml

--2行--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601

--7行--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"

--28行--取消注释,设置和 Elasticsearch 建立连接的地址和端口
elasticsearch.hosts: ["http://192.168.10.13:9200"] 

--37行--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"

保存退出

如果没有在对应的行找到内容,可能是版本不同,在其他行寻找一下,内容是一致的

启动Kibana 服务

systemctl start kibana.service

systemctl enable kibana.service

验证

浏览器访问 172.16.233.102:5601

会进入到 Kibana 的welcome 界面

Kibana 部署就完成了

ELFK

增加一台节点服务器 Filebeat 节点(172.16.233.104)

在 Filebeat 节点上操作

安装 

tar zxvf filebeat-6.2.4-linux-x86_64.tar.gz

mv filebeat-6.2.4-linux-x86_64/ /usr/local/filebeat

编辑主配置文件

vim /usr/local/filebeat/filebeat.yml

filebeat.prospectors:

- type: log                                 #指定 log 类型,从日志文件中读取消息

enabled: true

paths:

- /var/log/messages                               #指定监控的日志文件

 - /var/log/*.log

 fields:                                   #可以使用 fields 配置选项设置一些参数字段添加到 output 中

service_name: filebeat

log_type: log

service_id: 172.16.233.104

''''''''''''''''''''''''''''''''''''''''''Elasticsearch output'''''''''''''''''''''''''''''''''''''''''
(全部注释掉)

''''''''''''''''''''''''''''''''''''''''''   Logstash   output  '''''''''''''''''''''''''''''''''''''''''
output.logstash:

hosts: ["172.16.233.104:5044"]               #指定 logstash 的 IP 和端口

在 Logstash 组件所在节点上新建一个 Logstash 配置文件

cd /etc/logstash/conf.d

vim logstash.conf
input {
    beats {
        port => "5044"
    }:
}
output {
    elasticsearch {
        hosts => ["172.16.233.102:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

保存退出

logstash -f logstash.conf

安装完成

想要测试 则浏览器访问

172.16.233.102:5601

点击 Management --> Index Pattern --> Create Index Pattern --> 选择输入 Index Pattern --> 下一步 --> Time Filter field name --> @timestarmp

单机 Discover 按钮课查看图标信息及日志信息

按钮添加索引  filebeat-*


http://www.kler.cn/a/317161.html

相关文章:

  • Zookeeper的安装与使用
  • CSS回顾-长度单位汇总详解
  • Jetpack 之 Ink API初探
  • Spring Boot 2.x 和 Druid 多数据源整合 dm
  • python魔术方法的学习
  • 《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明
  • Codeforces Round 971 (Div. 4) G1. Yunli‘s Subarray Queries (easy version)
  • 2024年中国科技核心期刊目录(科普卷)
  • 快速理解TCP协议(三)——TCP协议的三次握手与四次挥手
  • 苍穹外卖学习笔记(九)
  • 【Webpack--012】提取单独的CSS文件压缩CSS文件
  • leetcode:验证回文串
  • 综合时如何计算net delay?
  • 【最基础最直观的排序 —— 冒泡排序算法】
  • 公安局党建平台建设方案和必要性-———未来之窗行业应用跨平台架构
  • 电动车车牌识别系统源码分享
  • 【LIO-SAM】LIO-SAM论文翻译(2020年)
  • 【揭秘Java】线程安全中的有序性之谜
  • 【Hive 运维】JDBC使用Hive UDF:Hive UDF打通hiveserver2
  • idea多模块启动
  • uniapp 动态修改input样式
  • Linux bash特性:
  • 机器人上的DPDK使用思考
  • Android Retrofit源码分析(一):Retrofit是什么?和OkHttp的区别是什么?为什么需要他?
  • 计算机网络34——Windows内存管理
  • 速盾:网站使用 CDN 加速