ELK日志分析系统搭建-----单机版
搭建一个单机版
使用环境
centOS
free
配置
前期准备
JDK1.8以上版本
下载地址
ElasticSearch-6.3.2 Linux
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
logstash-6.3.2 Linux
https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.tar.gz
kibana-6.3.2 Linux
https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
同时还需要配置安装JDK1.8以上版本
配置示例 配置到
vim /etc/profile
export JAVA_HOME=/home/huibiaozhu/soft/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.😒{JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/bashrc
首先把它们解压放到一个位置
然后说说几个我启动遇到的几个错误问题,需要配置的几个比较重要的文件以及解决方法
第一个问题就是不能使用root用户启动,我们需要新建一个普通用户
第二个问题就是文件ulimit大小限制问题
cd /etc/security/limits.conf
els 是我部署es的用户
第三个问题是虚拟内存的问题
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
使用 sysctl -p 查看修改后的结果
sysctl -p
vim /etc/sysctl.conf
第四个问题就是内存大小的问题
报错信息可以看到关键字jvm.options
OK 可以启动看看了 我的端口是是9200 对了在这里可以配置
接下来咱们需要安装一个elasticsearch-head
head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包
nodejs下载地址
https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gz
解压移动配置环境变量
补充一下环境变量
vim /etc/profile
export NODE_HOME=/usr/local/soft/node-v10.15.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin
然后生效
source /etc/profile
检查node的版本 同时看看nodejs环境变量是不是配置对了
node -v
木的问题
获取elasticsearch-head 的方式,因为它托管在github平台上,你可以下载下来放到虚拟机或者服务器,也可以使用git clone下来
**centOS直接安装git **
yum install git -y
elasticsearch-head 直接下载
https://github.com/mobz/elasticsearch-head
或者 git clone https://github.com/mobz/elasticsearch-head
继续说nodejs我们还需要一个node_modules的grunt
有两种方式,第一种使用了镜像 ,我喜欢第二种有vpn代理的话可以
npm install -g grunt --registry=https://registry.npm.taobao.org
或者
npm install -g grunt
如果遇到问题执行:
npm audit fix
如果在elasticsearch-head目录下node_modules/grunt下如果没有grunt二进制程序,需要执行
npm install grunt --save
这个文件需要修改一下
无所谓--这个操作
需要配置一下
是否支持跨域
http.cors.enabled: true
*表示支持所有域名
http.cors.allow-origin: "*"
好开心的一个报错
If you're seeing this message, grunt hasn't been installed locally to your p
./grunt server &
[1] 4371
[root@zhuhuibiao bin]# Loading "Gruntfile.js" tasks...ERROR
SyntaxError: Unexpected identifier
Warning: Task "server" not found. Use --force to continue.
Aborted due to warnings.
解决方案
这里是我多此一举了,我们安装后不需要去修改上面提到的文件(Gruntfile.js),默认就是本机的hostname,如果修改注意上面笔误,我加的是双引号,改为单引号,一定要符合它的js规范
修改后的样子
启动后的样子
ELK的E先到这里,接下来进行L的部署配置
数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;支持普通log、自定义json格式的日志解析
对logstash输入输出的测试
/usr/local/soft/logstash-6.3.2/bin/logstash -e 'input { stdin {} } output { stdout { codec => rubydebug} }'
对logstash输出到文件的测试
/usr/local/soft/logstash-6.3.2/bin/logstash -e 'input { stdin{} } output { file { path => "/tmp/log-%{+YYYY.MM.dd}messages.gz"}}'
输出到es测试
/usr/local/soft/logstash-6.3.2/bin/logstash -e 'input { stdin{} } output { elasticsearch {hosts => ["192.168.233.139:9200"] index => "mytest-%{+YYYY.MM.dd}" }}'
剩下的就是按照规则编写一个json文件
Kibana的部署需要修改
本文来自博客园,作者:后山人,转载请注明原文链接:https://www.cnblogs.com/zhuhuibiao/p/13601667.html
经营好自己的现在,等待未来向我飞奔而来。