centos7部署elk日志系统

一、创建Elk目录,下载软件压缩包

登录系统后,进入opt目录,创建Elk文件夹

[root@localhost opt]# cd /opt/
[root@localhost opt]# mkdir ElK

下载软件包

#node.js
wget https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.xz

#jdk10
wget https://repo.huaweicloud.com/java/jdk/10.0.1+10/jdk-10.0.1_linux-x64_bin.tar.gz

#elasearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz

#logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-linux-x86_64.tar.gz

#kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz

 

二、安装node和jdk
解压上面下载的压缩包,命令如下:

tar -xvf  node-v14.16.1-linux-x64.tar.xz
tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz

解压完成后可以看到 “node-v14.16.1-linux-x64” 和 “jdk-10.0.1” 两个文件夹,移动node到ElK文件夹下,

mv node-v14.16.1-linux-x64 ./ElK

配置jdk和node的系统PATH

vim /etc/profile
#java
export JAVA_HOME=/opt/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

#nodejs
export NODE_HOME=/opt/ElK/node-v14.16.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存退出后,执行: source /etc/profile 重新加载系统文件。验证是否成功:

[root@localhost ElK]# node -v
v14.16.1
[root@localhost ElK]# java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

出现上面输出说明node和jdk配置成功了。

三、安装elasearch

1.解压压缩包,把解压之后的文件移动到ElK目录下。

tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz
mv elasticsearch-7.12.0 ./ElK

2.编辑配置文件 config/elasticsearch.yml。

#打开以下配置并修改
cluster.name: myelasearch
network.host: 0.0.0.0  #用于外部访问
http.port: 9200
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

#文件结尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"

 

3.修改系统配置文件sysctl.conf,修改完记得重启系统!!!

vi /etc/security/limits.conf
#在文件末尾添加:
* soft nofile 65535
* hard nofile 65535
sudo vi /etc/sysctl.conf
#在文件末尾添加:
vm.max_map_count=262144
reboot #重启系统 
ulimit -n    #查看修改情况

4.elasticsearch在centos系统下不允许已root用户启动,所以我们创建一个新的用户“elasticsearch”。

#创建用户
adduser elasticsearch
#密码随便输入
passwd elasticsearch
#给文件夹赋予用户权限
chown -R elasticsearch /opt/
切换用户
su elasticsearch

5.启动elasticsearch

#显示启动过程
./bin/elasticsearch
#后台启动
./bin/elasticsearch -d    后台启动

第一次我选择的显示启动过程,启动成功后,重新打开一个窗口,看到以下返回说明elasticsearch 启动成功了,然后 “Ctrl +c”停用服务,改用后台启动。

[root@localhost config]# curl 127.0.0.1:9200
{
  "name" : "node-1",
  "cluster_name" : "myelasearch",
  "cluster_uuid" : "8t26YSY_Tly36t8EsdswmA",
  "version" : {
    "number" : "7.12.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
    "build_date" : "2021-03-18T06:17:15.410153305Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[root@localhost config]#

 想要停止服务时,输入 “ps -ef | grep elasticsearch”,然后 kill 对应的进程id。

[root@localhost logs]# ps -ef | grep elasticsearch
root      1785  1743  0 14:53 pts/0    00:00:00 su elasticsearch
elastic+  1930     1  3 14:54 pts/0    00:05:12 /opt/jdk-10.0.1/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io.tmpdir=/tmp/elasticsearch-2768486000531970052 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=536870912 -Des.path.home=/opt/ElK/elasticsearch-7.12.0 -Des.path.conf=/opt/ElK/elasticsearch-7.12.0/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /opt/ElK/elasticsearch-7.12.0/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elastic+  1945  1930  0 14:54 pts/0    00:00:00 /opt/ElK/elasticsearch-7.12.0/modules/x-pack-ml/platform/linux-x86_64/bin/controller
root      2857  1764  0 17:20 pts/1    00:00:00 grep --color=auto elasticsearch
[root@localhost logs]# kill 1930

 

重启服务可能遇到的问题:TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block,可以参考下面配置。

关键的参数cluster.routing.allocation.disk.threshold_enabled

(es可以根据磁盘使用情况来决定是否继续分配shard。默认设置是开启的).

为了在本地单机上测试,我自己电脑磁盘空间剩下没多少了,修改elasticsearch.yml,设置cluster.routing.allocation.disk.threshold_enabled: false。

如果后续虚拟机磁盘空间不够,启动失败了可以删除了data,logs里的文件。

四、安装logstash

解压压缩包,把解压之后的文件移动到ElK目录下,编辑配置文件config/logstash.yml

#打开并修改以下配置,用于外部访问
http.host: 0.0.0.0

在bin目录下创建 logstash.conf 文件,并写入下面代码,保存退出。

input {
  file {
        path => ["/opt/logs/*.log"]
        codec => json {
                charset => "UTF-8"
        }
 }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index => "ceshi-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

下面两种方式选一种启动logstash。

./bin/logstash -f ./bin/logstash.conf    #显示执行过程
nohup ./bin/logstash -f ./bin/logstash.conf &    #后台执行

启动成功后,验证:

[root@localhost bin]# curl 127.0.0.1:9600
{"host":"localhost.localdomain","version":"7.12.0","http_address":"0.0.0.0:9600","id":"d562e790-449c-471a-a85f-0beaf4744866","name":"localhost.localdomain","ephemeral_id":"520d56fa-bdd1-438b-a3ff-8afe292f55fe","status":"green","snapshot":false,"pipeline":{"workers":1,"batch_size":125,"batch_delay":50},"build_date":"2021-03-18T05:13:33Z","build_sha":"4399d72a9afe6f06db8adbaad8030e5b111e86b6","build_snapshot":false}[root@localhost bin]#

如果看到上面输出,说明成功了。

 

五.安装kibana

解压压缩包,把解压之后的文件移动到ElK目录下,编辑配置文件config/kibana.yml。

#端口
server.port: 5601
#外部访问
server.host: "0.0.0.0"
#调整为中文
i18n.locale: "zh-CN"

选择一种方式启动kibana。

#显示过程启动
./bin/kibana
#后台启动
nohup ./bin/kibana

启动成功后,用windows宿主机访问虚拟机ip+5601 访问kibana。出现下面界面启动成功。

 

 

 

 

 

 

六、创建索引模式

在上面logstash配置文件(logstash.conf)中path目录下创建一个日志文件,随便输入一些内容。

[root@localhost logs]# cd /opt/logs
[root@localhost logs]# vim test.log
[root@localhost logs]# 

 

点击“创建索引模式”,创建索引。

 

 

 成功后点击左侧“Discover”,进入搜索界面,ELK日志系统搭建完成。

netstat -lnp | grep 5601 查看端口占用情况。

kill -9 端口号 中断进程。

 

posted @ 2021-04-22 17:41  流浪2024  阅读(1532)  评论(0编辑  收藏  举报