elk在Linux中搭建--自用无坑版

elk在Linux中搭建

搭建之前需要先查看服务器中是否安装了jdk
java -version 查看jdk是否安装
在这里插入图片描述
java -verbose 查看jdk安装目录
在这里插入图片描述
未安装:
1.查看可安装java版本

yum -y list java*

2.安装

yum install -y java-1.8.0-openjdk-devel.x86_64

~~ 下面正式开始搭建旅程 ~~

一.下载elasticsearch(两种下载方式,推荐采用rpm下载)

(一)使用tar包下载

1.直接进入elasticsearch的官网https://www.elastic.co/downloads/elasticsearch,下载最新的安装包:

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/elasticsearch-6.3.1.tar.gz

2.安装位置:

cd /usr/es

3.解压

tar -zxvf elasticsearch-6.3.1.tar.gz

4.创建用户(使用非root启动)
(1)创建elsearch用户组及elsearch用户

groupadd elastic
useradd elastic -g elastic -p elasticsearch
chown -R elsearch:elsearch  elasticsearch

(2)切换到elsearch用户再启动

su elsearch #切换账户
cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录
./elasticsearch

5.查看后台命令是否启动成功

ps aux|grep elasticsearch
(二)rpm下载

1、Elasticsearch下载
在官网https://www.elastic.co/downloads/elasticsearch下载elasticsearch的rpm包或者直接在终端wget下载:

[root@localhost es]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm

2、安装rpm包

[root@localhost es]# rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm

在这里插入图片描述
3、开启Elasticsearch服务

[root@localhost es]#  service elasticsearch start
或者
[root@localhost es]#  systemctl start elasticsearch 

4、测试Elasticsearch是否安装成功

[root@localhost es]#  curl -XGET 'http://localhost:9200'

如果出现以下内容说明安装成功了
在这里插入图片描述
5.设置Elasticsearch随机自启

systemctl status elasticsearch
service elasticsearch start
service elasticsearch status
systemctl status elasticsearch
systemctl enable elasticsearch

6.开启nginx端口

(1) firewall-cmd --state 检查防火墙状态
(2)firewall-cmd --list-ports 查看已经开放的端口
(3)sudo firewall-cmd --zone=public --add-port=9200/tcp  开放9200端口
(4)systemctl restart firewalld 重启防火墙

此时如不需要开启防火墙可关闭

(三)配置es

官方的配置文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/rpm.html
1.elasticsearch配置文件在这两个地方,有两个配置文件:
在这里插入图片描述
elasticsearch.yml 文件用于配置集群节点等相关信息的
在这里插入图片描述
elasticsearch 文件则是配置服务本身相关的配置,例如某个配置文件的路径以及java的一些路径配置什么的。
在这里插入图片描述
2.开始配置集群节点,在服务器上编辑配置文件:

[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml  # 增加或更改以下内容
http.cors.enabled: true    # 配置head
http.cors.allow-origin: "*"  # 配置head
#http.port: 9200  # es服务的端口号,默认可不配置
#
cluster.name: es_test   # 集群中的名称
#
node.name: node-1    # 该节点名称
#
node.master: true   # 意思是该节点为主节点
#
node.data: true    # 表示该节点是数据节点
#
network.host: ip  # 监听全部ip,在实际环境中应设置为一个安全的ip
#
network.publish_host: ip 
#
network.bind_host: ip 
#
#discovery.zen.ping.multicast.enabled: false 
#
discovery.zen.ping.unicast.hosts: ["主节点ip", "子节点ip"] # 配置自动发现所有节点
#
transport.tcp.port: 9300  # tcp外部访问
#
#index.analysis.analyer.default.tokenizer : "ik_max_word"  # ik分词器
#
#index.analysis.analyer.default.type : "ik"  #  ik分词器

注意:以上配置每行结束都要添加空格,行与行之间空一行
3.完成以上的配置之后,到主节点上,启动es服务:

systemctl start elasticsearch.service

二、安装Head 插件

Elasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等。
1、下载elasticsearch-head并解压
在线下载:

wget  https://github.com/mobz/elasticsearch-head/archive/master.zip

或者到github下载:(采用这一种)
https://github.com/mobz/elasticsearch-head

unzip  elasticsearch-head-master.zip //解压zip文件
mv  elasticsearch-head-master.zip  /home/ntc/code/elasticsearch-head //解压到自定义目录并修改文件夹名为elasticsearch-head

2、安装node
由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)

wget  https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
tar -xvf  node-v8.11.3-linux-x64.tar.xz

3.解压完node的安装文件后,需要配置下环境变量,编辑/etc/profile,添加

#配置jdk 如果配置过可以省略
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin:$PATH
#配置nodejs
export NODEJS_HOME=/usr/share/es/node-v8.11.3-linux-x64
export PATH=$PATH:$NODEJS_HOME/bin

4.保存后别忘记立即执行以下

source /etc/profile

5.这个时候可以测试一下node是否生效:
在这里插入图片描述
5、安装grunt
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动的。
(1)安装一下grunt:

cd  /usr/share/es/elasticsearch-head-master

(2)安装nodejs

npm install -g grunt-cli  //执行后会生成node_modules文件夹
npm install

注:5.0以上,elasticsearch-head 不能放在elasticsearch的 plugins、modules 目录下,否则elasticsearch启动会报错
6、修改head源码

vi /usr/share/es/elasticsearch-head-master/Gruntfile.js
connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',
            base: '.',
            keepalive: true
        }
    }
}

增加hostname属性,设置为*
7.修改连接地址:
(1)目录:

vi /es/install/es/elasticsearch-head-master/_site/app.js

(2)修改head的连接地址:

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
把localhost修改成你es的服务器地址,如:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://ip:9200";

8、运行head 启动nodejs
(1)cd /es/install/es/elasticsearch-head-master //先跳转到head目录下
(2)grunt server //若想在后台运行,结尾追加“&”
或者使用 nohup grunt server & 启动(日志打印在nohup.out中)
9.发现head没有连接到elasticsearch

在这里插入图片描述
关闭elasticsearch,到config文件夹下
打开/etc/elasticsearch/elasticsearch.yml文件,在文件的末尾添加

http.cors.enabled: true
http.cors.allow-origin: "*"

10.重启elasticsearch和head
11.再次访问

http://ip:9100

三:安装kibana

1.在主节点上安装:

[root@localhost ~]# yum -y install kibana 

若yum安装的速度太慢,可以直接下载rpm包来进行安装:

[root@localhost ~]# cd /es/install/kibana
[root@localhost es]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.1-x86_64.rpm
[root@localhost es]# rpm -ivh kibana-6.3.1-x86_64.rpm

2.安装完成后,对kibana进行配置:
在这里插入图片描述

[root@localhost ~]# vim /etc/kibana/kibana.yml  # 增加以下内容
server.port: 5601  # 配置kibana的端口
server.host: ip  # 配置监听ip
elasticsearch.url: "http://ip:9200"  # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
logging.dest: /var/log/kibana.log  # 配置kibana的日志文件路径,不然默认是messages里记录日志

3.创建日志文件:

[root@localhost ~]# touch /var/log/kibana.log 
[root@localhost ~]# chmod 777 /var/log/kibana.log

4.启动kibana服务,并检查进程和监听端口:

[root@localhost ~]# systemctl start kibana
[root@localhost ~]# ps aux |grep kibana

在这里插入图片描述
[root@localhost ~]# netstat -lntp |grep 5601在这里插入图片描述
注:由于kibana是使用node.js开发的,所以进程名称为node
5.访问
然后在浏览器里进行访问,如:http://ip:5601/,由于并没有安装x-pack,所以此时是没有用户名和密码的,可以直接访问的
到此kibana就安装完成了,很简单,接下来就是安装logstash,不然kibana是没法用的。

四.安装logstash(两种方式安装)

(一)tar安装

logstash的安装和elasticsearch的安装是一样简单的,就是那种拆箱即用的。注意版本需要和elasticsearch的版本一致。
1.下载安装

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.tar.gz

2.下载完之后解压

tar -xvf logstash-6.3.1.tar.gz 

3.启动服务测试一下是否安装成功:

cd /usr/share/es/logstash-6.3.1/bin
./logstash -e 'input { stdin { } } output { stdout {} }'

如果出现下面的东西就表示成功:
在这里插入图片描述
输入随便什么内容:
HelloWorld
展示出如下内容则表示成功

在这里插入图片描述

(二)npm下载

1、logstash下载
在官网https://www.elastic.co/downloads/kibana下载logstash的rpm包或者直接在终端wget下载:

[root@localhost es]#wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.rpm

2、安装rpm包

[root@localhost es]# rpm -ivh logstash-6.3.1.rpm

3.启动服务测试一下是否安装成功:

cd /usr/share/logstash/bin
./logstash -e 'input { stdin { } } output { stdout {} }'

如果出现下面的东西就表示成功:
在这里插入图片描述

输入随便什么内容:
HelloWorld
展示出如下内容则表示成功

在这里插入图片描述

4.同步MySQL数据
(1)创建文件夹与文件

cd /usr/share/es/logstash/bin
mkdir config-mysql
cd config-mysql
touch mysql.conf

(2)配置mysql.conf --同步多表就是在input和output 中添加type,但注意type对应要一致

input {
  jdbc {
    type => "test1表名"
    jdbc_driver_library => "/usr/es/elasticsearch-jdbc-2.3.4.0/lib/mysql-connector-java-5.1.38.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ip:3306/数据库?useUnicode=true&characterEncoding=utf8&useSSL=false"
    jdbc_user => "root"
    jdbc_password => "password"
    jdbc_page_size => 100
    jdbc_paging_enabled => true
    jdbc_default_timezone => "Asia/Shanghai"
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "* * 1 * *"
    tracking_column => "id"
    tracking_column_type => "numeric"
    use_column_value => true
    statement => "SELECT * from test1表名"
  }
  jdbc {
    type => "test2表名"
    jdbc_driver_library => "/usr/es/elasticsearch-jdbc-2.3.4.0/lib/mysql-connector-java-5.1.38.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=false"
    jdbc_user => "root"
    jdbc_password => "password"
    jdbc_page_size => 100
    jdbc_paging_enabled => true
    jdbc_default_timezone => "Asia/Shanghai"
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "* * * * *"
    tracking_column => "id"
    tracking_column_type => "numeric"
    use_column_value => true
    statement => "select * from test2表名"
  }
}
filter {
  date {
    timezone => "Asia/Shanghai"
    match => [ "created_at", "yyyy-MM-dd HH:mm:ss" ]
  }
}
output {
  stdout { codec => rubydebug }
  if [type]=="test1表名"{
	  elasticsearch {
	    hosts => ["ip:9200"]
	    index => "test1表名"
	    document_id => "%{id}"
	  }
  }
  if [type]=="test2表名"{
	  elasticsearch {
	    hosts => ["ip:9200"]
	    index => "test2表名"
	    document_id => "%{id}"
	  }
  }
}

5.启动logstash进行同步表数据

./logstash -f /usr/share/es/mysql-config/wx_push_total.conf

6.如果想指定日志输出目录使用

./logstash  --path.settings /etc/logstash/ --path.data /usr/share/log/actv_activity_info.log  -f /usr/share/es/mysql-config/wx_push_total.conf

如果想释放控制台,就在命令之后加一个 & 符号,就可以后台运行了
nohup ./logstash  --path.settings /etc/logstash/ -f /usr/share/es/mysql-config/wx_push_total.conf &

nohup的意思是:当终端断开(hang up)后,服务仍然在后台执行,需要注意的是,我们需要在nohup命令执行后,按任意键回到shell提示符后,再退出终端。
7.查看日志

 tail -f /var/log/logstash/logstash-plain.log -n100

使用nohup命令后台启动查看日志
在这里插入图片描述
(1)找到nohup.out文件
在这里插入图片描述
2)查看日志

tail -f -n100 /usr/share/logstash/bin/nohup.out

~~ 以下仅供参考
五.安装ik中文分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases

六.获取当前版本

rpm -qa|grep elasticsearch 
rpm -qa|grep kibana
rpm -qa|grep logstash

七.删除版本

rpm -e kibana-6.4.2-1.x86_64
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值