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

add install script

parent 9634a42d
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 @@
本项目基于github开源项目:https://github.com/deviantony/docker-elk
项目地址:https://gitlab.33.cn/dkl/docker-elk
###测试环境
http://124.71.144.118:15601/app/discover
......@@ -15,52 +17,27 @@ Kibana 用于数据的展示
Filebeat 负责数据采集
###安装
```console
$ git clone https://gitlab.33.cn/dkl/docker-elk.git
```
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
###配置
检查docker-compose.yml 端口是否有冲突, java虚拟机内存(ES_JAVA_OPTS)是否足够
###启动
.env 中可配置ELK的版本,启动时会自动拉取对应版本的镜像
bash start.sh
###启动
日志分开输出,kinaba日志会比较多,合在一起不利于分析。
```console
$ 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.tgz到日志文件所在服务器,并解压
```console
$ tar -zxvf filebeat.tgz
```
修改配置文件 filebeat.yml
```yml
filebeat.inputs:
- type: log
paths:
# **可匹配多级目录
- '/data/backend-micro/**/*.log'
exclude_files: ['stat.log$']
# 注意修改为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
项目地址: https://gitlab.33.cn/dkl/filebeat
### 1. quick install
Download quick install script
wget https://gitlab.33.cn/dkl/filebeat/raw/master/filebeat-quick-install.sh
Config logstash host and scan dir
vim filebeat-quick-install.sh
Run this script
bash filebeat-quick-install.sh
......@@ -15,14 +15,15 @@ services:
source: elasticsearch
target: /usr/share/elasticsearch/data
ports:
- "19200:9200"
- "19300:9300"
- "$ES_PORT1:9200"
- "$ES_PORT2:9300"
environment:
ES_JAVA_OPTS: "-Xmx512m -Xms512m"
ELASTIC_PASSWORD: changeme
# 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
discovery.type: single-node
restart: always
networks:
- elk
......@@ -41,12 +42,13 @@ services:
target: /usr/share/logstash/pipeline
read_only: true
ports:
- "15044:5044"
- "15000:5000/tcp"
- "15000:5000/udp"
- "19600:9600"
- "$LOGSTASH_PORT1:5044"
- "$LOGSTASH_PORT2:5000/tcp"
- "$LOGSTASH_PORT3:5000/udp"
- "$LOGSTASH_PORT4:9600"
environment:
LS_JAVA_OPTS: "-Xmx512m -Xms512m"
restart: always
networks:
- elk
depends_on:
......@@ -63,7 +65,8 @@ services:
target: /usr/share/kibana/config/kibana.yml
read_only: true
ports:
- "15601:5601"
- "$KIBANA_PORT:5601"
restart: always
networks:
- elk
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