es kibana .logstash离线集群安装

es离线集群安装

下载对应的版本一般看你客户端引用的是什么版本我这里下载的是7.6.2

官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch

源码安装-环境准备:在etc/hosts文件添加3台主机

java 复制代码
node-001       192.168.1.81
node-002       192.168.1.82
node-003       192.168.1.83

将上传的包放到一个目录底下我是放在 /data/elk

解压包 tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz

系统设置
设置内核参数

java 复制代码
#Elasticsearch mmapfs默认使用目录来存储其索引。默认的操作系统对mmap计数的限制可能太低,这可能会导致内存不足异常。
vi /etc/sysctl.conf
vm.max_map_count=262144

sysctl -p #执行命令sysctl -p生效

当前用户每个进程最大同时打开文件数

java 复制代码
#查看硬限制
ulimit -Hn
ulimit -Sn
#通常情况下如果值是4096启动ES时会报如下错误
#max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

修改配置文件

java 复制代码
vi /etc/security/limits.conf
* hard nofile 65537
* soft nofile 65536

sysctl -p

修改es的配置文件

java 复制代码
节点1
vi config/elasticsearch.yml
cluster.name: elk                      # 集群名称
node.name: node-001                    # 节点名称
path.data: /opt/elk/data               # 自定义数据目录
path.logs: /opt/elk/logs               # 自定义logs文件目录
network.host: 0.0.0.0                  # 配置那些ip可以访问
http.port: 9200                        # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"]  # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"]  # 配置节点信息。我上边节点名称用了node-001...这边就配置node-001...
节点2:

######## node-002

cluster.name: elk                      # 集群名称
node.name: node-002                    # 节点名称
path.data: /opt/elk/data               # 自定义数据目录
path.logs: /opt/elk/logs               # 自定义logs文件目录
network.host: 0.0.0.0                  # 配置那些ip可以访问
http.port: 9200                        # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"]  # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"]  # 配置节点信息。我上边节点名称用了node-001..
节点3:

cluster.name: elk                      # 集群名称
node.name: node-003                    # 节点名称
path.data: /opt/elk/data               # 自定义数据目录
path.logs: /opt/elk/logs               # 自定义logs文件目录
network.host: 0.0.0.0                  # 配置那些ip可以访问
http.port: 9200                        # 配置端口
discovery.seed_hosts: ["192.168.1.81:9300", "192.168.1.82:9300","192.168.1.83:9300"]  # 这是配置集群访问端口的,也可以配置为node-001......之类的只要配置了hosts就行,他会自动拼接ip:9300
cluster.initial_master_nodes: ["node-001", "node-002","node-003"]  # 配置节点信息。我上边节点名称用了node-001...这边就配置node-001...

创建ES需要的用户

root权限是直接启动不了ES的,所以需要创建启动的用户

用户名是elsearch 密码是elsearch

java 复制代码
useradd elsearch && echo "elsearch" | passwd --stdin "elsearch" # 创建一个普通用户
chown -R elsearch:elsearch /data/elk/    # 给es源码换一下所属组和主

启动es集群 启动3台机器的es

java 复制代码
./bin/elasticsearch -d  # 后台运行启动(第一次启动可以先不加-d前台运行看下有没有问题和报错

注意

java 复制代码
7点多以后es需要jdk11版本如果是jdk1.8会报错这里是使用了es自带的jdk删除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

安装kibana

官网下载linux版本:https://www.elastic.co/cn/downloads/kibana

跟es对应的版本这里是7.6.2 上传到/data/elk

java 复制代码
修改配置文件
vi config/kibana.yml
#配置端口号
server.port: 5601
#配置网络访问地址
server.host: "0.0.0.0"
#配置es链接地址(es集群,可以用逗号分隔)
elasticsearch.hosts: ["http://10.0.0.81:9200","http://10.0.0.82:9200","http://10.0.0.83:9200"]
#配置中文语言界面
i18n.locale: "zh-CN"

赋权 chown -R elsearch:elsearch /data/elk/
su elsearch

4 执行以下命令创建manage_script.sh管理脚本

java 复制代码
echo '#!/bin/bash
KIBANA_HOME="/data/elk/kibana-7.6.2-linux-x86_64" # Kibana安装目录
KIBANA_BIN="$KIBANA_HOME/bin/kibana"  # Kibana 可执行文件路径
PID_FILE="$KIBANA_HOME/kibana.pid"
LOG_FILE_PATH="$KIBANA_HOME/logs"
 
start_kibana() {
    if [ -f "$PID_FILE" ]; then
        echo "Kibana is already running."
    else
        echo "Starting Kibana..."
        mkdir -p ${LOG_FILE_PATH}
        nohup $KIBANA_BIN > "${LOG_FILE_PATH}/kibana.log" 2>&1 &
        echo $! > $PID_FILE
        echo "Kibana started."
    fi
}
 
stop_kibana() {
    if [ -f "$PID_FILE" ]; then
        PID=$(cat $PID_FILE)
        echo "Stopping Kibana..."
        kill $PID
        rm $PID_FILE
        echo "Kibana stopped."
    else
        echo "Kibana is not running."
    fi
}
 
status_kibana() {
    if [ -f "$PID_FILE" ]; then
        PID=$(cat $PID_FILE)
        if ps -p $PID > /dev/null 2>&1; then
          echo "Kibana is running. PID: $PID"
        else
          echo "Kibana is not running, but pid file exists."
        fi
    else
        echo "Kibana is not running."
    fi
}
 
case "$1" in
    start)
        start_kibana
        ;;
    stop)
        stop_kibana
        ;;
    status)
        status_kibana
        ;;
    *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
esac' > /data/elk/kibana-7.6.2-linux-x86_64/bin/manage_script.sh
chmod +x /data/elk/kibana-7.6.2-linux-x86_64/bin/manage_script.sh

启动kibana

java 复制代码
bin/manage_script.sh start

停止kibana

java 复制代码
bin/manage_script.sh stop

查看kibana的状态

java 复制代码
bin/manage_script.sh status

启动报错

java 复制代码
Illegal character in scheme name at index 0: 10.0.0.81:9200,10.0.0.82:9200,10.0.0.83:9200
这是因为elasticsearch.hosts: ["http://10.0.0.81:9200","http://10.0.0.82:9200","http://10.0.0.83:9200"]配置错了

logstash 安装

下载logstash版本 7.2.1

下载推荐到elastic中文社区,里面有elastic系列里所有的开源产品下载链接,地址如下:

https://elasticsearch.cn/download/

解压 安装包:

java 复制代码
tar zxvf logstash-7.6.2.tar.gz
赋权 chown -R elsearch:elsearch /data/elk/
su elsearch

配置kafka es

新建 myconf.conf

配置文件 编辑如下

java 复制代码
input {
        kafka {
                bootstrap_servers => "x.x.x.x:9092,x.x.x.x:9092,x.x.x.x:9092"
                group_id => "kafka_logstash"
                topics => "eoplog"
                consumer_threads => 5
                auto_commit_interval_ms => "1500"
        auto_offset_reset => "earliest"
                codec => "json"
                type => "eoplog"
                client_id => "kafka_logstash"

        }
}
output {
        elasticsearch{
		#es的地址
                hosts => ["x.x.113.15:9200"] 
                index => "eopstat-%{+YYYY.MM.dd}"
                 user => "elastic"
password => "elastic"
        }
#       stdout { codec => rubydebug }
}

置文件启动命令如下:

java 复制代码
 nohup  bin/logstash -f myconf.conf &

问题:

生成的es发现索引时间不对这个应该跟系统时间有关

"_index" : "stat-2024.10.18",

你可以使用以下命令检查当前时间和时间同步状态

timedatectl

设置正确的时区

sudo timedatectl set-timezone Asia/Shanghai

手动设置系统时间

禁用自动时间同步

sudo timedatectl set-ntp false

sudo timedatectl set-time '2024-10-18 10:02:00'

可选:重新启用自动时间同步

sudo timedatectl set-ntp true

相关推荐
只会copy的搬运工37 分钟前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
云云3211 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
新加坡内哥谈技术1 小时前
苏黎世联邦理工学院与加州大学伯克利分校推出MaxInfoRL:平衡内在与外在探索的全新强化学习框架
大数据·人工智能·语言模型
Data-Miner2 小时前
经典案例PPT | 大型水果连锁集团新零售数字化建设方案
大数据·big data
lovelin+v175030409662 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
测试杂货铺2 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
道一云黑板报3 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
节点。csn3 小时前
flink集群搭建 详细教程
大数据·服务器·flink
数据爬坡ing3 小时前
小白考研历程:跌跌撞撞,起起伏伏,五个月备战历程!!!
大数据·笔记·考研·数据分析
云云3214 小时前
云手机方案全解析
大数据·服务器·安全·智能手机·矩阵