ELK环境部署

目录

环境准备

[Elasticsearch 部署](#Elasticsearch 部署)

安装Elasticsearch

[Elasticsearch-head 插件](#Elasticsearch-head 插件)

安装node

[安装 phantomjs](#安装 phantomjs)

[安装 Elasticsearch-head](#安装 Elasticsearch-head)

[Logstash 安装部署](#Logstash 安装部署)

[Kibana 安装部署](#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-*

相关推荐
Karoku06617 小时前
【企业级分布式系统】ELK-企业级日志分析系统
运维·数据库·redis·mysql·elk·缓存
一名技术极客1 天前
徒手从零搭建一套ELK日志平台
elk
jun7788953 天前
SpringBoot整合ELK使用详解
spring boot·后端·elk
yueqingll3 天前
023、ELK 从入门到实践
elk
abandondyy3 天前
ELK Elasticsearch 集群部署
大数据·elk·elasticsearch
小李叭叭叭4 天前
ELK8.15.4搭建开启安全认证
运维·elk·elasticsearch·kibana
光仔December11 天前
【Elasticsearch入门到落地】1、初识Elasticsearch
大数据·elk·elasticsearch·搜索引擎·lucene
太空眼睛12 天前
【EFK】Linux集群部署Elasticsearch最新版本8.x
linux·elk·elasticsearch·efk·master·8.15.3·node.roles
Shenqi Lotus15 天前
ELK-ELK基本概念_ElasticSearch的配置
elk·elasticsearch