ELK体系部署文档(elk+filebeat+redis)
创始人
2024-04-04 20:55:59

该教程只提供简单部署,如果需要深入了解,可以查看官方文档
https://www.elastic.co/guide/index.html

为了方便演示,此处采用单台服务器进行部署,服务器资源至少需要2核4G

系统架构:
在这里插入图片描述

1、传统部署

我们先部署一个nginx、用来模拟业务日志

1、部署、测试
yum -y install nginx
systemctl start nginx
curl 127.0.0.1
tail /var/log/nginx/access.log2、修改nginx日志格式
nginx日志默认格式为log格式,传输到es中需要经过grok插件进行处理并转换成json格式,这一过程是很消耗logstash资源的,而且传入到es中的字段并不容易分析,所以在收集端先将日志转为json格式,再传入es中去,这样传入的字段也是利于分析的。
编辑nginx配置文件vim /usr/local/nginx/conf/nginx.conf   #修改主配置文件,定义日志格式
---------------------------------------------------------
log_format json '{ "@timestamp": "$time_iso8601", ''"time": "$time_iso8601", ''"clientip": "$remote_addr", ''"remote_user": "$remote_user", ''"body_bytes_sent": "$body_bytes_sent", ''"request_time": "$request_time", ''"status": "$status", ''"host": "$host", ''"request": "$request", ''"request_method": "$request_method", ''"uri": "$uri", ''"http_referrer": "$http_referer", ''"body_bytes_sent":"$body_bytes_sent", ''"http_x_forwarded_for": "$http_x_forwarded_for", ''"http_user_agent": "$http_user_agent" ''}';
access_log /var/log/nginx/io.log json ;
---------------------------------------------------------
systemctl restart nginx

1.1 filebeat部署

filebeat是一个轻量级的日志采集器。虽然logstash可以采集,但是由于logstash比较消耗资源,不适合在每台主机上部署logstash。

1.安装
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.1-x86_64.rpm
rpm -vi filebeat-7.0.1-x86_64.rpm2.修改配置文件
vim /etc/filebeat/filebeat.yml
--------------------------------------
# 日志输入
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/nginx/access.logfields:type: nginx_accessfields_under_root: true
setup.template.settings:index.number_of_shards: 1
# 日志输出
output.redis:hosts: ["redis_ip:6379"]key: "nginx"keys:- key: "%{[type]}"
processors:- add_host_metadata: ~- add_cloud_metadata: ~
----------------------------------------
systemctl restart filebeat

1.2 redis部署

redis服务器是logstash官方推荐的broker(代理人)选择,broker角色也就意味着会同时存在输入和输出两个插件,产生数据的被称作生产者,而消费数据的被称作消费者。

redis消息队列作用说明:
1、防止Logstash和ES无法正常通信,从而丢失日志。
2、防止日志量过大导致ES无法承受大量写操作从而丢失日志。
3、应用程序(php,java)在输出日志时,可以直接输出到消息队列,从而完成日志收集。

补充:如果redis使用的消息队列出现扩展瓶颈,可以使用更加强大的kafka,flume来代替。

1、编译安装
wget http://download.redis.io/releases/redis-4.0.11.tar.gz  #下载Redis源码
tar -zxf redis-4.0.11.tar.gz      #解压Redis源码
cp -r redis-4.0.11 /usr/local/    
mv redis-4.0.11/ redis
cd /usr/local/redis/
cp redis.conf bin/
make PREFIX=/usr/local/redis install     #编译安装Redis
echo "export PATH=$PATH:/usr/local/redis/bin" >> /etc/profile   将Redis加入环境变量2.后端模式启动
vim /usr/local/redis/bin/redis.conf
daemonize yesredis-server redis.conf3、访问nginx产生几条日志,然后查看redis数据
redis-cli
> llen nginx_access

1.3 logstash部署

1、安装jdk 1.8
yum -y install java2.下载并安装公共签名密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch3.添加logstash的yum仓库
vim /etc/yum.repos.d/logstash.repo
[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md4.使用yum安装logstash
yum install logstash5.修改配置
vim /etc/logstash/conf.d/test.log
-----------------------
input {redis {host => "redis_ip"port => 6379type => "nginx_access"data_type => "list"key => "nginx_access"codec => "json"}
}output {if [type] == "nginx_access" {elasticsearch {hosts => ["es_ip:9200"]index => "nginx_access-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}}   
}
-----------------------
6、运行logstash
logstash -f /etc/logstash/conf.d/test.conf

观察redis里面得数量是否消费掉
在这里插入图片描述

1.4 elasticsearch

elasticsearch同样需要Java运行环境1、下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.rpm.sha512
shasum -a 512 -c elasticsearch-6.4.3.rpm.sha512 
sudo rpm --install elasticsearch-6.4.3.rpm2.修改配置文件
[root@elastic elasticsearch-6.4.0]# vim config/elasticsearch.yml
修改内容如下:
cluster.name: my-elk     #设置集群的名字
node.name: es1            #集群中的节点名称,同一集群中的节点名称不能重复
path.data: /elasticsearch/elasticsearch-6.4.0/data    #设置es集群的数据位置
path.logs: /elasticsearch/elasticsearch-6.4.0/logs/    #设置存放日志的路径
network.host: 192.168.100.101       #绑定本地ip地址
http.port: 9200       #设置开放的端口,默认就是9200端口3、授权
chown elasticsearch.elasticsearch /usr/local/elasticsearch -R
chown elasticsearch.elasticsearch /elasticsearch -R4、开启
systemctl start elasticsearch.service

1.5 kibana部署

1、安装
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.3-x86_64.rpm
shasum -a 512 kibana-6.4.3-x86_64.rpm 
sudo rpm --install kibana-6.4.3-x86_64.rpm2、修改配置
vim /etc/kibana/kibana.yml
server.port: 5601                             #kibana默认端口是5601
server.host: "192.168.100.101"       #设置绑定的kibana服务的地址
elasticsearch.url: "http://192.168.100.101:9200"    #设置elasticsearch服务器的ip地址,不修改的话启动的时候会报[elasticsearch] Unable to revive connection: http://localhost:9200/连接不上elasticsearch的错误3、启动
systemctl start kibana

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...