日志分析系统ELK安装(单机)

下载ElasticSearch、Logstash、Kibana安装包。
百度云地址: 链接:https://pan.baidu.com/s/104Qae0x5epXJO39iQzaoNw
提取码:2cl5

部署架构图

架构

elasticsearch

安装elasticsearch

因为elasticsearch不允许root用户启动,所以需要创建新的用户和组。
不能用root用户启动

#创建组
groupadd elasticsearch
#创建用户
useradd elasticsearch
#设置密码
passwd elasticsearch
#将用户添加到组
usermod -G elasticsearch elasticsearch
#给用户elasticsearch添加elasticsearch目录的权限
chown -R elasticsearch /home/elasticsearch

#解压elasticsearch安装包
tar -xvf elasticsearch-7.6.0-linux-x86_64.tar.gz -C /home/elasticsearch/
#修改elasticsearch-7.6.0的权限给elasticsearch用户和组
chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.6.0

权限修改成功

使用elasticsearch自带jdk运行

liunx修改elasticsearch-7.6.0/bin/elasticsearch-env配置文件

vi /home/elasticsearch/elasticsearch-7.6.0/elasticsearch-env

将以下内容

# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
  JAVA="$JAVA_HOME/bin/java"
  JAVA_TYPE="JAVA_HOME"
else
  if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled jdk"
fi

if [ ! -x "$JAVA" ]; then
    echo "could not find java in $JAVA_TYPE at $JAVA" >&2
    exit 1
  fi

修改成

# now set the path to java
if [ "$(uname -s)" = "Darwin" ]; then
  # macOS has a different structure
  JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
  JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"

额外说明以下windows修改方法
打开 elasticsearch-env.bat文件:
将以下内容

if defined JAVA_HOME (
  set JAVA="%JAVA_HOME%\bin\java.exe"
) else (
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set JAVA_HOME="%ES_HOME%\jdk"
)

修改成

set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"

最后启动脚本

cd /home/elasticsearch/elasticsearch-7.6.0/bin
#后台运行elasticsearch 使用elasticsearch运行
nohup ./elasticsearch &

访问地址: http://127.0.0.1:9200
访问成功

配置ES远程访问

vi /home/elasticsearch/elasticsearch-7.6.0/config/elasticsearch.yml
#取消network.host注释,并修改成下面样子
network.host: 0.0.0.0

#查出elasticsearch
ps -ef | grep elasticsearch

查进程

#kill掉elasticsearch进程
kill -9 3097
#再次执行查询
ps -ef | grep elasticsearch

在这里插入图片描述

#启动elasticsearch 使用elasticsearch运行
nohup ./elasticsearch &

重启错误
查看日志重启报错
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
切换root用户

vi /etc/security/limits.conf
#在倒数第二行添加以下内容
*               soft    nofile          65536
*               hard    nofile          65536

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
(elasticsearch用户拥有的内存权限太小,至少需要262144;)

vi /etc/sysctl.conf
#添加以下内容
vm.max_map_count=262144

[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改elasticsearch.yml

#取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
#启动elasticsearch
nohup ./elasticsearch &

远程访问

Logstash

Logstash介绍

Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到Elasticsearch中。

Logstash安装

logstash依赖java环境

tar -xvf logstash-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk/logstash-7.6.0/bin
#启动logstash
nohup ./logstash -f ../config/logstash-sample.conf &

上面使用的logstash-sample.conf内容以下所示
logstash
上面输出路径host为elasticsearch地址,input中的beats port 为filebeat端口号 ,根据你本地环境自行修改。

Filebeat

Filebeat简介

    Filebeat由两个主要组成部分组成:prospector(探勘者)和 harvesters(矿车)。这些组件一起工作来读取
    文件并将事件数据发送到指定的output。
 	- prospector: 负责找到所有需要进行读取的数据源
    - harvesters:负责读取单个文件的内容,并将内容发送到output中,负责文件的打开和关闭。

Filebeat安装

tar -xvf filebeat-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk
mv filebeat-7.6.0-linux-x86_64 filebeat-7.6.0
#修改filebeat.yml output elasticsearch改为logstash
vi /elk/filebeat-7.6.0/filebeat.yml
#注释掉以下内容
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"

#把logstash放开,将搜集的日志发送给logstash
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

#后台运行
nohup ./filebeat -e -c filebeat.yml > filebeat.log &

Kibana

Kibana简介

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

Kibana安装

tar -xvf kibana-7.6.0-linux-x86_64.tar.gz  -C /elk/
cd /elk
mv kibana-7.6.0-linux-x86_64 kibana-7.6.0
vi /elk/kibana-7.6.0/config/kibana.yml
#解除注释,并修改成以下内容
server.port: 5601
server.host: "0.0.0.0"     #允许远程访问
elasticsearch.hosts: ["http://localhost:9200"]    //修改成自己集群的地址
#Kibana should not be run as root. 可以新建个kibana用户和组与elasticsearch一样,这里我们直接以root用户运行
nohup ./kibana --allow-root &

运行成功
主页

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章