北京公司網(wǎng)站建設(shè)價格廣州網(wǎng)站制作服務(wù)
es離線集群安裝
下載對應(yīng)的版本一般看你客戶端引用的是什么版本我這里下載的是7.6.2
官方下載地址:https://www.elastic.co/cn/downloads/elasticsearch
源碼安裝-環(huán)境準(zhǔn)備:在etc/hosts文件添加3臺主機
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
系統(tǒng)設(shè)置
設(shè)置內(nèi)核參數(shù)
#Elasticsearch mmapfs默認(rèn)使用目錄來存儲其索引。默認(rèn)的操作系統(tǒng)對mmap計數(shù)的限制可能太低,這可能會導(dǎo)致內(nèi)存不足異常。
vi /etc/sysctl.conf
vm.max_map_count=262144sysctl -p #執(zhí)行命令sysctl -p生效
當(dāng)前用戶每個進程最大同時打開文件數(shù)
#查看硬限制
ulimit -Hn
ulimit -Sn
#通常情況下如果值是4096啟動ES時會報如下錯誤
#max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改配置文件
vi /etc/security/limits.conf
* hard nofile 65537
* soft nofile 65536sysctl -p
修改es的配置文件
節(jié)點1
vi config/elasticsearch.yml
cluster.name: elk # 集群名稱
node.name: node-001 # 節(jié)點名稱
path.data: /opt/elk/data # 自定義數(shù)據(jù)目錄
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"] # 配置節(jié)點信息。我上邊節(jié)點名稱用了node-001...這邊就配置node-001...
節(jié)點2:######## node-002cluster.name: elk # 集群名稱
node.name: node-002 # 節(jié)點名稱
path.data: /opt/elk/data # 自定義數(shù)據(jù)目錄
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"] # 配置節(jié)點信息。我上邊節(jié)點名稱用了node-001..
節(jié)點3:cluster.name: elk # 集群名稱
node.name: node-003 # 節(jié)點名稱
path.data: /opt/elk/data # 自定義數(shù)據(jù)目錄
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"] # 配置節(jié)點信息。我上邊節(jié)點名稱用了node-001...這邊就配置node-001...
創(chuàng)建ES需要的用戶
root權(quán)限是直接啟動不了ES的,所以需要創(chuàng)建啟動的用戶
用戶名是elsearch 密碼是elsearch
useradd elsearch && echo "elsearch" | passwd --stdin "elsearch" # 創(chuàng)建一個普通用戶
chown -R elsearch:elsearch /data/elk/ # 給es源碼換一下所屬組和主
啟動es集群 啟動3臺機器的es
./bin/elasticsearch -d # 后臺運行啟動(第一次啟動可以先不加-d前臺運行看下有沒有問題和報錯
注意
7點多以后es需要jdk11版本如果是jdk1.8會報錯這里是使用了es自帶的jdk刪除elasticsearch-env文件里面的
# now set the path to java
if [ ! -z "$JAVA_HOME" ]; thenJAVA="$JAVA_HOME/bin/java"JAVA_TYPE="JAVA_HOME"
elseif [ "$(uname -s)" = "Darwin" ]; then# macOS has a different structureJAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"elseJAVA="$ES_HOME/jdk/bin/java"fiJAVA_TYPE="bundled jdk"
fi
安裝kibana
官網(wǎng)下載linux版本:https://www.elastic.co/cn/downloads/kibana
跟es對應(yīng)的版本這里是7.6.2 上傳到/data/elk
修改配置文件
vi config/kibana.yml
#配置端口號
server.port: 5601
#配置網(wǎng)絡(luò)訪問地址
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"賦權(quán) chown -R elsearch:elsearch /data/elk/
su elsearch
4 執(zhí)行以下命令創(chuàng)建manage_script.sh管理腳本
echo '#!/bin/bash
KIBANA_HOME="/data/elk/kibana-7.6.2-linux-x86_64" # Kibana安裝目錄
KIBANA_BIN="$KIBANA_HOME/bin/kibana" # Kibana 可執(zhí)行文件路徑
PID_FILE="$KIBANA_HOME/kibana.pid"
LOG_FILE_PATH="$KIBANA_HOME/logs"start_kibana() {if [ -f "$PID_FILE" ]; thenecho "Kibana is already running."elseecho "Starting Kibana..."mkdir -p ${LOG_FILE_PATH}nohup $KIBANA_BIN > "${LOG_FILE_PATH}/kibana.log" 2>&1 &echo $! > $PID_FILEecho "Kibana started."fi
}stop_kibana() {if [ -f "$PID_FILE" ]; thenPID=$(cat $PID_FILE)echo "Stopping Kibana..."kill $PIDrm $PID_FILEecho "Kibana stopped."elseecho "Kibana is not running."fi
}status_kibana() {if [ -f "$PID_FILE" ]; thenPID=$(cat $PID_FILE)if ps -p $PID > /dev/null 2>&1; thenecho "Kibana is running. PID: $PID"elseecho "Kibana is not running, but pid file exists."fielseecho "Kibana is not running."fi
}case "$1" instart)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
bin/manage_script.sh start
停止kibana
bin/manage_script.sh stop
查看kibana的狀態(tài)
bin/manage_script.sh status
啟動報錯
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中文社區(qū),里面有elastic系列里所有的開源產(chǎn)品下載鏈接,地址如下:
https://elasticsearch.cn/download/
解壓 安裝包:
tar zxvf logstash-7.6.2.tar.gz
賦權(quán) chown -R elsearch:elsearch /data/elk/
su elsearch
配置kafka es
新建 myconf.conf
配置文件 編輯如下
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 => 5auto_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 }
}
置文件啟動命令如下:
nohup bin/logstash -f myconf.conf &
問題:
生成的es發(fā)現(xiàn)索引時間不對這個應(yīng)該跟系統(tǒng)時間有關(guān)
“_index” : “stat-2024.10.18”,
你可以使用以下命令檢查當(dāng)前時間和時間同步狀態(tài)
timedatectl
設(shè)置正確的時區(qū)
sudo timedatectl set-timezone Asia/Shanghai
手動設(shè)置系統(tǒng)時間
禁用自動時間同步
sudo timedatectl set-ntp false
sudo timedatectl set-time ‘2024-10-18 10:02:00’
可選:重新啟用自動時間同步
sudo timedatectl set-ntp true