本篇文章主要介绍在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版本选择_linux

显示如下说明安装成功

安装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

ELK的版本 elk版本选择_配置文件_02

二、rpm安装elasticsearch
rpm -ivh elasticsearch-7.1.0.rpm

ELK的版本 elk版本选择_ELK的版本_03

查找安装路径,一般是装在/usr/share/elasticsearch/下。

rpm -ql elasticsearch

ELK的版本 elk版本选择_ELK的版本_04

三、设置data目录、log目录

1、设置data的目录

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

mkdir -p /data/es-data

修改该目录的拥有者为elasticsearch

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

2、设置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

ELK的版本 elk版本选择_配置文件_05

配置文件内容如下:

#设置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: "*"

ELK的版本 elk版本选择_elasticsearch_06

五、启动elasticsearch
启动
systemctl start elasticsearch
查看状态
systemctl status elasticsearch
设置开机启动
systemctl enable elasticsearch

ELK的版本 elk版本选择_ELK的版本_07

六、开启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

这里是演示了查看索引

ELK的版本 elk版本选择_linux_08

控制台输入:curl http://127.0.0.1:9200

ES的基本使用可以参考:

ES安装ik分词器

1、创建一个指定的文件夹:
cd /usr/share/elasticsearch/elasticsearch-7.1.0/plugins
mkdir analysis-ik
2、使用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.4
3、下载完解压
tar -zvxf elasticsearch-analysis-ik-7.1.0.tar.gz
4、重新启动ES

然后重新运行一下

如图携带的话说明成功

ELK的版本 elk版本选择_linux_09

注解:测试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

ELK的版本 elk版本选择_linux_10

二、rpm安装logstash
rpm -ivh logstash-7.1.0.rpm

ELK的版本 elk版本选择_elasticsearch_11

默认安装/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

ELK的版本 elk版本选择_centos_12

2、设置log的目录 创建/data/ls-log目录,用于logstash日志的存放

mkdir -p /log/ls-log

修改该目录的拥有者为logstash

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

ELK的版本 elk版本选择_配置文件_13

四、修改配置文件(logstash.yml)
vim /etc/logstash/logstash.yml

ELK的版本 elk版本选择_centos_14

配置文件内容:

# 设置数据的存储路径为/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.conf
input {
  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
        }
}

ELK的版本 elk版本选择_配置文件_15

详情配置参数请查看: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

ELK的版本 elk版本选择_ELK的版本_16

七、查看是否启动成功

创建一个软连接,每次执行命令的时候不用在写安装路径(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”回车,有返回的输出。

ELK的版本 elk版本选择_elasticsearch_17

ELK的版本 elk版本选择_elasticsearch_18

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 }}'

ELK的版本 elk版本选择_elasticsearch_19

安装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

ELK的版本 elk版本选择_配置文件_20

二、rpm安装kibana

rpm -ivh kibana-7.1.0-x86_64.rpm

ELK的版本 elk版本选择_elasticsearch_21

查找安装路径,一般是装在/usr/share/kibana/下。

rpm -ql kibana

ELK的版本 elk版本选择_linux_22

三、修改配置文件(kibana.yml)
vim /etc/kibana/kibana.yml

ELK的版本 elk版本选择_centos_23

配置文件内容:

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

ELK的版本 elk版本选择_centos_24

四、启动kibana
#启动
systemctl start kibana
#查看状态
systemctl status kibana
设置开机启动
systemctl enable kibana

ELK的版本 elk版本选择_配置文件_25

五、开启5601端口

注:centons6.5和7的命令有所区别,大家需要注意,笔者直接禁用了防火墙,这里就不做开启了。

firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload
六、访问kibana

http://192.168.234.155:5601

ELK的版本 elk版本选择_centos_26

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

ELK的版本 elk版本选择_ELK的版本_27

ELK的版本 elk版本选择_ELK的版本_28

四、启动filebeat
#启动
systemctl start filebeat

#查看状态
systemctl status filebeat

设置开机启动
systemctl enable filebeat

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

ELK使用

ELK的版本 elk版本选择_配置文件_29

ELK的版本 elk版本选择_ELK的版本_30

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

ELK的版本 elk版本选择_配置文件_31

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

ELK的版本 elk版本选择_配置文件_32

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

ELK的版本 elk版本选择_linux_33

更多elk使用可以参考:

常见的elk坑可参考:

ES常见的一些坑: