本篇文章主要介绍在Linux(Centons7)下安装ELK部署安装 注意,logstash、es至少要有1G内存才能执行 安装elk和filebeat时版本必须一致,否者会出现报错或不兼容情况,笔者以踩过坑 在安装Logstash、es、filebeat、kibana之前,确保已经安装了Java的运行环境
安装java 在安装 Elasticsearch 之前,您需安装并配置好 JDK, 设置好环境变量 $JAVA_HOME。 众所周知,Elasticsearch 版本很多,不同的版本对 Java 的依赖也有所差别: Elasticsearch 5 需要 Java 8 以上版本; Elasticsearch 6.5 开始支持 Java 11; Elasticsearch 7.0 开始,内置了 Java 环境,所以说,安装 7.0+ 版本会方便很多。 1.yum 安装JDK 2.配置环境变量
1.安装JDK
命令:yum install java-1.8.0-openjdk-devel.x86_64 出现如下显示时输入y,进行安装
2.配置环境变量
安装默认是在etc/profile下
vi /etc/profile在最后添加如下
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.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为你安装java的位置,笔者这边是默认位置,如果你设置了指定位置,请按文件位置修改保存关闭后,执行,让配置生效:
source /etc/profile测试JDK是否安装成功
输入java -version

显示如下说明安装成功
安装elk,笔者这边使用的是两个服务器,一个服务器安装elk,另外一个使用filebeat是收集keystone的日志。
安装ES操作流程 1.wget下载elasticsearch包 2.rpm安装elasticsearch 3.设置data目录、log目录 4.修改配置文件(elasticsearch.yml) 5.启动elasticsearch 6.开启9200端口 7.查看是否启动成功 8.访问elasticsearch
1、wget下载elasticsearch包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0.rpm
二、rpm安装elasticsearch
rpm -ivh elasticsearch-7.1.0.rpm
查找安装路径,一般是装在/usr/share/elasticsearch/下。
rpm -ql elasticsearch
三、设置data目录、log目录
1、设置data的目录
创建/data/es-data目录,用于elasticsearch数据的存放
mkdir -p /data/es-data修改该目录的拥有者为elasticsearch
chown -R elasticsearch:elasticsearch /data/es-data2、设置log的目录
创建/data/es-log目录,用于elasticsearch日志的存放
mkdir -p /log/es-log修改该目录的拥有者为elasticsearch
chown -R elasticsearch:elasticsearch /log/es-log四、修改配置文件(elasticsearch.yml)
vim /etc/elasticsearch/elasticsearch.yml
配置文件内容如下:
#设置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: "*"
五、启动elasticsearch
启动
systemctl start elasticsearch
查看状态
systemctl status elasticsearch
设置开机启动
systemctl enable elasticsearch
六、开启9200端口
注:centons6.5和7的命令有所区别,大家需要注意,笔者直接禁用了防火墙,这里就不做开启了。
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --reload七、查看是否启动成功
# 查看端口监听
netstat -antp |grep 9200
#查看进程
ps -ef | grep elasticsearch八、访问elasticsearch
浏览器访问:http://192.168.234.155:9200
这里是演示了查看索引

控制台输入:curl http://127.0.0.1:9200
ES的基本使用可以参考:
ES安装ik分词器
1、创建一个指定的文件夹:
cd /usr/share/elasticsearch/elasticsearch-7.1.0/plugins
mkdir analysis-ik2、使用wget下载ik分词器
Wget https:///medcl/elasticsearch-analysis-ik/archive/refs/tags/v7.1.0.tar.gz注解:ik分词器版本必须和es版本相同,详细版本参考
https:///medcl/elasticsearch-analysis-ik/releases?after=v6.1.43、下载完解压
tar -zvxf elasticsearch-analysis-ik-7.1.0.tar.gz4、重新启动ES
然后重新运行一下
如图携带的话说明成功

注解:测试IK分词器请查看ES使用链接
安装logstash
①、wget下载logstash包 ②、rpm安装logstash ③、设置data目录、log目录 ④、修改配置文件(logstash.yml) ⑤、启动logstash ⑥、查看是否安装成功
1.wget下载logstash包
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.0.rpm也可以去官网下:https:///cn/downloads

二、rpm安装logstash
rpm -ivh logstash-7.1.0.rpm
默认安装/usr/share/logstash下,可以使用命令查找
rpm -ql logstash三、、设置data目录、log目录
1、设置data的目录
创建/data/ls-data目录,用于logstash数据的存放
mkdir -p /data/ls-data修改该目录的拥有者为logstash
chown -R logstash:logstash /data/ls-data
2、设置log的目录 创建/data/ls-log目录,用于logstash日志的存放
mkdir -p /log/ls-log修改该目录的拥有者为logstash
chown -R logstash:logstash /log/ls-log
四、修改配置文件(logstash.yml)
vim /etc/logstash/logstash.yml
配置文件内容:
# 设置数据的存储路径为/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五、添加conf.d文件的配置
cd etc/logstash/conf.d/
mkdir logsatsh.conf
vi logstash.confinput {
beats {
port => 5044
}
}
filter{
if [fields][service] == "project_name" {
grok {
match => { "message" => "\s*%{TIMESTAMP_ISO8601:log_print_time} \s*%{LOGLEVEL:log_level} \s*\[%{DATA:thread_number}\] \s*%{LOGLEVEL:log_level1} \s*%{DATA:method}\-\> \s*(?<info>([\s\S]*))"}
}
date {
match => ["log_print_time", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
mutate {
remove_field => ["log_print_time"]
}
}
}
output {
if[fields][service] == "project_name" {
elasticsearch {
hosts => ["172.30.1.45:9200"]
index => "project_name-%{+YYYY.MM.dd}"
}
}
stdout {
codec=> rubydebug
}
}
详情配置参数请查看:http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/get_start/install.html
Filter中的grok正则匹配可以参考filebeat中的
cd ..
vi usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns六、启动logstash
#启动
systemctl start logstash
#查看状态
systemctl status logstash
设置开机启动
systemctl enable 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退出。测试输出
# 192.168.234.155是试验elk的ip
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.234.155:9200"] } stdout { codec => rubydebug }}'
安装kibana
①、wget下载kibana包 ②、rpm安装kibana ③、修改配置文件(kibana.yml) ④、启动kibana ⑤、开启5601端口 ⑥、访问kibana
一、wget下载kibana包
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.0-x86_64.rpm也可以去官网下:https:///cn/downloads

二、rpm安装kibana
rpm -ivh kibana-7.1.0-x86_64.rpm

查找安装路径,一般是装在/usr/share/kibana/下。
rpm -ql kibana
三、修改配置文件(kibana.yml)
vim /etc/kibana/kibana.yml
配置文件内容:
#kibana页面映射在5601端口
server.port: 5601
#允许所有ip访问5601端口
server.host: "0.0.0.0"
#elasticsearch所在的ip及监听的地址
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"
四、启动kibana
#启动
systemctl start kibana
#查看状态
systemctl status kibana
设置开机启动
systemctl enable kibana
五、开启5601端口
注:centons6.5和7的命令有所区别,大家需要注意,笔者直接禁用了防火墙,这里就不做开启了。
firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload六、访问kibana
http://192.168.234.155:5601

kibana使用可以参考:
安装filebeat
接下来安装filebeat是在另外一台服务器安装的,笔者这边是直接跟据keystone日志目录去收集的,详细日志请查看自己的日志目录
①、wget下载filebeat包 ②、rpm安装filebeat ③、修改配置文件(filebeat.yml) ④、启动filebeat
一、wget下载filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.0-x86_64.rpm二、rpm安装filebeat
rpm -vih filebeat-7.1.0-x86_64.rpm三、修改配置文件(filebeat.yml)
vi /etc/filebeat/filebeat.yml

四、启动filebeat
#启动
systemctl start filebeat
#查看状态
systemctl status filebeat
设置开机启动
systemctl enable filebeat如果过程中没启动起来,可以查看日志文件具体看错,笔者会在最后把elk和filebeat常踩的坑放到下边,那么启动完的话全部配置和安装已经完成,那我们接下来讲一下elk的简单使用
ELK使用


索引名称为conf.d里的logsatsh.conf文件配置的output里生成的,这里我是以时间自动生成索引

添加完以后就可以以时间查询日志

可以通过ES语法进行查询过滤

更多elk使用可以参考:
常见的elk坑可参考:
ES常见的一些坑:
















