centos7 部署 ELK 日志系统

Posted intermittent-psychosis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 部署 ELK 日志系统相关的知识,希望对你有一定的参考价值。

ELK(elasticsearch、logstash、kibana)可以作为日志收集及分析的一整套系统,通过阿里的普及也有越来越多的公司在使用,使用下来功能还可以,这里整理记录一个部署手册。  为了方便,将ELK都部署在一台os里。

一、环境准备

 操作系统:centos7(CentOS-7-x86_64-Minimal-1708)

 CPU:1核

 内存:4G

 

 可以在你的windows上安装CRT远程执行命令行和传输文件。

1.1 安装vim、wget

 yum install -y vim wge

二、安装Java环境

 根据官方的描述,

 Elasticsearch要求是java8以上。

 Logstash要求是Java 8,不支持Java 9。

yum -y install epel* java

 # 可以用下面的命令查看java的环境变量是否生效出现下面的内容就说明java的jdk已经部署完。

jjava -version

三、部署elasticsearch

 3.1 yum安装elasticsearch

 # 获取rpm包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-x86_64.rpm

 # 安装

rpm -ivh elasticsearch-7.1.1-x86_64.rpm

 #查找安装路径

rpm -ql elasticsearch

一般是装在/usr/share/elasticsearch/下。

 

 3.2 设置data的目录

 # 创建/data/es-data目录,用于elasticsearch数据的存放

mkdir -p /data/es-data

 # 修改该目录的拥有者为elasticsearch

chown -R elasticsearch:elasticsearch /data/es-data

 

 3.3 设置log的目录

 #  创建/data/es-log目录,用于elasticsearch日志的存放

mkdir -p /log/es-log

 # 修改该目录的拥有者为elasticsearch

chown -R elasticsearch:elasticsearch /log/es-log

 

 3.4 修改配置文件elasticsearch.yml

vim /etc/elasticsearch/elasticsearch.yml

 

 根据下面的内容进行修改,wq保存。 

#设置data存放的路径为/data/es-data
path.data: /data/es-data
 
#设置logs日志的路径为/log/es-log
path.logs: /log/es-log
 
#设置内存不使用交换分区
bootstrap.memory_lock: false
 
#配置了bootstrap.memory_lock为true时反而会引发9200不会被监听,原因不明
 
#设置允许所有ip可以连接该elasticsearch
network.host: 0.0.0.0
 
#开启监听的端口为9200
http.port: 9200
 
#增加新的参数,为了让elasticsearch-head插件可以访问es (5.x版本,如果没有可以自己手动加)
http.cors.enabled: true
http.cors.allow-origin: "*"
 

 

 3.5 启动elasticsearch

 # 启动

systemctl start elasticsearch

 # 查看状态

systemctl status elasticsearch

 # 设置开机启动

systemctl enable elasticsearch

 

 3.6 开启9200端口

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --reload

 

 3.7 测试安装是否成功

 # 安装net-tools 

yum install -y net-tools

 # 检查9200是否有监听

netstat -antp |grep 9200

技术图片

 

curl http://127.0.0.1:9200

  有下面类似的内容才说明elasticsearch正常启动。

技术图片

   


四、部署logstash

 4.1 yum安装logstash

 # 获取rpm包

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.1.rpm

 # 安装

rpm -vih logstash-7.1.1.rpm

 

 4.2 设置data的目录

 # 创建/data/ls-data目录,用于logstash数据的存放

mkdir -p /data/ls-data

 # 修改该目录的拥有者为logstash

chown -R logstash:logstash /data/ls-data

 

 4.3 设置log的目录

 #  创建/data/ls-log目录,用于logstash日志的存放

mkdir -p /log/ls-log

 # 修改该目录的拥有者为logstash

chown -R logstash:logstash /log/ls-log

 

 4.4 修改配置文件logstash.yml

vim /etc/logstash/logstash.yml

 

 根据下面的内容进行修改,wq保存。

# 设置数据的存储路径为/data/ls-data
path.data: /data/ls-data
 
# 设置管道配置文件路径为/etc/logstash/conf.d
path.config: /etc/logstash/conf.d
 
# 设置日志文件的存储路径为/log/ls-log
path.logs: /log/ls-log
 

 

 4.5 启动logstash

 # 启动

systemctl start logstash

 # 查看状态

systemctl status logstash

 # 设置开机启动

systemctl enable logstash

 

 4.6 测试安装是否成功

 # 查看下logstash的安装目录

rpm -ql logstash

 # 创建一个软连接,每次执行命令的时候不用在写安装路径(yum安装是在/usr/share下)

ln -s /usr/share/logstash/bin/logstash /bin/

 # 执行logstash的命令

logstash -e ‘input  stdin    output  stdout  ‘

 等待片刻后出现“The stdin plugin is now waiting for input:”,输入“abc”回车,有返回的输出。

技术图片

 

 ctrl+c退出。 

 

 如果标准输出还有elasticsearch中都需要保留,看下面

 # 192.168.12.16是试验elk的ip

 /usr/share/logstash/bin/logstash -e ‘input stdin output elasticsearch hosts => ["192.168.12.16:9200"] stdout codec => rubydebug ‘

 

 等待片刻后出现“The stdin plugin is now waiting for input:”,输入“test”回车,返回下面标准的输出。

技术图片

  


 五、部署kibana

 5.1 yum安装kibana

 # 获取安装包

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-x86_64.rpm

 # 安装

rpm -ivh kibana-7.1.1-x86_64.rpm

 

 5.2 修改kibana.yml

 # 搜索rpm包

rpm -ql kibana

 默认是装在/usr/share/kibana/下。

 

 # 修改kibana的配置文件

vim /etc/kibana/kibana.yml

 

 # 修改kibana.xml下面的内容,wq保存。

#kibana页面映射在5601端口
server.port: 5601
 
#允许所有ip访问5601端口
server.host: "0.0.0.0"
 
#elasticsearch所在的ip及监听的地址
elasticsearch.url: "http://localhost:9200"
 
kibana.index: ".kibana"
 

 

 5.3 启动kibana

  # 启动 

systemctl start kibana

 # 查看状态 

systemctl status kibana

 # 设置开机启动 

systemctl enable kibana

 

 5.4 开放端口5601

  # 设置防火墙 

firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload

 

以上是关于centos7 部署 ELK 日志系统的主要内容,如果未能解决你的问题,请参考以下文章

centos7 部署 ELK 日志系统

Linux系统Centos7 基于Docker搭建ELK分布式日志系统

elk+filebeat+redis日志系统部署

Centos7.5搭建ELK-6.5.0日志分析平台

Centos7下ELK+Redis日志分析平台的集群环境部署记录

68-日志分析系统ELK-Elasticsearch单点部署和配置优化