Commit 71fcf2d7 authored by 段孔乐's avatar 段孔乐

add install script

parent 9634a42d
ELK_VERSION=7.12.0 ELK_VERSION=7.12.0
ES_PORT1=19200
ES_PORT2=19300
LOGSTASH_PORT1=15044
LOGSTASH_PORT2=15000
LOGSTASH_PORT3=15000
LOGSTASH_PORT4=19600
KIBANA_PORT=15601
\ No newline at end of file
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/docker-elk.iml" filepath="$PROJECT_DIR$/.idea/docker-elk.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
# Elastic stack (ELK) 部署说明 # Elastic stack (ELK) 部署说明
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
本项目基于github开源项目:https://github.com/deviantony/docker-elk 本项目基于github开源项目:https://github.com/deviantony/docker-elk
项目地址:https://gitlab.33.cn/dkl/docker-elk
###测试环境 ###测试环境
http://124.71.144.118:15601/app/discover http://124.71.144.118:15601/app/discover
...@@ -15,52 +17,27 @@ Kibana 用于数据的展示 ...@@ -15,52 +17,27 @@ Kibana 用于数据的展示
Filebeat 负责数据采集 Filebeat 负责数据采集
###安装 ###安装
```console
$ git clone https://gitlab.33.cn/dkl/docker-elk.git
```
###配置
检查docker-compose.yml 端口是否有冲突, java虚拟机内存(ES_JAVA_OPTS)是否足够
.env 中可配置ELK的版本,启动时会自动拉取对应版本的镜像 wget https://gitlab.33.cn/dkl/docker-elk/-/archive/1.0.0/docker-elk-1.0.0.tar.gz
tar -zxvf docker-elk-1.0.0.tar.gz
###启动 ###启动
日志分开输出,kinaba日志会比较多,合在一起不利于分析。
```console bash start.sh
$ docker-compose up elasticsearch >es.log 2>&1 &
$ docker-compose up kinaba >kinaba.log 2>&1 &
$ docker-compose up logstash >logstash.log 2>&1 &
```
### Filebeat 部署 ### Filebeat 部署
拷贝filebeat.tgz到日志文件所在服务器,并解压 项目地址: https://gitlab.33.cn/dkl/filebeat
### 1. quick install
```console
$ tar -zxvf filebeat.tgz Download quick install script
```
修改配置文件 filebeat.yml wget https://gitlab.33.cn/dkl/filebeat/raw/master/filebeat-quick-install.sh
```yml
filebeat.inputs: Config logstash host and scan dir
- type: log
paths: vim filebeat-quick-install.sh
# **可匹配多级目录
- '/data/backend-micro/**/*.log' Run this script
exclude_files: ['stat.log$']
bash filebeat-quick-install.sh
# 注意修改为logstash安装的地址。
output.logstash:
hosts: ["127.0.0.1:15044"]
```
启动。
```console
$ ./filebeat &
```
日志查看
```console
$ tail -100f logs/filebeat
```
配置开机自启,并启动
```console
$ sh install.sh
$ sh start.sh
```
\ No newline at end of file
...@@ -15,14 +15,15 @@ services: ...@@ -15,14 +15,15 @@ services:
source: elasticsearch source: elasticsearch
target: /usr/share/elasticsearch/data target: /usr/share/elasticsearch/data
ports: ports:
- "19200:9200" - "$ES_PORT1:9200"
- "19300:9300" - "$ES_PORT2:9300"
environment: environment:
ES_JAVA_OPTS: "-Xmx512m -Xms512m" ES_JAVA_OPTS: "-Xmx512m -Xms512m"
ELASTIC_PASSWORD: changeme ELASTIC_PASSWORD: changeme
# Use single node discovery in order to disable production mode and avoid bootstrap checks. # Use single node discovery in order to disable production mode and avoid bootstrap checks.
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html # see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
discovery.type: single-node discovery.type: single-node
restart: always
networks: networks:
- elk - elk
...@@ -41,12 +42,13 @@ services: ...@@ -41,12 +42,13 @@ services:
target: /usr/share/logstash/pipeline target: /usr/share/logstash/pipeline
read_only: true read_only: true
ports: ports:
- "15044:5044" - "$LOGSTASH_PORT1:5044"
- "15000:5000/tcp" - "$LOGSTASH_PORT2:5000/tcp"
- "15000:5000/udp" - "$LOGSTASH_PORT3:5000/udp"
- "19600:9600" - "$LOGSTASH_PORT4:9600"
environment: environment:
LS_JAVA_OPTS: "-Xmx512m -Xms512m" LS_JAVA_OPTS: "-Xmx512m -Xms512m"
restart: always
networks: networks:
- elk - elk
depends_on: depends_on:
...@@ -63,7 +65,8 @@ services: ...@@ -63,7 +65,8 @@ services:
target: /usr/share/kibana/config/kibana.yml target: /usr/share/kibana/config/kibana.yml
read_only: true read_only: true
ports: ports:
- "15601:5601" - "$KIBANA_PORT:5601"
restart: always
networks: networks:
- elk - elk
depends_on: depends_on:
......
File mode changed from 100755 to 100644
kibana_host="124.71.144.118:15601"
function setDefaultIndex(){
curl --location --request POST 'http://124.71.144.118:15601/api/kibana/settings' \
--header 'kbn-version: 7.12.0' \
--header 'Content-Type: application/json' \
--data-raw "{\"changes\":{\"defaultIndex\":\"$1\"}}"
}
function addIndexPattern(){
resp=$(curl -XPOST "http://$kibana_host/api/saved_objects/index-pattern" \
--header 'kbn-version: 7.12.0' \
--header 'Content-Type: application/json' \
--data-raw "{\"attributes\":{\"title\":\"$1\",\"timeFieldName\":\"@timestamp\"}}")
if [ "$(echo "$resp" | grep -c '{"type":"index-pattern","id":"')" -lt 1 ]; then echo "addIndexPattern failed, resp:$resp"; exit; fi
id="${resp##*id\":\"}"
id="${id%%\"*}"
return "$id"
}
defaultID=addIndexPattern "*-service*"
setDefaultIndex "$defaultID"
addIndexPattern "*-service-v1*"
addIndexPattern "*-service-v2*"
addIndexPattern "auth-service-v1*"
addIndexPattern "department-service-v2*"
addIndexPattern "file-service-v1*"
addIndexPattern "gateway-service-v1*"
addIndexPattern "gateway-service-v2*"
addIndexPattern "metricbeat-*"
addIndexPattern "notify-service-v1*"
addIndexPattern "others*"
addIndexPattern "pay-service-v1*"
addIndexPattern "process-service-v2*"
addIndexPattern "proof-service-v1*"
addIndexPattern "role-service*"
addIndexPattern "role-service-v2*"
addIndexPattern "swagger-service-v1*"
addIndexPattern "swagger-service-v2*"
addIndexPattern "template-service-v2*"
addIndexPattern "trace-service-v2*"
addIndexPattern "tx-service-v1*"
addIndexPattern "user-service-v1*"
#!/bin/bash
# 字体颜色
blue(){
echo -e "\033[34m\033[01m$1\033[0m"
}
green(){
echo -e "\033[32m\033[01m$1\033[0m"
}
red(){
echo -e "\033[31m\033[01m$1\033[0m"
}
. ./.env
function checkPort(){
if [ "$(sudo netstat -nlput | grep -c $1)" -gt 0 ]; then
rad "==========================================================="
rad "The port $1 is already in use, change it in file \".env\"."
rad "==========================================================="
exit
fi
}
function checkAllPort() {
checkPort "$ES_PORT1"
checkPort "$ES_PORT2"
checkPort "$LOGSTASH_PORT1"
checkPort "$LOGSTASH_PORT2"
checkPort "$LOGSTASH_PORT3"
checkPort "$LOGSTASH_PORT4"
checkPort "$KIBANA_PORT"
}
function start(){
docker-compose up -d
green "==============="
green "start succeed"
green "==============="
}
function checkPS(){
if [ "$(docker ps | grep -c 'docker-elk' )" -gt 0 ]; then
red "======================="
red "ELK are already started"
red "======================="
exit
fi
}
checkPS
checkAllPort
start
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment