编译安装日志分析平台 elk + beats(个人感觉不错1)
这是elk系列的第1篇文章
本文主要描述如何安装和配置elk, 并利用beats来取出数据推送到logstash,使之正常提供服务
流程图
开始之前
假设您已经拥有一台内存至少1G的
linux
计算机或虚拟机并且安装了screen命令
并且您应该了解screen
命令的使用 , 如果不了解您可以粗略的看一下 screen简明教程
下载安装包
java http://www.oracle.com/technetwork/java/javase/downloads/index.html
elk https://www.elastic.co/cn/products
- 下载安装包
传输到服务器中 , 如果是linux里直接下载则可以忽略这一步
scp .\jdk-8u181-linux-x64.tar.gz \.\kibana-6.3.2-linux-x86_64.tar.gz \ .\logstash-6.3.2.tar.gz \.\elasticsearch-6.3.2.tar.gz \root@192.168.1.147:/opt
Bash
准备安装
接下来登陆到linux环境
ssh root@192.168.1.147
解压刚才传输的文件,并把删除原文件
cd /opt/ && ls | xargs -I {} tar xzvf {} && rm -f ./*.tar.gz
Bash
因为es是不能运行在root用户的 , 即使可以也不建议使用 root
因此, 我们可以单独创建一个用户来运行elk
useradd elk
Bash
给elk的文件目录变更用户
chown -R elk:elk ./*
Bash
开始安装
请自行更换 /opt 为你的实际目录
java 8
把以下几行添加到 /etc/bashrc 的末尾
export JAVA_HOME=/opt/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
Bash
使环境变量生效
source /etc/bashrc
Bash
验证安装是否成功
java -version
Bash
此时java安装成功
elasticsearch
切换到elk用户
su elk
Bash
使用 screen 开始一个新会话
screen -S es
Bash
修改默认的配置文件
sed -i "s/#\ network.host:\ 192.168.0.1/network.host:\ 0.0.0.0/" /opt/elasticsearch-6.3.2/config/elasticsearch.yml
sed -i "s/#\ http.port/http.port/" /opt/elasticsearch-6.3.2/config/elasticsearch.yml
Bash
启动es
/opt/elasticsearch-6.3.2/bin/elasticsearch
Bash
如果遇到这个错误
执行命令:
su root
sysctl -w vm.max_map_count=262144
sysctl -a | grep vm.max_map_count
exit
Bash
再尝试启动 , 如果遇到这个错误
回到root账户 , 修改/etc/security/limits.conf 添加如下行并重启计算机 :
elk hard nofile 262144
elk soft nofile 262144
Bash
再尝试启动 , 一般会看到这个东西
此时es启动成功 , 然后我们利用curl测试一下
curl 127.0.0.1:9200
Bash
如果返回这个东西说明真的成功了 , 返回别的这里不讨论 , 一律视为失败 , 请参考日志进行排错
如果需要在浏览器访问, 还需要关闭防火墙和selinux
su root
systemctl stop firewalld.service
setenforce 0
exit
Bash
浏览器访问
至此es安装和启动完毕
我们用组合键回到默认会话
Ctrl A + d
Bash
logstash
logstash 安装和配置比较简单 , 但是需要创建一个文件
创建输入输出配置文件
tee /opt/logstash-6.3.2/config/logstash-io.conf <<-'EOF'
input {file {path => "/var/log/dev.log"start_position => "beginning"}
}output { elasticsearch { hosts => ["192.168.1.147:9200"]}
}
EOF
nginx
默认配置文件在 /opt/logstash-6.3.2/config/logstash.yml 可以按需修改*
尝试启动logstash
screen -S logstash
/opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.conf
Bash
如果没有error , 就启动完成了
如果需要测试是否真的启动完成 , natstat 和 telnet 这两个命令都可以
telnet 127.0.0.1 9600 || netstat -anp | gerp 9600
Bash
至此logstash安装和启动完毕
我们用组合键回到默认会话
Ctrl A + d
Bash
kibana
kibana 只需要修改基础配置文件即可启动 , 并进行浏览器测试
修改配置文件
sed -i "s/#elasticsearch.url:\ \"http:\/\/localhost:9200\"/elasticsearch.url:\ \"http:\/\/192.168.1.147:9200\"/" /opt/kibana-6.3.2-linux-x86_64/config/kibana.yml
sed -i "s/#server.host:\ \"localhost\"/server.host:\ \"192.168.1.147\"/" /opt/kibana-6.3.2-linux-x86_64/config/kibana.yml
Bash
启动
/opt/kibana-6.3.2-linux-x86_64/bin/kibana
返回如下信息则说明启动成功
打开浏览器 输入http://192.168.1.147:5601 可以看到如下画面
至此kibana安装和启动完毕
我们用组合键回到默认会话
Ctrl A + d
Bash
测试
如果顺利的到了这里 , 那么elk其实已经可以使用了 , filebeat不是必须的.
我们找来一些日志验证一下前面工作的正确性
- 上传日志到服务器 :
scp ./dev.log root@192.168.1.147:/var/log/
Bash
- 这是一份普通的nginx日志
用screen -r回到logstash会话
界面一闪而过 , 回到了这里
ctrl +c 停止它按上方向键 , 再启动它
稍候片刻启动完成, 回到kibana
在首页创建通配符索引 logstash*
如果next是可点击的 , 那就到了这里
选择@timestamp 继续下一步
然后就开启ELK的世界了
- 首页如下
filebeat
取得安装包
和准备工作一样 , 从官网获得filebeat的安装包并解压
修改配置
修改filebeat的配置文件 , 和上面一样我们使用sed修改配置文件
# 开启log输入
sed -i "s/enabled: false/enabled: true/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# log存放的位置 , 位置分隔符 / 需要用 \ 转义 , dev.log 可以修改为 *.log 来扫描目录
sed -i "s/-\ \/var\/log\/*.log/\/var\/log\/dev.log/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# 关闭默认的输出到es
sed -i "s/output.elasticsearch:/# output.elasticsearch:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml
sed -i "s/hosts:/# hosts:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml# 打开输入到logstash
sed -i "s/#output.logstash:/output.logstash:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml
sed -i "s/##\ hosts:/hosts:/" /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml
Bash
我们还需要修改 logstash 的配置文件才能使用 filebeat 来自动捕获数据
修改logstash的输入输出配置
为了避免你已经手动修改了配置文件 , 我们不再使用sed为改为手动修改配置文件
使用你喜爱的编辑器打开 /opt/logstash-6.3.2/config/logstash-io.conf , 删除掉input代码块并在原file代码块的位置 ,增加如下内容并保存
beats{port => 5044
}
nginx
最终配置文件大概会是这个样子
input {beats{port => 5044}
}output { elasticsearch { hosts => ["192.168.1.147:9200"]}
}
nginx
重启logstash
screen -r logstash
^C^C^C^C....
/opt/logstash-6.3.2/bin/logstash -f /opt/logstash-6.3.2/config/logstash-io.conf
Bash
如果正常启动并进入监听状态 , 我们回到刚才的会话
screen -r beats
Bash
启动filebeat
/opt/filebeat-6.3.2-linux-x86_64/filebeat -e -c /opt/filebeat-6.3.2-linux-x86_64/filebeat.yml
Bash
如果配置正确 , 那么一般不会遇到什么问题
测试filebeat
因为我们已经在 /var/log/dev.log 这份配置文件 , 那么我们就增加它的内容 , 来测试filebeat是否正常扫描和输出到logstash
里使用死循环来增加日志内容 , 数据是重复的 , 仅可用于验证filebeat的工作
第三行的 while 是每隔1秒就复制 tmp.log 的内容到 dev.log 的末尾
您随时可以用 ^C [Ctrl +c] 来终止复制过程
su root
cp /var/log/dev.log /tmp/tmp.log
while true ; do cat /tmp/tmp.log >> /var/log/dev.log ; sleep 1 ; done
Bash
然后我们查看浏览器的kibana , 右上角倒数第二个按钮, 开启自动刷新并选择五秒
如果一切无误, 坐等5秒 , 就会发现有新的数据展示在页面上
此时可以明显的观察到 , 红框的时间部分每隔5秒就会变化一次
因为我们已经保证了没有 filebeat 时elk平台工作是正常的
那么如果现在elk不再正常工作了 , 就从 filebeat 大节检查和排错 ,问题最大可能是sed在你的计算机中没有生效
那么就检查配置文件开始 debug 吧
同时也欢迎您在本文章下留言说明你遇到的问题
大功告成
来源:https://system.out.println.org/?p=1118
编译安装日志分析平台 elk + beats(个人感觉不错1)相关推荐
- 视频教程-【2019精品课】构建ELK海量日志分析平台-ELK
[2019精品课]构建ELK海量日志分析平台 10年一线开发及项目管理经验,6年以上大数据项目架构.实施.开发与运维经验,骨灰级大数据玩家,对Hadoop.Storm.Spark.Flink.Kyli ...
- 日志分析平台ELK部署初学
1)ELK介绍 ELK官方网站:https://www.elastic.co/products elk-docker 官网:http://elk-docker.readthedocs.org/#ins ...
- 日志分析平台-ELK
日志分析平台-ELK 此次主要是搭建带有redis缓存层的ELK日志分析平台 环境: node1:172.16.1.152 node2: 172.16.1.153 一:配置基础环境 所有节点关闭se ...
- 开源实时日志分析平台—ELK
ELK简介 什么是日志 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据. 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志. 应用日志.安全日志.这些日志分散地存储在不同的机器 ...
- 搭建可视化日志分析平台ELK
文章目录 ELK是什么 为什么要用ELK ELK如何安装搭建 ElasticSearch 安装 一.下载Elasticsearch源码 二.安装 三.Elasticsearch配置 四.新增运行Ela ...
- ELK——ElasticStack日志分析平台
ElasticStack日志分析平台 ELK日志采集与分析系统概述 重读日志文件 使用Processors(处理器)过滤和增强数据 Logstash Logstash安装 使用Grok过滤器插件解析W ...
- 搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器
27.6 安装kibana 27.7 安装logstash 27.8 配置logstash 27.9 kibana上查看日志 27.10 收集nginx日志 27.11 使用beats采集日志 本文是 ...
- CentOS 6.8下ELK+filebeat+redis 日志分析平台
转载来源 :ELK+filebeat+redis 日志分析平台 :https://www.jianshu.com/p/bf2793e85d18 一.简介 ELK Stack是软件集合Elasticse ...
- ELK实时日志分析平台环境部署--完整记录
在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的ELK(+Redis)-开源实时日志分析平台的记录过程(仅依据本人的实际操作为例说明,如有误述,敬请指出)~ ==== ...
最新文章
- 【活动】人工智能产学研生态建设研讨会报名
- AlertDialog.Builder选择对话框
- python基础: String类型
- php self 内存,php导致内存溢出
- FreeMaker+Xml导出word(含图片)
- [Redux/Mobx] 在redux中,什么是action?
- 设计模式 之 创建者
- # 语音信号处理基础(十)——梅尔倒谱系数
- 「WC 2019」数树
- JSON cannot be resolved 解决方法
- Linux查看硬盘挂载
- vue中json数据格式化
- 查询计算机物理地址指令,怎么查询mac地址命令_如何查mac地址
- YTU 2577: 小数计算——结构体
- MC(monitorcat) 监控军刀
- 想想也有五年多了(胡紫薇博客)
- 光猫连接水星路由器显示服务器,水星mw300r路由器连接光猫的设置方法步骤
- slam中的相机相关
- python matplotlib axes3d.get_test_data() 是什么意思?(获得测试数据)
- 辉光管电子时钟DIY记录-动态扫描驱动方式
热门文章
- rabbitmq java文档_《RabbitMQ官方文档》订阅与发布
- 01_GIT基础、安装
- 1.非关系型数据库(Nosql)之mongodb:mongodb的安装,环境变量配置,数据库服务端启动,客户端启动
- 2Boost之UPD,Client and Server
- 处理字符串_9_合并多行到一行
- 最小二乘法(一元)推导
- Python多继承mro示例
- 数据流图中flow不显示文字_利用Flow来进行旋转流体仿真
- 用python简单处理图片(2):图像通道\几何变换\裁剪
- android BitMap回收