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-*

相关推荐
幽弥千月17 小时前
【ELK】ES单节点升级为集群并开启https【亲测可用】
elk·elasticsearch·https
IT猿手18 小时前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
流穿2 天前
ELK系列-(六)Redis也能作为消息队列?(下)
数据库·redis·ubuntu·elk·docker·容器
流穿2 天前
ELK系列-(五)指标收集-MetricBeat(下)
linux·运维·ubuntu·elk·docker·容器
流穿3 天前
ELK系列-(五)指标收集-MetricBeat(上)
ubuntu·elk·elasticsearch·docker
高hongyuan3 天前
Linux环境下 搭建ELk项目 -单机版练习
大数据·运维·服务器·elk·elasticsearch·搜索引擎
运维&陈同学4 天前
【Elasticsearch04】企业级日志分析系统ELK之Elasticsearch 插件
大数据·运维·后端·elk·elasticsearch·搜索引擎·全文检索·哈希算法
幽弥千月5 天前
【ELK】Filebeat采集Docker容器日志
elk·docker·容器
运维&陈同学6 天前
【Elasticsearch03】企业级日志分析系统ELK之Elasticsearch访问与优化
大数据·elk·elasticsearch·搜索引擎·云原生·全文检索·高可用
运维&陈同学8 天前
【Elasticsearch01】企业级日志分析系统ELK之Elasticsearch单机部署
大数据·linux·elk·elasticsearch·微服务·云原生·jenkins