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的部署需要修改

posted @ 2020-09-04 14:15  后山人  阅读(488)  评论(0编辑  收藏  举报