ELK学习1-环境搭建

环境说明

线上服务器负责匹配整理数据到 redis 中存储,本地把 redis 里的日志文件再致使 ES 中。html

环境的前提是已经把 java 8 安装好java

yum 软件安装后占用大小node

  • java-1.8.0 = 178M
  • logstash = 290M
  • elasticsearch = 469M
  • kibana = 688M

如下以 centos7 yum 方式安装linux

java 8 安装

# yum search java-1.8.0

# #找到 java-1.8.0-openjdk-devel

# yum install java-1.8.0-openjdk-devel

# #添加环境变量

# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# #JAVA_HOME 须要替换成你服务器的目录,cd /usr/lib/jvm/java + tab 进入,pwd 显示全路径

# #验证

# java -version

ElasticSearch

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install elasticsearch

yum elasticsearch 安装redis

配置shell

Logstash

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/logstash.repo
[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install logstash

# #启用慢处理
# yum install haveged
# systemctl start haveged

# #安装服务
# cd /usr/share/logstash/bin
# ./system-install /etc/logstash/startup.options systemd
# vi /etc/logstash/logstash.yml
node.name: test

mkdir 755 /var/log/logstash
chown logstash:logstash /var/log/logstash

chown logstash:logstash /etc/logstash/startup.options

# #启用
# systemctl start logstash

yum logstash 安装
添加 logstash 到windows 服务windows

FQA:centos

一、服务启动不了服务器

经过查看系统日志来查看错误,systemctl 启动时没有任何信息出来,经过 ps aux |grep logstash 查看有没有进行启动。也能够经过 systemctl status logstash 查看状态。信息中会出现最后一些中止的时候,咱们能够判断是否是报错了,经过 /var/log/message 查看错误内容,若是不确认是否是当次的报错可使用 tail -f /var/log/message 执行后回车留空几行(在单独一个窗口中)。再启动 logstash 就能够获得错误信息。咱们只须要关注 [ERROR|error] 标识里的 :message 信息便可并发

could not find java; set JAVA_HOME or ensure java is in PATH

二、匹配过的数据第二次就再也不进行匹配了

这是 logstash.sincedb 的做用。咱们须要在 pipeline.input.sincedb_path 中进行设置便可,linux 设置为 "/dev/null",windows 设置成 "NUL" 便可不记录处理历史。

三、 Ignoring the 'pipelines.yml' file because modules or command line options are specified

这个问题是我手贱动配置致使的问题,logstash.yml 里的 Pipeline Configuration Settings 下的配置不要动,会出上面的那个提示。(单个 pipeline 的时候感受不到问题,可是如何是多个就会出现失效的错觉)

四、logstash 启动慢设置

logstash 启动缓慢问题-haveged安装

Note: 不知道是否是由于用了虚拟机的问题,感受运行速度没有什么变化。

五、ERROR No configuration found in the configured sources.

这个错误是由于你没有 pipeline 而报的错

六、为何无论 linux 仍是 windows 服务都会出现重启的问题
// TODO 未找到缘由

经验

若是没有用过的软件,配置文件只动必需动的。不要软件还没能正常启动就处处动配置(固然你自信对配置了如指掌能够忽略),到时出错调试到你头秃。

Kibana

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# vi /etc/yum.repos.d/kibana.repo
[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

# yum install kibana

yum kibana 安装

Redis

redis 安装

ELK 整合

使用 nssm 设置 windows 服务

参考文章

# 服务管理
任务管理器 -> 服务 -右键-> [启动服务|中止服务]

# 删除服务
sc delete 服务名

FQA

为何作先存储到 redis 再导入 ES

由于是集中式日志系统,咱们会有多台服务器,每台服务器都会监听日志文件,日志文件的生成数量是不同的,这会形成并发高而致使 ES 写入失败。redis 在这里的是起一个排队的做用(起码能保存能写入完成再进行下一次写入),还可使用 kafka 来代替,内存抗压强,读写快。

旧日志如何初始化导入 ES 中

若是 logstash.pipeline 没有生成 sincedb 文件,会把日志文件所有从新处理。已有则能够删除 sincedb 文件再启动便可。

相关文章
相关标签/搜索