diff --git a/README.md b/README.md
index 30c6e32f..80bf6ad0 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,8 @@
-## 团队 DevOps 方案参考
-
-
-
-
+## 作者新方向,感谢支持
+- [从开公司到开发全平台产品(文字版)](https://github.com/cdk8s/cdk8s-team-style/blob/master/full-stack/README.md)
+- [从开公司到开发全平台产品(视频版)](https://space.bilibili.com/1765486559/channel/seriesdetail?sid=2359281)
## 初衷(Original Intention)
@@ -42,108 +40,3 @@
- [Linux 下常用压缩文件的解压、压缩](markdown-file/File-Extract-Compress.md)
- [Yum 下载安装包及对应依赖包](markdown-file/Off-line-Yum-Install.md)
- [Zsh 入门](markdown-file/Zsh.md)
-- [终端测速](markdown-file/speedtest.md)
-- [日常维护](markdown-file/maintenance.md)
-- [日常监控](markdown-file/monitor.md)
-- [nmon 系统性能监控工具](markdown-file/Nmon.md)
-- [Glances 安装和配置](markdown-file/Glances-Install-And-Settings.md)
-- [SSH(Secure Shell)介绍](markdown-file/SSH.md)
-- [FTP(File Transfer Protocol)介绍](markdown-file/FTP.md)
-- [VPN(Virtual Private Network)介绍](markdown-file/VPN.md)
-- [NFS(Network FileSystem)介绍](markdown-file/NFS.md)
-- [NTP(Network Time Protocol)介绍](markdown-file/NTP.md)
-- [Samba 介绍](markdown-file/Samba.md)
-- [Crontab 介绍](markdown-file/Crontab.md)
-- [Iptables 介绍](markdown-file/Iptables.md)
-- [花生壳-安装介绍](markdown-file/Hsk-Install.md)
-- [JDK 安装](markdown-file/JDK-Install.md)
-- [Java bin 目录下的工具](markdown-file/Java-bin.md)
-- [SVN 安装和配置](markdown-file/SVN-Install-And-Settings.md)
-- [Tomcat 安装和配置、优化](markdown-file/Tomcat-Install-And-Settings.md)
-- [Jenkins 安装和配置](markdown-file/Jenkins-Install-And-Settings.md)
-- [Maven 安装和配置](markdown-file/Maven-Install-And-Settings.md)
-- [Nexus 安装和配置](markdown-file/Nexus-Install-And-Settings.md)
-- [MySQL 安装和配置](markdown-file/Mysql-Install-And-Settings.md)
-- [MySQL 优化](markdown-file/Mysql-Optimize.md)
-- [MySQL 测试](markdown-file/Mysql-Test.md)
-- [MySQL 教程](markdown-file/Mysql-Tutorial.md)
-- [Percona XtraDB Cluster(PXC)安装和配置](markdown-file/PXC-Install-And-Settings.md)
-- [Redis 安装和配置](markdown-file/Redis-Install-And-Settings.md)
-- [MongoDB 安装和配置](markdown-file/MongoDB-Install-And-Settings.md)
-- [Solr 安装和配置](markdown-file/Solr-Install-And-Settings.md)
-- [Jira 安装和配置](markdown-file/Jira-Install-And-Settings.md)
-- [TeamCity 安装和配置](markdown-file/TeamCity-Install-And-Settings.md)
-- [Nginx 安装和配置](markdown-file/Nginx-Install-And-Settings.md)
-- [wrk 安装和配置](markdown-file/wrk-Install-And-Settings.md)
-- [FastDFS 安装和配置](markdown-file/FastDFS-Install-And-Settings.md)
-- [FastDFS 结合 GraphicsMagick](markdown-file/FastDFS-Nginx-Lua-GraphicsMagick.md)
-- [RabbitMQ 安装和配置](markdown-file/RabbitMQ-Install-And-Settings.md)
-- [Openfire 安装和配置](markdown-file/Openfire-Install-And-Settings.md)
-- [Rap 安装和配置](markdown-file/Rap-Install-And-Settings.md)
-- [Nginx + Keepalived 高可用](markdown-file/Nginx-Keepalived-Install-And-Settings.md)
-- [黑客入侵检查](markdown-file/Was-Hacked.md)
-- [Shadowsocks 安装和配置](markdown-file/http://code.youmeek.com/2016/08/19/2016/08/VPS/)
-- [Mycat 安装和配置](markdown-file/Mycat-Install-And-Settings.md)
-- [Zookeeper 安装和配置](markdown-file/Zookeeper-Install.md)
-- [Daemontools 工具介绍](markdown-file/Daemontools.md)
-- [Tmux 安装和配置](markdown-file/Tmux-Install-And-Settings.md)
-- [ELK 日志收集系统安装和配置](markdown-file/ELK-Install-And-Settings.md)
-- [Dubbo 安装和配置](markdown-file/Dubbo-Install-And-Settings.md)
-- [GitLab 安装和配置](markdown-file/Gitlab-Install-And-Settings.md)
-- [JMeter 安装和配置](markdown-file/JMeter-Install-And-Settings.md)
-- [Docker 安装和使用](markdown-file/Docker-Install-And-Usage.md)
-- [Harbor 安装和配置](markdown-file/Harbor-Install-And-Usage.md)
-- [LDAP 安装和使用](markdown-file/LDAP-Install-And-Settings.md)
-- [Alfresco 安装和使用](markdown-file/Alfresco-Install-And-Usage.md)
-- [Apache Thrift 安装和使用](markdown-file/Thrift-Install-And-Usage.md)
-- [Node.js 安装和使用](markdown-file/Node-Install-And-Usage.md)
-- [CI 整套服务安装和使用](markdown-file/CI-Install-And-Usage.md)
-- [YApi 安装和配置](markdown-file/YApi-Install-And-Settings.md)
-- [Kafka 安装和配置](markdown-file/Kafka-Install-And-Settings.md)
-- [Hadoop 安装和配置](markdown-file/Hadoop-Install-And-Settings.md)
-- [Showdoc 安装和配置](markdown-file/Showdoc-Install-And-Settings.md)
-- [WordPress 安装和配置](markdown-file/WordPress-Install-And-Settings.md)
-- [GoAccess 安装和配置](markdown-file/GoAccess-Install-And-Settings.md)
-- [Portainer 安装和配置](markdown-file/Portainer-Install-And-Settings.md)
-- [Grafana 安装和配置](markdown-file/Grafana-Install-And-Settings.md)
-- [Ansible 安装和配置](markdown-file/Ansible-Install-And-Settings.md)
-- [Wormhole + Flink 最佳实践](markdown-file/Wormhole-Install-And-Settings.md)
-
-## 联系(Contact)
-
-- Email:judas.n@qq.com(常用) or admin@youmeek.com(备用)
-- Blog:
-- QQ 群交流,入群请看:
-- 欢迎捐赠 ^_^:
-
-
-## Github 协同视频教程(Participate)
-
-- 如果您不会使用 Git 或是 Github 也没关系,请认真学习下面视频教程:
-- Judas.n 录制
- - 视频格式:MP4
- - 分辨率:1920 X 1080
- - 片长:16 min
- - 文件大小:62 M
-- 下载
- - 百度云盘:
- - 360 网盘(2fb5):
-
-## Github 常用按钮说明
-
-- Watch:关注该项目,作者有更新的时候,会在你的 Github 主页有通知消息。
-- Star:收藏该项目,在你的头像上有一个“Your stars”链接,可以看到你的收藏列表。
-- Fork:复制一份项目到的Github空间上,你可以自己开发自己的这个地址项目,然后 Pull Request 给项目原主人。
-
-## 参与作者汇总(Author)
-
-|作者(按参与时间排序)|地址|
-|:---------|:---------|
-|Judas.n||
-|mrdear||
-|fooofei||
-
-## AD
-
-- [推荐:程序员的个性化网址导航:GitNavi.com](http://www.gitnavi.com/u/judasn/)
-- [适合后端开发者的前端 React-Admin](https://github.com/satan31415/umi-admin)
diff --git a/SUMMARY.md b/SUMMARY.md
index 91dfcd0a..d034445b 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -42,6 +42,7 @@
* [Jenkins 安装和配置](markdown-file/Jenkins-Install-And-Settings.md)
* [Maven 安装和配置](markdown-file/Maven-Install-And-Settings.md)
* [Nexus 安装和配置](markdown-file/Nexus-Install-And-Settings.md)
+* [PostgreSQL 安装和配置](markdown-file/PostgreSQL-Install-And-Settings.md)
* [MySQL 安装和配置](markdown-file/Mysql-Install-And-Settings.md)
* [MySQL 优化](markdown-file/Mysql-Optimize.md)
* [MySQL 测试](markdown-file/Mysql-Test.md)
@@ -51,6 +52,7 @@
* [MongoDB 安装和配置](markdown-file/MongoDB-Install-And-Settings.md)
* [Solr 安装和配置](markdown-file/Solr-Install-And-Settings.md)
* [Jira 安装和配置](markdown-file/Jira-Install-And-Settings.md)
+* [Confluence 安装和配置](markdown-file/Confluence-Install-And-Settings.md)
* [Jenkins 安装和配置](markdown-file/Jenkins-Install-And-Settings.md)
* [TeamCity 安装和配置](markdown-file/TeamCity-Install-And-Settings.md)
* [Nginx 安装和配置](markdown-file/Nginx-Install-And-Settings.md)
@@ -85,5 +87,9 @@
* [WordPress 安装和配置](markdown-file/WordPress-Install-And-Settings.md)
* [GoAccess 安装和配置](markdown-file/GoAccess-Install-And-Settings.md)
* [Portainer 安装和配置](markdown-file/Portainer-Install-And-Settings.md)
+* [Influxdb 安装和配置](markdown-file/Influxdb-Install-And-Settings.md)
+* [Prometheus 安装和配置](markdown-file/Prometheus-Install-And-Settings.md)
* [Grafana 安装和配置](markdown-file/Grafana-Install-And-Settings.md)
-* [Ansible 安装和配置](markdown-file/Ansible-Install-And-Settings.md)
\ No newline at end of file
+* [Ansible 安装和配置](markdown-file/Ansible-Install-And-Settings.md)
+* [Wormhole + Flink 安装和配置](markdown-file/Wormhole-Install-And-Settings.md)
+* [SkyWalking 安装和配置](markdown-file/SkyWalking-Install-And-Settings.md)
\ No newline at end of file
diff --git a/TOC.md b/TOC.md
index 1b0ff377..434c20f7 100644
--- a/TOC.md
+++ b/TOC.md
@@ -40,6 +40,7 @@
- [Jenkins 安装和配置](markdown-file/Jenkins-Install-And-Settings.md)
- [Maven 安装和配置](markdown-file/Maven-Install-And-Settings.md)
- [Nexus 安装和配置](markdown-file/Nexus-Install-And-Settings.md)
+- [PostgreSQL 安装和配置](markdown-file/PostgreSQL-Install-And-Settings.md)
- [MySQL 安装和配置](markdown-file/Mysql-Install-And-Settings.md)
- [MySQL 优化](markdown-file/Mysql-Optimize.md)
- [MySQL 测试](markdown-file/Mysql-Test.md)
@@ -49,6 +50,7 @@
- [MongoDB 安装和配置](markdown-file/MongoDB-Install-And-Settings.md)
- [Solr 安装和配置](markdown-file/Solr-Install-And-Settings.md)
- [Jira 安装和配置](markdown-file/Jira-Install-And-Settings.md)
+- [Confluence 安装和配置](markdown-file/Confluence-Install-And-Settings.md)
- [Jenkins 安装和配置](markdown-file/Jenkins-Install-And-Settings.md)
- [TeamCity 安装和配置](markdown-file/TeamCity-Install-And-Settings.md)
- [Nginx 安装和配置](markdown-file/Nginx-Install-And-Settings.md)
@@ -82,5 +84,9 @@
- [WordPress 安装和配置](markdown-file/WordPress-Install-And-Settings.md)
- [GoAccess 安装和配置](markdown-file/GoAccess-Install-And-Settings.md)
- [Portainer 安装和配置](markdown-file/Portainer-Install-And-Settings.md)
+- [Influxdb 安装和配置](markdown-file/Influxdb-Install-And-Settings.md)
+- [Prometheus 安装和配置](markdown-file/Prometheus-Install-And-Settings.md)
- [Grafana 安装和配置](markdown-file/Grafana-Install-And-Settings.md)
-- [Ansible 安装和配置](markdown-file/Ansible-Install-And-Settings.md)
\ No newline at end of file
+- [Ansible 安装和配置](markdown-file/Ansible-Install-And-Settings.md)
+- [Wormhole + Flink 安装和配置](markdown-file/Wormhole-Install-And-Settings.md)
+- [SkyWalking 安装和配置](markdown-file/SkyWalking-Install-And-Settings.md)
\ No newline at end of file
diff --git a/centos-settings/CentOS-Extra-Packages.md b/centos-settings/CentOS-Extra-Packages.md
index def938fe..c00901e3 100644
--- a/centos-settings/CentOS-Extra-Packages.md
+++ b/centos-settings/CentOS-Extra-Packages.md
@@ -83,6 +83,22 @@
- `sudo yum install -y htop`(htop 官方源是没有的,所以如果能下载下来就表示已经使用了第三方源)
+### 禁用源
+
+- 编辑:`vim /etc/yum.repos.d/elasticsearch.repo`
+- 把 enabled=1 改为 enabled=0
+
+```
+[elasticsearch-6.x]
+name=Elasticsearch repository for 6.x packages
+baseurl=https://artifacts.elastic.co/packages/6.x/yum
+gpgcheck=1
+gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
+enabled=1
+autorefresh=1
+type=rpm-md
+```
+
> 资料:
-
diff --git a/centos-settings/Close-XWindow.md b/centos-settings/Close-XWindow.md
index 0a34275f..5b89f556 100644
--- a/centos-settings/Close-XWindow.md
+++ b/centos-settings/Close-XWindow.md
@@ -15,7 +15,14 @@
- 在图形界面中如果你希望临时关闭图形界面可以输入:`init 3`
-## CentOS 7 设置方法
+## CentOS 7 设置方法 1
+
+- 开机以命令模式启动,执行:
+ - systemctl set-default multi-user.target
+- 开机以图形界面启动,执行:
+ - systemctl set-default graphical.target
+
+## CentOS 7 设置方法 2
- 关闭图形
- `mv /etc/systemd/system/default.target /etc/systemd/system/default.target.bak` (改名备份)
diff --git a/favorite-file/Nginx-Settings/nginx-front.conf b/favorite-file/Nginx-Settings/nginx-front.conf
index 82894983..8b49d8f9 100644
--- a/favorite-file/Nginx-Settings/nginx-front.conf
+++ b/favorite-file/Nginx-Settings/nginx-front.conf
@@ -22,28 +22,35 @@ http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time"';
-
+
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
-
+
gzip on;
gzip_buffers 8 16k;
gzip_min_length 512;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_http_version 1.1;
gzip_types text/plain text/css application/javascript application/x-javascript application/json application/xml;
-
+
server {
-
+
listen 8001;
server_name localhost 127.0.0.1 139.159.190.24 platform.gitnavi.com;
-
+
location / {
root /root/.jenkins/workspace/nestle-platform-front-test/dist;
index index.html index.htm;
try_files $uri /index.html;
}
-
+
+ ## 二级目录方式,记得 package.json 添加:"homepage": "cdk8s-markdown",
+ location ^~ /cdk8s-markdown {
+ root /root/.jenkins/workspace;
+ index index.html;
+ try_files $uri /cdk8s-markdown/index.html;
+ }
+
location ^~ /platform/ {
proxy_pass http://127.0.0.1:28081;
proxy_redirect off;
@@ -51,36 +58,36 @@ http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
-
+
location ~ .*\.(js|css)?$ {
root /root/.jenkins/workspace/nestle-platform-front-test/dist;
}
-
+
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|woff|woff2|ttf|eot|txt|svg)$ {
root /root/.jenkins/workspace/nestle-platform-front-test/dist;
}
-
+
error_page 404 /404.html;
location = /usr/share/nginx/html/40x.html {
}
-
+
error_page 500 502 503 504 /50x.html;
location = /usr/share/nginx/html/50x.html {
}
}
-
+
server {
-
+
listen 8002;
server_name localhost 127.0.0.1 139.159.190.24 store.gitnavi.com;
-
+
location / {
root /root/.jenkins/workspace/nestle-store-front-test/dist;
index index.html index.htm;
try_files $uri /index.html;
}
-
+
location ^~ /store/ {
proxy_pass http://127.0.0.1:28082;
proxy_redirect off;
@@ -88,22 +95,22 @@ http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
-
+
location ~ .*\.(js|css)?$ {
root /root/.jenkins/workspace/nestle-store-front-test/dist;
}
-
+
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|woff|woff2|ttf|eot|txt|svg)$ {
root /root/.jenkins/workspace/nestle-store-front-test/dist;
}
-
+
error_page 404 /404.html;
location = /usr/share/nginx/html/40x.html {
}
-
+
error_page 500 502 503 504 /50x.html;
location = /usr/share/nginx/html/50x.html {
}
}
-}
\ No newline at end of file
+}
diff --git a/favorite-file/gravitee-docker-compose/README.md b/favorite-file/gravitee-docker-compose/README.md
new file mode 100644
index 00000000..e4983ec9
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/README.md
@@ -0,0 +1,32 @@
+# graviteeio api gateway docker-compose running
+
+fork from graviteeio project && change some deps image
+
+-
+-
+
+## how to run
+
+```code
+cd platform && docker-compose up -d
+```
+
+## manager ui
+
+* api portal
+
+```code
+open https://localhost/apim/portal
+```
+
+* access manager ui
+
+```code
+open https://localhost/am/ui/
+```
+
+## Note:
+
+- environments directory has some demos with ci && traefik gateway
+- portal account admin amdin
+- access manager ui account admin adminadmin
\ No newline at end of file
diff --git a/favorite-file/gravitee-docker-compose/environments/ci/docker-compose.yml b/favorite-file/gravitee-docker-compose/environments/ci/docker-compose.yml
new file mode 100644
index 00000000..37c9c07c
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/ci/docker-compose.yml
@@ -0,0 +1,62 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+services:
+ ci:
+ image: graviteeio/jenkins:latest
+ container_name: ci
+ network_mode: "bridge"
+ expose:
+ - 50022
+ ports:
+ - "50022:50022"
+ labels:
+ - "traefik.frontend.rule=Host:ci.gravitee.io"
+ - "traefik.port=8080"
+ volumes:
+ - /var/jenkins_home:/var/jenkins_home
+ - /var/run/docker.sock:/var/run/docker.sock
+ links:
+ - redis-test
+ - qa
+
+ redis-test:
+ image: redis:3
+ container_name: redis-test
+ network_mode: "bridge"
+
+ qa:
+ image: sonarqube:alpine
+ container_name: qa
+ network_mode: "bridge"
+ environment:
+ - SONARQUBE_JDBC_URL=jdbc:postgresql://sonarqube-db:5432/sonar
+ labels:
+ - "traefik.frontend.rule=Host:qa.gravitee.io"
+ volumes:
+ - /opt/sonarqube/conf:/opt/sonarqube/conf
+ - /opt/sonarqube/data:/opt/sonarqube/data
+ - /opt/sonarqube/extensions:/opt/sonarqube/extensions
+ - /opt/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins
+ links:
+ - sonarqube-db
+
+ sonarqube-db:
+ image: postgres:alpine
+ network_mode: "bridge"
+ environment:
+ - POSTGRES_USER=sonar
+ - POSTGRES_PASSWORD=sonar
+ volumes:
+ - /opt/sonarqube/postgresql/data:/var/lib/postgresql/data
diff --git a/favorite-file/gravitee-docker-compose/environments/demo/common.yml b/favorite-file/gravitee-docker-compose/environments/demo/common.yml
new file mode 100644
index 00000000..a1d7c696
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/demo/common.yml
@@ -0,0 +1,62 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+volumes:
+ datamongo: {}
+ dataelasticsearch: {}
+
+services:
+ elasticsearch:
+ hostname: demo-elasticsearch
+ image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
+ volumes:
+ - dataelasticsearch:/usr/share/elasticsearch/data
+ environment:
+ - http.host=0.0.0.0
+ - transport.host=0.0.0.0
+ - xpack.security.enabled=false
+ - xpack.monitoring.enabled=false
+ - cluster.name=elasticsearch
+ - bootstrap.memory_lock=true
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
+ nofile: 65536
+
+ mongodb:
+ hostname: demo-mongodb
+ image: mongo:3.4
+ volumes:
+ - datamongo:/data/db
+
+ gateway:
+ hostname: demo-gateway
+ image: graviteeio/gateway:latest
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_reporters_elasticsearch_endpoints_0=http://elasticsearch:9200
+
+ managementui:
+ hostname: demo-managementui
+ image: graviteeio/management-ui:latest
+
+ managementapi:
+ hostname: demo-managementapi
+ image: graviteeio/management-api:latest
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_analytics_elasticsearch_endpoints_0=http://elasticsearch:9200
diff --git a/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-local.yml b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-local.yml
new file mode 100644
index 00000000..38c34e4c
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-local.yml
@@ -0,0 +1,76 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+volumes:
+ local_datamongo: {}
+ local_dataelasticsearch: {}
+
+services:
+ local_elasticsearch:
+ extends:
+ file: common.yml
+ service: elasticsearch
+ volumes:
+ - local_dataelasticsearch:/usr/share/elasticsearch/data
+ - ./logs/elasticsearch:/var/log/elasticsearch
+
+ local_mongodb:
+ extends:
+ file: common.yml
+ service: mongodb
+ volumes:
+ - local_datamongo:/data/db
+ - ./logs/mongodb:/var/log/mongodb
+
+ local_gateway:
+ extends:
+ file: common.yml
+ service: gateway
+ links:
+ - "local_mongodb:demo-mongodb"
+ - "local_elasticsearch:demo-elasticsearch"
+ ports:
+ - "8000:8082"
+ volumes:
+ - ./logs/gateway:/etc/gravitee.io/log
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_reporters_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
+
+ local_managementui:
+ extends:
+ file: common.yml
+ service: managementui
+ ports:
+ - "8002:80"
+ volumes:
+ - ./logs/management-ui:/var/log/httpd
+ environment:
+ - MGMT_API_URL=http:\/\/localhost:8005\/management\/
+
+ local_managementapi:
+ extends:
+ file: common.yml
+ service: managementapi
+ ports:
+ - "8005:8083"
+ volumes:
+ - ./logs/management-api:/home/gravitee/logs
+ links:
+ - "local_mongodb:demo-mongodb"
+ - "local_elasticsearch:demo-elasticsearch"
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_analytics_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
diff --git a/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-latest.yml b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-latest.yml
new file mode 100644
index 00000000..e3ea6bce
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-latest.yml
@@ -0,0 +1,76 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+volumes:
+ latest_datamongo: {}
+ latest_dataelasticsearch: {}
+
+services:
+ latest_elasticsearch:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: elasticsearch
+ volumes:
+ - latest_dataelasticsearch:/usr/share/elasticsearch/data
+
+ latest_mongodb:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: mongodb
+ volumes:
+ - latest_datamongo:/data/db
+
+ latest_gateway:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: gateway
+ links:
+ - latest_mongodb
+ - latest_elasticsearch
+ labels:
+ - "traefik.backend=graviteeio-gateway"
+ - "traefik.frontend.rule=Host:demo.gravitee.io;PathPrefixStrip:/gateway"
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_reporters_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
+
+ latest_managementui:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: managementui
+ labels:
+ - "traefik.backend=graviteeio-managementui"
+ - "traefik.frontend.rule=Host:demo.gravitee.io"
+ environment:
+ - MGMT_API_URL=https:\/\/demo.gravitee.io\/management\/
+
+ latest_managementapi:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: managementapi
+ labels:
+ - "traefik.backend=graviteeio-managementapi"
+ - "traefik.frontend.rule=Host:demo.gravitee.io;PathPrefix:/management"
+ links:
+ - latest_mongodb
+ - latest_elasticsearch
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_analytics_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
\ No newline at end of file
diff --git a/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-nightly.yml b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-nightly.yml
new file mode 100644
index 00000000..2369851c
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/demo/docker-compose-traefik-nightly.yml
@@ -0,0 +1,79 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+volumes:
+ nightly_datamongo: {}
+ nightly_dataelasticsearch: {}
+
+services:
+ nightly_elasticsearch:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: elasticsearch
+ volumes:
+ - nightly_dataelasticsearch:/usr/share/elasticsearch/data
+
+ nightly_mongodb:
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: mongodb
+ volumes:
+ - nightly_datamongo:/data/db
+
+ nightly_gateway:
+ image: graviteeio/gateway:nightly
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: gateway
+ links:
+ - nightly_mongodb
+ - nightly_elasticsearch
+ labels:
+ - "traefik.backend=nightly-graviteeio-gateway"
+ - "traefik.frontend.rule=Host:nightly.gravitee.io;PathPrefixStrip:/gateway"
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_reporters_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
+
+ nightly_managementui:
+ image: graviteeio/management-ui:nightly
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: managementui
+ labels:
+ - "traefik.backend=nightly-graviteeio-managementui"
+ - "traefik.frontend.rule=Host:nightly.gravitee.io"
+ environment:
+ - MGMT_API_URL=https:\/\/nightly.gravitee.io\/management\/
+
+ nightly_managementapi:
+ image: graviteeio/management-api:nightly
+ network_mode: "bridge"
+ extends:
+ file: common.yml
+ service: managementapi
+ labels:
+ - "traefik.backend=nightly-graviteeio-managementapi"
+ - "traefik.frontend.rule=Host:nightly.gravitee.io;PathPrefix:/management"
+ links:
+ - nightly_mongodb
+ - nightly_elasticsearch
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://demo-mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_analytics_elasticsearch_endpoints_0=http://demo-elasticsearch:9200
\ No newline at end of file
diff --git a/favorite-file/gravitee-docker-compose/environments/demo/launch.sh b/favorite-file/gravitee-docker-compose/environments/demo/launch.sh
new file mode 100755
index 00000000..ff51ff04
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/demo/launch.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+
+readonly WORKDIR="$HOME/graviteeio-demo"
+readonly DIRNAME=`dirname $0`
+readonly PROGNAME=`basename $0`
+readonly color_title='\033[32m'
+readonly color_text='\033[1;36m'
+
+# OS specific support (must be 'true' or 'false').
+declare cygwin=false
+declare darwin=false
+declare linux=false
+declare dc_exec="docker-compose -f docker-compose-local.yml up"
+
+welcome() {
+ echo
+ echo -e " ${color_title} _____ _____ __ _______ _______ ______ ______ _____ ____ \033[0m"
+ echo -e " ${color_title} / ____| __ \ /\ \ / /_ _|__ __| ____| ____| |_ _/ __ \ \033[0m"
+ echo -e " ${color_title}| | __| |__) | / \ \ / / | | | | | |__ | |__ | || | | | \033[0m"
+ echo -e " ${color_title}| | |_ | _ / / /\ \ \/ / | | | | | __| | __| | || | | | \033[0m"
+ echo -e " ${color_title}| |__| | | \ \ / ____ \ / _| |_ | | | |____| |____ _ _| || |__| | \033[0m"
+ echo -e " ${color_title} \_____|_| \_\/_/ \_\/ |_____| |_| |______|______(_)_____\____/ \033[0m"
+ echo -e " ${color_title} | | \033[0m${color_text}http://gravitee.io\033[0m"
+ echo -e " ${color_title} __| | ___ _ __ ___ ___ \033[0m"
+ echo -e " ${color_title} / _\` |/ _ \ '_ \` _ \ / _ \ \033[0m"
+ echo -e " ${color_title}| (_| | __/ | | | | | (_) | \033[0m"
+ echo -e " ${color_title} \__,_|\___|_| |_| |_|\___/ \033[0m"
+ echo
+}
+
+init_env() {
+ local dockergrp
+ # define env
+ case "`uname`" in
+ CYGWIN*)
+ cygwin=true
+ ;;
+
+ Darwin*)
+ darwin=true
+ ;;
+
+ Linux)
+ linux=true
+ ;;
+ esac
+
+ # test if docker must be run with sudo
+ dockergrp=$(groups | grep -c docker)
+ if [[ $darwin == false && $dockergrp == 0 ]]; then
+ dc_exec="sudo $dc_exec";
+ fi
+}
+
+init_dirs() {
+ echo "Init log directory in $WORKDIR ..."
+ mkdir -p "$WORKDIR/logs/"
+ echo
+}
+
+main() {
+ welcome
+ init_env
+ if [[ $? != 0 ]]; then
+ exit 1
+ fi
+ set -e
+ init_dirs
+ pushd $WORKDIR > /dev/null
+ echo "Download docker compose files ..."
+ curl -L https://raw.githubusercontent.com/gravitee-io/gravitee-docker/master/environments/demo/common.yml -o "common.yml"
+ curl -L https://raw.githubusercontent.com/gravitee-io/gravitee-docker/master/environments/demo/docker-compose-local.yml -o "docker-compose-local.yml"
+ echo
+ echo "Launch GraviteeIO demo ..."
+ $dc_exec
+ popd > /dev/null
+}
+
+main
diff --git a/favorite-file/gravitee-docker-compose/environments/sample-apis/docker-compose-sample-apis.yml b/favorite-file/gravitee-docker-compose/environments/sample-apis/docker-compose-sample-apis.yml
new file mode 100644
index 00000000..10c1a074
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/environments/sample-apis/docker-compose-sample-apis.yml
@@ -0,0 +1,47 @@
+#-------------------------------------------------------------------------------
+# Copyright (C) 2015 The Gravitee team (http://gravitee.io)
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+version: '2'
+
+services:
+
+ sample-api-index:
+ image: graviteeio/gravitee-sample-index:latest
+ network_mode: "bridge"
+ labels:
+ - "traefik.backend=gravitee-sample-index"
+ - "traefik.frontend.rule=Host:api.gravitee.io"
+ - "traefik.frontend.entryPoints=https"
+
+ sample-api-echo:
+ image: graviteeio/gravitee-echo-api:nightly
+ network_mode: "bridge"
+ labels:
+ - "traefik.backend=gravitee-echo-api"
+ - "traefik.frontend.rule=Host:api.gravitee.io;PathPrefix:/echo"
+ - "traefik.frontend.entryPoints=https"
+
+ sample-api-whoami:
+ image: graviteeio/gravitee-whoami-api:latest
+ network_mode: "bridge"
+ labels:
+ - "traefik.backend=gravitee-whoami-api"
+ - "traefik.frontend.rule=Host:api.gravitee.io;PathPrefix:/whoami"
+ - "traefik.frontend.entryPoints=https"
+
+ sample-api-whattimeisit:
+ image: graviteeio/gravitee-whattimeisit-api:latest
+ network_mode: "bridge"
+ labels:
+ - "traefik.backend=gravitee-whattimeisit-api"
+ - "traefik.frontend.rule=Host:api.gravitee.io;PathPrefix:/whattimeisit"
+ - "traefik.frontend.entryPoints=https"
diff --git a/favorite-file/gravitee-docker-compose/platform/docker-compose.yml b/favorite-file/gravitee-docker-compose/platform/docker-compose.yml
new file mode 100644
index 00000000..3771102c
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/platform/docker-compose.yml
@@ -0,0 +1,135 @@
+version: '3'
+
+networks:
+ default:
+
+services:
+ nginx:
+ image: nginx:1.15-alpine
+ container_name: gio_platform_nginx
+ volumes:
+ - ./nginx/nginx.conf:/etc/nginx/nginx.conf
+ - ./nginx/ssl/gio-selfsigned.crt:/etc/ssl/certs/gio-selfsigned.crt
+ - ./nginx/ssl/gio-selfsigned.key:/etc/ssl/private/gio-selfsigned.key
+ - ./nginx/ssl/gio.pem:/etc/ssl/certs/gio.pem
+ ports:
+ - "80:80"
+ - "443:443"
+ depends_on:
+ - apim_gateway
+ - apim_portal
+ - apim_management
+ - am_gateway
+ - am_management
+ - am_webui
+
+ mongodb:
+ image: mongo:3.4
+ container_name: gio_platform_mongo
+ ports:
+ - 27017:27017
+ environment:
+ - MONGO_INITDB_DATABASE=gravitee
+ volumes:
+ - ./mongo/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
+ - ./data/mongo:/data/db
+ - ./logs/mongodb:/var/log/mongodb
+
+ elasticsearch:
+ image: elasticsearch:6.4.0
+ container_name: gio_platform_elasticsearch
+ ports:
+ - 9200:9200
+ environment:
+ - http.host=0.0.0.0
+ - transport.host=0.0.0.0
+ - xpack.security.enabled=false
+ - xpack.monitoring.enabled=false
+ - cluster.name=elasticsearch
+ ulimits:
+ nofile: 65536
+ volumes:
+ - ./data/elasticsearch:/usr/share/elasticsearch/data
+ - ./logs/elasticsearch:/var/log/elasticsearch
+
+ apim_gateway:
+ image: graviteeio/gateway:latest
+ container_name: gio_platform_apim_gateway
+ volumes:
+ - ./logs/apim-gateway:/opt/graviteeio-gateway/logs
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_reporters_elasticsearch_endpoints_0=http://elasticsearch:9200
+ - gravitee_services_metrics_enabled=true
+ - gravitee_services_metrics_prometheus.enabled=true
+ depends_on:
+ - mongodb
+ - elasticsearch
+
+ apim_portal:
+ image: graviteeio/management-ui:latest
+ container_name: gio_platform_apim_portal
+ environment:
+ - MGMT_API_URL=https:\/\/localhost\/apim\/management\/
+ depends_on:
+ - apim_management
+
+ apim_management:
+ image: graviteeio/management-api:latest
+ container_name: gio_platform_apim_mgmt_api
+ volumes:
+ - ./logs/apim-management-api:/opt/graviteeio-management-api/logs
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_ratelimit_mongodb_uri=mongodb://mongodb:27017/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_analytics_elasticsearch_endpoints_0=http://elasticsearch:9200
+ - gravitee_jwt_cookiepath=/apim/management
+ - gravitee_jwt_cookiesecure=true
+ depends_on:
+ - mongodb
+ - elasticsearch
+
+ am_gateway:
+ image: graviteeio/am-gateway:2
+ container_name: gio_platform_am_gateway
+ volumes:
+ - ./logs/am-gateway:/opt/graviteeio-am-gateway/logs
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_oauth2_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ depends_on:
+ - mongodb
+
+ am_management:
+ image: graviteeio/am-management-api:2
+ container_name: gio_platform_am_management
+ volumes:
+ - ./logs/am-management-api:/opt/graviteeio-am-management-api/logs
+ environment:
+ - gravitee_management_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_oauth2_mongodb_uri=mongodb://mongodb:27017/gravitee-am?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
+ - gravitee_jwt_cookiepath=/am/management
+ - gravitee_jwt_cookiesecure=true
+ depends_on:
+ - mongodb
+ grafana:
+ image: grafana/grafana
+ ports:
+ - "3000:3000"
+ prometheus:
+ image: prom/prometheus
+ volumes:
+ - "./prometheus.yml:/etc/prometheus/prometheus.yml"
+ ports:
+ - "9090:9090"
+ am_webui:
+ image: graviteeio/am-management-ui:2
+ container_name: gio_platform_am_webui
+ environment:
+ - MGMT_API_URL=https:\/\/localhost\/am\/
+ - MGMT_UI_URL=https:\/\/localhost\/am\/ui\/
+ volumes:
+ - ./logs/am-webui:/var/log/nginx
+ depends_on:
+ - am_management
diff --git a/favorite-file/gravitee-docker-compose/platform/mongo/docker-entrypoint-initdb.d/create-index.js b/favorite-file/gravitee-docker-compose/platform/mongo/docker-entrypoint-initdb.d/create-index.js
new file mode 100644
index 00000000..b6f2d379
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/platform/mongo/docker-entrypoint-initdb.d/create-index.js
@@ -0,0 +1,92 @@
+
+// "apis" collection
+db.apis.dropIndexes();
+db.apis.createIndex( { "visibility" : 1 } );
+db.apis.createIndex( { "group" : 1 } );
+db.apis.reIndex();
+
+// "applications" collection
+db.applications.dropIndexes();
+db.applications.createIndex( { "group" : 1 } );
+db.applications.createIndex( { "name" : 1 } );
+db.applications.createIndex( { "status" : 1 } );
+db.applications.reIndex();
+
+// "events" collection
+db.events.dropIndexes();
+db.events.createIndex( { "type" : 1 } );
+db.events.createIndex( { "updatedAt" : 1 } );
+db.events.createIndex( { "properties.api_id" : 1 } );
+db.events.createIndex( { "properties.api_id":1, "type":1} );
+db.events.reIndex();
+
+// "plans" collection
+db.plans.dropIndexes();
+db.plans.createIndex( { "apis" : 1 } );
+db.plans.reIndex();
+
+// "subscriptions" collection
+db.subscriptions.dropIndexes();
+db.subscriptions.createIndex( { "plan" : 1 } );
+db.subscriptions.createIndex( { "application" : 1 } );
+db.subscriptions.reIndex();
+
+// "keys" collection
+db.keys.dropIndexes();
+db.keys.createIndex( { "plan" : 1 } );
+db.keys.createIndex( { "application" : 1 } );
+db.keys.createIndex( { "updatedAt" : 1 } );
+db.keys.createIndex( { "revoked" : 1 } );
+db.keys.createIndex( { "plan" : 1 , "revoked" : 1, "updatedAt" : 1 } );
+db.keys.reIndex();
+
+// "pages" collection
+db.pages.dropIndexes();
+db.pages.createIndex( { "api" : 1 } );
+db.pages.reIndex();
+
+// "memberships" collection
+db.memberships.dropIndexes();
+db.memberships.createIndex( {"_id.userId":1, "_id.referenceId":1, "_id.referenceType":1}, { unique: true } );
+db.memberships.createIndex( {"_id.referenceId":1, "_id.referenceType":1} );
+db.memberships.createIndex( {"_id.referenceId":1, "_id.referenceType":1, "roles":1} );
+db.memberships.createIndex( {"_id.userId":1, "_id.referenceType":1} );
+db.memberships.createIndex( {"_id.userId":1, "_id.referenceType":1, "roles":1} );
+db.memberships.reIndex();
+
+// "roles" collection
+db.roles.dropIndexes();
+db.roles.createIndex( {"_id.scope": 1 } );
+db.roles.reIndex();
+
+// "audits" collection
+db.audits.dropIndexes();
+db.audits.createIndex( { "referenceType": 1, "referenceId": 1 } );
+db.audits.createIndex( { "createdAt": 1 } );
+db.audits.reIndex();
+
+// "rating" collection
+db.rating.dropIndexes();
+db.rating.createIndex( { "api" : 1 } );
+db.rating.reIndex();
+
+// "ratingAnswers" collection
+db.ratingAnswers.dropIndexes();
+db.ratingAnswers.createIndex( { "rating" : 1 } );
+
+// "portalnotifications" collection
+db.portalnotifications.dropIndexes();
+db.portalnotifications.createIndex( { "user" : 1 } );
+db.portalnotifications.reIndex();
+
+// "portalnotificationconfigs" collection
+db.portalnotificationconfigs.dropIndexes();
+db.portalnotificationconfigs.createIndex( {"_id.user":1, "_id.referenceId":1, "_id.referenceType":1}, { unique: true } );
+db.portalnotificationconfigs.createIndex( {"_id.referenceId":1, "_id.referenceType":1, "hooks":1});
+db.portalnotificationconfigs.reIndex();
+
+// "genericnotificationconfigs" collection
+db.genericnotificationconfigs.dropIndexes();
+db.genericnotificationconfigs.createIndex( {"referenceId":1, "referenceType":1, "hooks":1});
+db.genericnotificationconfigs.createIndex( {"referenceId":1, "referenceType":1});
+db.genericnotificationconfigs.reIndex();
diff --git a/favorite-file/gravitee-docker-compose/platform/nginx/nginx.conf b/favorite-file/gravitee-docker-compose/platform/nginx/nginx.conf
new file mode 100644
index 00000000..d08fc26c
--- /dev/null
+++ b/favorite-file/gravitee-docker-compose/platform/nginx/nginx.conf
@@ -0,0 +1,133 @@
+worker_processes 4;
+
+events { worker_connections 1024; }
+
+http {
+ include /etc/nginx/mime.types;
+ resolver 127.0.0.11 ipv6=off;
+
+ upstream apim_management {
+ server apim_management:8083;
+ }
+
+ upstream apim_gateway {
+ server apim_gateway:8082;
+ }
+
+ upstream apim_portal {
+ server apim_portal:80;
+ }
+
+ upstream am_management {
+ server am_management:8093;
+ }
+
+ upstream am_gateway {
+ server am_gateway:8092;
+ }
+
+ upstream am_webui {
+ server am_webui:80;
+ }
+
+ server {
+ listen 80;
+ server_name localhost;
+ return 301 https://$server_name$request_uri; #Redirection
+ }
+
+ server {
+ listen 443 ssl;
+ listen [::]:443 ssl;
+
+ server_name localhost;
+
+ ssl_certificate /etc/ssl/certs/gio-selfsigned.crt;
+ ssl_certificate_key /etc/ssl/private/gio-selfsigned.key;
+ ssl_dhparam /etc/ssl/certs/gio.pem;
+
+ error_page 500 502 503 504 /50x.html;
+
+ location /apim/portal/ {
+ proxy_pass http://apim_portal/;
+ proxy_redirect $scheme://$host:$server_port/ $scheme://$http_host/apim/portal/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $server_name;
+ }
+
+ location /apim/management/ {
+ proxy_pass http://apim_management/management/;
+ proxy_redirect $scheme://$host:$server_port/management/ /apim/management/;
+ sub_filter "/management/" "/apim/management/";
+ sub_filter_types application/json;
+ sub_filter_once off;
+ proxy_cookie_path /management /apim/management;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $server_name;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ location /apim/ {
+ proxy_pass http://apim_gateway/;
+ proxy_cookie_path / /apim;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $server_name;
+ }
+
+ location /am/ui/ {
+ proxy_pass http://am_webui/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Host $server_name;
+ sub_filter '
+ - 选择:linux64 类型下载
+- 授权:`chmod +x atlassian-confluence-6.15.4-x64.bin`
+
+
+```
+./atlassian-confluence-6.15.4-x64.bin
+
+开始提示:
+
+Unpacking JRE ...
+Starting Installer ...
+
+This will install Confluence 6.9.0 on your computer.
+OK [o, Enter], Cancel [c]
+
+>> 输入o或直接回车
+
+Click Next to continue, or Cancel to exit Setup.
+
+Choose the appropriate installation or upgrade option.
+Please choose one of the following:
+Express Install (uses default settings) [1],
+Custom Install (recommended for advanced users) [2, Enter],
+Upgrade an existing Confluence installation [3]
+1
+>> 这里输入数字1
+
+See where Confluence will be installed and the settings that will be used.
+Installation Directory: /opt/atlassian/confluence
+Home Directory: /var/atlassian/application-data/confluence
+HTTP Port: 8090
+RMI Port: 8000
+Install as service: Yes
+Install [i, Enter], Exit [e]
+i
+
+>> 输入i或者直接回车
+
+Extracting files ...
+
+Please wait a few moments while we configure Confluence.
+
+Installation of Confluence 6.9.0 is complete
+Start Confluence now?
+Yes [y, Enter], No [n]
+
+>> 输入y或者直接回车
+
+Please wait a few moments while Confluence starts up.
+Launching Confluence ...
+
+Installation of Confluence 6.9.0 is complete
+Your installation of Confluence 6.9.0 is now ready and can be accessed via
+your browser.
+Confluence 6.9.0 can be accessed at http://localhost:8090
+Finishing installation ...
+
+# 安装完成,访问本机的8090端口进行web端安装
+# 开放防火墙端口
+firewall-cmd --add-port=8090/tcp --permanent
+firewall-cmd --add-port=8000/tcp --permanent
+firewall-cmd --reload
+```
+
+- 默认是安装在 /opt 目录下:`/opt/atlassian/confluence/confluence/WEB-INF/lib`
+- 启动:`sh /opt/atlassian/confluence/bin/start-confluence.sh`
+- 停止:`sh /opt/atlassian/confluence/bin/stop-confluence.sh`
+- 查看 log:`tail -300f /opt/atlassian/confluence/logs/catalina.out`
+- 卸载:`sh /opt/atlassian/confluence/uninstall`
+- 设置 MySQL 连接驱动,把 mysql-connector-java-5.1.47.jar 放在目录 `/opt/atlassian/confluence/confluence/WEB-INF/lib`
+
+#### 首次配置
+
+- 访问:
+- 参考文章:
+- 参考文章:
+- 因为步骤一样,所以我就不再截图了。
+
+#### License 过程
+
+- 参考自己的为知笔记
+
+
+## 反向代理的配置可以参考
+
+-
+
+
+## 使用 markdown
+
+- 点击右上角小齿轮 > 管理应用 > 搜索市场应用 > 输入 markdown > 安装
+
+
+## 其他资料
+
+-
+-
diff --git a/markdown-file/Docker-Install-And-Usage.md b/markdown-file/Docker-Install-And-Usage.md
index 20db7079..734c11de 100644
--- a/markdown-file/Docker-Install-And-Usage.md
+++ b/markdown-file/Docker-Install-And-Usage.md
@@ -309,6 +309,11 @@ CONTAINER ID NAME CPU % MEM USAGE / LI
- `docker run -it 镜像ID --link redis-name:myredis /bin/bash`
- `redis-name` 是容器名称
- `myredis` 是容器别名,其他容器连接它可以用这个别名来写入到自己的配置文件中
+- 容器与宿主机之间文件的拷贝
+ - `docker cp /www/runoob 96f7f14e99ab:/www/` 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 的 /www 目录下
+ - `docker cp /www/runoob 96f7f14e99ab:/www` 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 中,目录重命名为 www。
+ - `docker cp 96f7f14e99ab:/www /tmp/` 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
+
#### docker 网络模式
@@ -774,7 +779,8 @@ logger.warn("-------------maxMemory=" + ((double) maxMemory / (1024 * 1024)));
- Docker Compose 主要用于定义和运行多个 Docker 容器的工具,这样可以快速运行一套分布式系统
- 容器之间是有依赖关系,比如我一个 Java web 系统依赖 DB 容器、Redis 容器,必须这些依赖容器先运行起来。
- 一个文件:docker-compose.yml
-- 一个命令:docker-compose up
+- 一个命令:`docker-compose up`
+ - 指定文件:`docker-compose -f zookeeper.yml -p zk_test up -d`
- 官网安装说明:
- 安装方法:
diff --git a/markdown-file/Elasticsearch-Base.md b/markdown-file/Elasticsearch-Base.md
index a7e98bba..959a7a93 100644
--- a/markdown-file/Elasticsearch-Base.md
+++ b/markdown-file/Elasticsearch-Base.md
@@ -1,27 +1,101 @@
# Elasticsearch 知识
-## Docker 部署
+## Docker 单节点部署
-```
-version: "3"
+- 官网:
+- 官网列表:
+- 阿里云支持版本:
+ - 阿里云有一个 `插件配置` 功能,常用的 Elasticsearch 插件都带了,勾选下即可安装。也支持上传安装。
+- 注意:docker 版本下 client.transport.sniff = true 是无效的。
+
+#### 5.6.x
+
+- `vim ~/elasticsearch-5.6.8-docker.yml`
+- 启动:`docker-compose -f ~/elasticsearch-5.6.8-docker.yml -p elasticsearch_5.6.8 up -d`
+```
+version: '3'
services:
- elasticsearch:
- image: elasticsearch:5.6.8
- restart: always
- container_name: elasticsearch
- hostname: elasticsearch
+ elasticsearch1:
+ image: docker.elastic.co/elasticsearch/elasticsearch:5.6.8
+ container_name: elasticsearch-5.6.8
environment:
- - 'http.host=0.0.0.0'
- - 'transport.host=127.0.0.1'
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ - "cluster.name=elasticsearch"
+ - "network.host=0.0.0.0"
+ - "http.host=0.0.0.0"
+ - "xpack.security.enabled=false"
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
+ nofile:
+ soft: 65536
+ hard: 65536
ports:
- - "9200:9200"
- - "9300:9300"
+ - 9200:9200
+ - 9300:9300
volumes:
- /data/docker/elasticsearch/data:/usr/share/elasticsearch/data
+
+```
+
+
+#### 6.7.x(带 ik 分词)
+
+- `vim ~/elasticsearch-6.7.2-docker.yml`
+- 启动:`docker-compose -f ~/elasticsearch-6.7.2-docker.yml -p elasticsearch_6.7.2 up -d`
+- `mkdir -p /data/docker/elasticsearch-6.7.2/data`
+- 如果官网镜像比较慢可以换成阿里云:`registry.cn-hangzhou.aliyuncs.com/elasticsearch/elasticsearch:6.7.2`
+- 下载 ik 分词(版本必须和 Elasticsearch 版本对应,包括小版本号):
+
+```
+version: '3'
+services:
+ elasticsearch1:
+ image: docker.elastic.co/elasticsearch/elasticsearch:6.7.2
+ container_name: elasticsearch-6.7.2
+ environment:
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ - "cluster.name=elasticsearch"
+ - "network.host=0.0.0.0"
+ - "http.host=0.0.0.0"
+ - "xpack.security.enabled=false"
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
+ nofile:
+ soft: 65536
+ hard: 65536
+ ports:
+ - 9200:9200
+ - 9300:9300
+ volumes:
+ - /data/docker/elasticsearch-6.7.2/data:/usr/share/elasticsearch/data
+ - /data/docker/ik:/usr/share/elasticsearch/plugins/ik
+```
+
+- Elasticsearch Head 插件地址:
+- 测试:
+
+
+```
+http://localhost:9200/
+_analyze?pretty POST
+
+
+{"analyzer":"ik_smart","text":"安徽省长江流域"}
+```
+
+- ik_max_word 和 ik_smart 什么区别?
+
+```
+ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;
+ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。
```
+
-------------------------------------------------------------------
@@ -58,10 +132,12 @@ elasticsearch hard memlock unlimited
#### 开始安装
+- 检查:`rpm -qa | grep elastic`
+- 卸载:`rpm -e --nodeps elasticsearch`
- 官网 RPM 安装流程(重要,以下资料都是对官网的总结):
- 导入 KEY:`rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch`
- 新建文件:`vim /etc/yum.repos.d/elasticsearch.repo`
-- 内容如下:
+- 内容如下(6.x):
```
[elasticsearch-6.x]
@@ -74,6 +150,19 @@ autorefresh=1
type=rpm-md
```
+- 内容如下(5.x):
+
+```
+[elasticsearch-5.x]
+name=Elasticsearch repository for 5.x packages
+baseurl=https://artifacts.elastic.co/packages/5.x/yum
+gpgcheck=1
+gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
+enabled=1
+autorefresh=1
+type=rpm-md
+```
+
- 开始安装:`yum install -y elasticsearch`,预计文件有 108M 左右,国内网络安装可能会很慢,慢慢等
- 安装完后会多了一个:elasticsearch 用户和组
- 设置 java 软链接:`ln -s /usr/local/jdk1.8.0_181/jre/bin/java /usr/local/sbin/java`
@@ -106,6 +195,9 @@ type=rpm-md
- 默认只能 localhost 访问,修改成支持外网访问
```
+打开这个注释:#cluster.name: my-application
+集群名称最好是自己给定,不然有些 client 端会连不上,或者要求填写
+
打开这个注释:#network.host: 192.168.0.1
改为:network.host: 0.0.0.0
```
diff --git a/markdown-file/Gitlab-Install-And-Settings.md b/markdown-file/Gitlab-Install-And-Settings.md
index f8f3eaab..c9a4c1e3 100644
--- a/markdown-file/Gitlab-Install-And-Settings.md
+++ b/markdown-file/Gitlab-Install-And-Settings.md
@@ -51,40 +51,27 @@ gitlab-postgresql:
- 本质就是把文件、缓存、数据库抽离出来,然后部署多个 Gitlab 用 nginx 前面做负载。
-## 原始安装方式
+## 原始安装方式(推荐)
-- 环境:
- - CPU:1 core
- - 内存:2G
-- 我习惯使用 root 用户
+- 推荐至少内存 4G,它有大量组件
- 有开源版本和收费版本,各版本比较:
- 官网:
- 中文网:
- 官网下载:
-- 安装的系统环境要求:
- - 从文章看目前要求 ruby 2.3,用 yum 版本过低,那就源码安装 ruby 吧,官网当前最新是:2.4.1(大小:14M)
- 官网安装说明:
-- 安装 ruby
- - 下载:
- - 解压:`tar zxvf ruby-2.4.1.tar.gz`
- - 编译安装:
- - `cd ruby-2.4.1`
- - `./configure`
- - `make`,过程有点慢
- - `make install`
- - 默认安装到这个目录:`/usr/local`
- - 查看当前版本号:`ruby -v`
-- CentOS 6 安装流程:
- - 当前(201703)的版本是:`GitLab Community Edition 9.0.0`
- - `sudo yum install -y curl openssh-server openssh-clients postfix cronie`
- - `sudo service postfix start`
- - `sudo chkconfig postfix on`
- - `sudo lokkit -s http -s ssh`
- - `curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash`
- - `sudo yum install gitlab-ce`,软件大小:272M,下载速度不稳定
- - `sudo gitlab-ctl reconfigure`,这个过程比较慢
- 如果上面的下载比较慢,也有国内的镜像:
- 清华:
+- 参考:
+
+```
+sudo yum install -y curl policycoreutils-python openssh-server
+
+sudo systemctl enable sshd
+sudo systemctl start sshd
+
+curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
+sudo EXTERNAL_URL="http://192.168.1.123:8181" yum install -y gitlab-ce
+```
## 配置
@@ -92,7 +79,10 @@ gitlab-postgresql:
- 配置域名 / IP
- 编辑配置文件:`sudo vim /etc/gitlab/gitlab.rb`
- 找到 13 行左右:`external_url 'http://gitlab.example.com'`,改为你的域名 / IP
- - 重启服务:`sudo gitlab-ctl reconfigure`
+ - 刷新配置:`sudo gitlab-ctl reconfigure`,第一次这个时间会比较久,我花了好几分钟
+ - 启动服务:`sudo gitlab-ctl start`
+ - 停止服务:`sudo gitlab-ctl stop`
+ - 重启服务:`sudo gitlab-ctl restart`
- 前面的初始化配置完成之后,访问当前机子 IP:`http://192.168.1.111:80`
- 默认用户是 `root`,并且没有密码,所以第一次访问是让你设置你的 root 密码,我设置为:gitlab123456(至少 8 位数)
- 设置会初始化密码之后,你就需要登录了。输入设置的密码。
@@ -234,6 +224,69 @@ gitlab-postgresql:
-
+## 接入第三方登录
+
+- 官网文档:
+ -
+ -
+ -
+
+- gitlab 自己本身维护一套用户系统,第三方认证服务一套用户系统,gitlab 可以将两者关联起来,然后用户可以选择其中一种方式进行登录而已。
+- 所以,gitlab 第三方认证只能用于网页登录,clone 时仍然使用用户在 gitlab 的账户密码,推荐使用 ssh-key 来操作仓库,不再使用账户密码。
+- 重要参数:block_auto_created_users=true 的时候则自动注册的账户是被锁定的,需要管理员账户手动的为这些账户解锁,可以改为 false
+- 编辑配置文件引入第三方:`sudo vim /etc/gitlab/gitlab.rb`,在 309 行有默认的一些注释配置
+ - 其中 oauth2_generic 模块默认是没有,需要自己 gem,其他主流的那些都自带,配置即可使用。
+
+```
+gitlab_rails['omniauth_enabled'] = true
+gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2', 'facebook', 'twitter', 'oauth2_generic']
+gitlab_rails['omniauth_block_auto_created_users'] = false
+gitlab_rails['omniauth_sync_profile_attributes'] = ['email','username']
+gitlab_rails['omniauth_external_providers'] = ['google_oauth2', 'facebook', 'twitter', 'oauth2_generic']
+gitlab_rails['omniauth_providers'] = [
+ {
+ "name"=> "google_oauth2",
+ "label"=> "Google",
+ "app_id"=> "123456",
+ "app_secret"=> "123456",
+ "args"=> {
+ "access_type"=> 'offline',
+ "approval_prompt"=> '123456'
+ }
+ },
+ {
+ "name"=> "facebook",
+ "label"=> "facebook",
+ "app_id"=> "123456",
+ "app_secret"=> "123456"
+ },
+ {
+ "name"=> "twitter",
+ "label"=> "twitter",
+ "app_id"=> "123456",
+ "app_secret"=> "123456"
+ },
+ {
+ "name" => "oauth2_generic",
+ "app_id" => "123456",
+ "app_secret" => "123456",
+ "args" => {
+ client_options: {
+ "site" => "http://sso.cdk8s.com:9090/sso",
+ "user_info_url" => "/oauth/userinfo"
+ },
+ user_response_structure: {
+ root_path: ["user_attribute"],
+ attributes: {
+ "nickname": "username"
+ }
+ }
+ }
+ }
+]
+
+```
+
## 资料
diff --git a/markdown-file/Grafana-Install-And-Settings.md b/markdown-file/Grafana-Install-And-Settings.md
index 095c2b27..c0c12ae3 100644
--- a/markdown-file/Grafana-Install-And-Settings.md
+++ b/markdown-file/Grafana-Install-And-Settings.md
@@ -6,6 +6,30 @@
- [支持的 Elasticsearch 版本](http://docs.grafana.org/features/datasources/elasticsearch/#elasticsearch-version)
+## Grafana Docker 安装
+
+- 官网:
+
+```
+mkdir -p /data/docker/grafana/data
+chmod 777 -R /data/docker/grafana/data
+
+docker run -d --name grafana -p 3000:3000 -v /data/docker/grafana/data:/var/lib/grafana grafana/grafana
+
+docker exec -it grafana /bin/bash
+
+容器中默认的配置文件位置:/etc/grafana/grafana.ini
+复制出配置文件到宿主机:docker cp grafana:/etc/grafana/grafana.ini /Users/gitnavi/
+```
+
+-
+- 默认管理账号;admin,密码:admin,第一次登录后需要修改密码,也可以通过配置文件修改
+
+```
+[security]
+admin_user = admin
+admin_password = admin
+```
----------------------------------------------------------------------------------------------
## Grafana 安装
@@ -62,6 +86,12 @@ sudo systemctl status grafana-server
- 个性化设置:
- 软件变量:
+## 官网 dashboard
+
+- dashboar仓库地址:
+- 本地可以通过输入 dashboard id 导入别人模板
+- 打开:
+ - 输入对应的 id,点击 Load 即可
----------------------------------------------------------------------------------------------
diff --git a/markdown-file/Influxdb-Install-And-Settings.md b/markdown-file/Influxdb-Install-And-Settings.md
new file mode 100644
index 00000000..82fe262d
--- /dev/null
+++ b/markdown-file/Influxdb-Install-And-Settings.md
@@ -0,0 +1,70 @@
+# Influxdb 安装和配置
+
+
+
+## Influxdb Docker 安装
+
+- 官网库:
+
+
+```
+docker run -d --name influxdb \
+-p 8086:8086 -p 8083:8083 \
+-e INFLUXDB_HTTP_AUTH_ENABLED=true \
+-e INFLUXDB_ADMIN_ENABLED=true -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=123456 \
+-e INFLUXDB_DB=mydb1 \
+-v /Users/gitnavi/docker_data/influxdb/data:/var/lib/influxdb influxdb
+```
+
+
+- 进入终端交互:
+
+```
+docker exec -it influxdb /bin/bash
+
+输入:influx,开始终端交互
+
+auth admin 123456
+show databases;
+
+use springboot
+show measurements
+
+show series from "jvm_buffer_total_capacity"
+
+select * from "jvm_buffer_total_capacity"
+
+
+如果你要再额外创建数据库:
+create database demo
+
+如果你要再创建用户:
+create user "myuser" with password '123456' with all privileges
+```
+
+
+----------------------------------------------------------------------------------------------
+
+## 配置
+
+
+
+----------------------------------------------------------------------------------------------
+
+
+
+----------------------------------------------------------------------------------------------
+
+
+## 其他资料
+
+-
+- <>
+- <>
+- <>
+- <>
+- <>
+- <>
+- <>
+- <>
+
diff --git a/markdown-file/JMeter-Install-And-Settings.md b/markdown-file/JMeter-Install-And-Settings.md
index 3fd087b9..31946f33 100644
--- a/markdown-file/JMeter-Install-And-Settings.md
+++ b/markdown-file/JMeter-Install-And-Settings.md
@@ -160,8 +160,8 @@ remote_hosts=192.168.0.1:1099,192.168.0.2:1099
- [快速学习Jmeter性能测试工具](http://gitbook.cn/books/58de71a8be13fa66243873ef/index.html)
- [jmeter:菜鸟入门到进阶系列](http://www.cnblogs.com/imyalost/p/7062784.html)
- 国内视频教程:
- - [JMeter 性能测试入门篇 - 慕课网](https://www.imooc.com/learn/735)
- [JMeter 之 HTTP 协议接口性能测试 - 慕课网](https://www.imooc.com/learn/791)
+ - [接口测试基础之入门篇 - 慕课网](https://www.imooc.com/learn/738)
- [JMeter 性能测试进阶案例实战 - 慕课网](https://coding.imooc.com/class/142.html)
- [性能测试工具—Jmeter- 我要自学网](http://www.51zxw.net/list.aspx?page=2&cid=520)
- [jmeter 视频教学课程 - 小强](https://www.youtube.com/watch?v=zIiXpCBaBgQ&list=PL3rfV4zNE8CD-rAwlXlGXilN5QpkqDWox)
diff --git a/markdown-file/Jenkins-Install-And-Settings.md b/markdown-file/Jenkins-Install-And-Settings.md
index 82cc053c..a4101dea 100644
--- a/markdown-file/Jenkins-Install-And-Settings.md
+++ b/markdown-file/Jenkins-Install-And-Settings.md
@@ -158,6 +158,37 @@ This may also be found at: /root/.jenkins/secrets/initialAdminPassword
- 如果配置插件过程遇到这个错误:`No valid crumb was included in the request`,则多重试几次。
- 登录后把: 下面的 `防止跨站点请求伪造` 勾选去掉。遇到问题多试几次。
+
+## 忘记 admin 密码进行重置
+
+- 备份配置文件:`cp /root/.jenkins/config.xml /root/.jenkins/config.xml.back`
+- 编辑:`vim /root/.jenkins/config.xml`,删除 config.xml 文件中的这部分内容,在 10 行左右位置
+
+```
+true
+
+ true
+
+
+ true
+ false
+
+```
+
+- 重启服务,进入首页此时系统是免密状态
+- 选择左侧的 `系统管理`,系统会提示你需要配置安全设置:`全局安全配置`
+ - 勾选 `启用安全`
+ - 安全域 > 勾选 `Jenkins专有用户数据库`
+ - 点击保存
+- 重新点击首页:`系统管理`
+ - 点击 `管理用户`
+ - 在用户列表中点击 admin 右侧齿轮
+ - 修改密码,修改后即可重新登录。
+- 选择左侧的 `系统管理`,系统会提示你需要配置安全设置:`全局安全配置`
+ - 勾选 `启用安全`
+ - 授权策略 > 勾选 `登录用户可以做任何事` 或 `安全矩阵`
+ - 点击保存
+
-------------------------------------------------------------------
## pipeline 语法
@@ -927,3 +958,4 @@ pipeline {
-
-
-
+-
\ No newline at end of file
diff --git a/markdown-file/Mysql-Test.md b/markdown-file/Mysql-Test.md
index 2a5799e0..f18d3f0f 100644
--- a/markdown-file/Mysql-Test.md
+++ b/markdown-file/Mysql-Test.md
@@ -199,6 +199,8 @@ cd tpcc-mysql/src
make
如果make没报错,就会在tpcc-mysql 根目录文件夹下生成tpcc二进制命令行工具tpcc_load、tpcc_start
+
+如果要同时支持 PgSQL 可以考虑:https://github.com/Percona-Lab/sysbench-tpcc
```
### 测试的几个表介绍
diff --git a/markdown-file/Nginx-Install-And-Settings.md b/markdown-file/Nginx-Install-And-Settings.md
index 71cb04a4..6a5ffb0c 100644
--- a/markdown-file/Nginx-Install-And-Settings.md
+++ b/markdown-file/Nginx-Install-And-Settings.md
@@ -102,6 +102,26 @@ http {
-------------------------------------------------------------------
+## Nginx 源码编译安装(带 Prometheus 模块)
+
+```
+./configure \
+--prefix=/usr/local/nginx \
+--pid-path=/var/local/nginx/nginx.pid \
+--lock-path=/var/lock/nginx/nginx.lock \
+--error-log-path=/var/log/nginx/error.log \
+--http-log-path=/var/log/nginx/access.log \
+--with-http_gzip_static_module \
+--http-client-body-temp-path=/var/temp/nginx/client \
+--http-proxy-temp-path=/var/temp/nginx/proxy \
+--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
+--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
+--with-http_ssl_module \
+--with-http_stub_status_module \
+--http-scgi-temp-path=/var/temp/nginx/scgi \
+--add-module=/usr/local/nginx-module-vts
+```
+
## Nginx 源码编译安装(带监控模块)
@@ -290,6 +310,27 @@ upgrade:
- 更新 `make upgrade`
+## 为 Nginx 添加 basic_auth
+
+```
+yum install httpd-tools
+
+htpasswd -c /opt/nginx-auth/passwd.db myusername,回车之后输入两次密码
+
+
+server {
+ ...
+
+ location / {
+ auth_basic "please input you user name and password";
+ auth_basic_user_file /opt/nginx-auth/passwd.db;
+ ....
+ }
+}
+
+```
+
+
## Nginx 全局变量
- $arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值。
@@ -578,6 +619,20 @@ http {
```
+- 最新版本的 Nginx SSL 配置
+
+```
+listen 443 ssl;
+
+ssl_certificate /opt/jar/ssl/server.crt;
+ssl_certificate_key /opt/jar/ssl/server.key;
+
+ssl_session_timeout 5m;
+ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
+ssl_prefer_server_ciphers on;
+```
+
----------------------------------------------------------------------
## Nginx 压力测试
diff --git a/markdown-file/PostgreSQL-Install-And-Settings.md b/markdown-file/PostgreSQL-Install-And-Settings.md
new file mode 100644
index 00000000..b2f3182e
--- /dev/null
+++ b/markdown-file/PostgreSQL-Install-And-Settings.md
@@ -0,0 +1,32 @@
+# PostgreSQL 安装和配置
+
+
+## 官网
+
+- 官网:
+ - 201906 最新版本
+ - 12 beat
+ - 11 release
+- 官网 Docker hub:
+
+
+## Docker 安装 PostgreSQL(带挂载)
+
+```
+docker run \
+ -d \
+ --name pgsql \
+ -p 5432:5432 \
+ -e POSTGRES_USER=adg_user \
+ -e POSTGRES_PASSWORD=adg123456 \
+ -v ~/docker_data/pgsql/data:/var/lib/postgresql/data \
+ postgres:11
+```
+
+- 连上容器:`docker exec -it pgsql /bin/bash`
+ - 连上 PostgreSQL:`psql -h 127.0.0.1 -p 5432 -U adg_user`
+
+
+## 资料
+
+-
diff --git a/markdown-file/Prometheus-Install-And-Settings.md b/markdown-file/Prometheus-Install-And-Settings.md
new file mode 100644
index 00000000..7780838c
--- /dev/null
+++ b/markdown-file/Prometheus-Install-And-Settings.md
@@ -0,0 +1,313 @@
+# Prometheus 安装和配置
+
+- 不错的发展史说明:
+- 特别说明:一般这类环境要尽可能保证所有服务器时间一致
+- Prometheus 本地存储不适合存长久数据,一般存储一个月就够了。要永久存储需要用到远端存储,远端存储可以用 OpenTSDB
+- Prometheus 也不适合做日志存储,日志存储还是推荐 ELK 方案
+
+## Prometheus Docker 安装
+
+- 官网:
+- Docker 官方镜像:
+- 这里以 Spring Boot Metrics 为收集信息
+- 创建配置文件:`vim /data/docker/prometheus/config/prometheus.yml`
+- 在 scrape_configs 位置下增加我们自己应用的路径信息
+
+```
+# my global config
+global:
+ scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
+ evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
+ # scrape_timeout is set to the global default (10s).
+
+# Alertmanager configuration
+alerting:
+ alertmanagers:
+ - static_configs:
+ - targets:
+ # - alertmanager:9093
+
+# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+rule_files:
+ # - "first_rules.yml"
+ # - "second_rules.yml"
+
+# A scrape configuration containing exactly one endpoint to scrape:
+# Here it's Prometheus itself.
+scrape_configs:
+ - job_name: 'springboot'
+ metrics_path: '/tkey-actuator/actuator/prometheus'
+ static_configs:
+ - targets: ['192.168.2.225:8811']
+```
+
+- 启动
+
+```
+docker run -d --name prometheus -p 9091:9090 \
+-v /data/docker/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
+prom/prometheus
+```
+
+- 然后配置 Grafana,使用这个 dashboard:
+
+
+----------------------------------------------------------------------------------------------
+
+## 配置
+
+- 官网 exporter 列表:
+- 官网 exporter 暴露的端口列表:
+
+
+### CentOS7 服务器
+
+- 当前最新版本:node_exporter 0.18.1(201907)
+
+```
+mkdir -p /usr/local/prometheus/node_exporter
+
+cd /usr/local/prometheus/node_exporter
+
+wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
+
+tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz
+
+```
+
+
+```
+创建Systemd服务
+vim /etc/systemd/system/node_exporter.service
+
+
+
+[Unit]
+Description=node_exporter
+After=network.target
+
+[Service]
+Type=simple
+User=root
+ExecStart=/usr/local/prometheus/node_exporter/node_exporter-0.18.1.linux-amd64/node_exporter
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
+```
+
+- 关于 ExecStart 参数,可以再附带一些启动监控的参数,官网介绍:
+ - 格式:`ExecStart=/usr/local/prometheus/node_exporter/node_exporter-0.18.1.linux-amd64/node_exporter --collectors.enabled meminfo,hwmon,entropy`
+
+
+```
+启动 Node exporter
+systemctl start node_exporter
+
+systemctl daemon-reload
+
+systemctl status node_exporter
+
+```
+
+
+```
+修改prometheus.yml,加入下面的监控目标:
+
+vim /data/docker/prometheus/config/prometheus.yml
+
+scrape_configs:
+ - job_name: 'centos7'
+ static_configs:
+ - targets: ['192.168.1.3:9100']
+ labels:
+ instance: centos7_node1
+
+```
+
+- 重启 prometheus:`docker restart prometheus`
+- Grafana 有现成的 dashboard:
+ -
+ -
+
+----------------------------------------------------------------------------------------------
+
+
+### Nginx 指标
+
+- 这里使用 Nginx VTS exporter:
+
+- 安装 nginx 模块:
+
+```
+git clone --depth=1 https://github.com/vozlt/nginx-module-vts.git
+
+
+编译 nginx 的时候加上:
+./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/opt/nginx-module-vts
+
+make(已经安装过了,就不要再 make install)
+```
+
+
+```
+也有人做好了 docker 镜像:
+https://hub.docker.com/r/xcgd/nginx-vts
+
+docker run --name nginx-vts -p 80:80 -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -d xcgd/nginx-vts
+```
+
+
+```
+修改Nginx配置
+
+
+http {
+ vhost_traffic_status_zone;
+ vhost_traffic_status_filter_by_host on;
+
+ ...
+
+ server {
+
+ ...
+
+ location /status {
+ vhost_traffic_status_display;
+ vhost_traffic_status_display_format html;
+ }
+ }
+}
+
+
+验证nginx-module-vts模块:http://192.168.1.3/status,会展示:
+Nginx Vhost Traffic Status 统计表
+
+```
+
+```
+如果不想统计流量的server,可以禁用vhost_traffic_status,配置示例:
+server {
+ ...
+ vhost_traffic_status off;
+ ...
+}
+```
+
+
+- 安装 nginx-vts-exporter
+
+```
+官网版本:https://github.com/hnlq715/nginx-vts-exporter/releases
+
+wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
+
+tar zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
+
+chmod +x /usr/local/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter
+```
+
+```
+创建Systemd服务
+vim /etc/systemd/system/nginx_vts_exporter.service
+
+
+[Unit]
+Description=nginx_exporter
+After=network.target
+
+[Service]
+Type=simple
+User=root
+ExecStart=/usr/local/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_uri=http://192.168.1.3/status/format/json
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
+```
+
+
+```
+启动nginx-vts-exporter
+systemctl start nginx_vts_exporter.service
+systemctl daemon-reload
+systemctl status nginx_vts_exporter.service
+```
+
+
+```
+修改 prometheus.yml,加入下面的监控目标:
+vim /data/docker/prometheus/config/prometheus.yml
+
+scrape_configs:
+ - job_name: 'nginx'
+ static_configs:
+ - targets: ['192.168.1.3:9913']
+ labels:
+ instance: nginx1
+
+
+如果nginx 有加 basic auth,则需要这样:
+scrape_configs:
+ - job_name: "nginx"
+ metrics_path: /status/format/prometheus
+ basic_auth:
+ username: youmeek
+ password: '123456'
+ static_configs:
+ - targets: ['192.168.1.3:9913']
+ labels:
+ instance: 'nginx1'
+
+```
+
+- 重启 prometheus:`docker restart prometheus`
+- Grafana 有现成的 dashboard:
+ -
+ -
+
+----------------------------------------------------------------------------------------------
+
+
+
+### 微服务下的多服务收集
+
+-
+
+----------------------------------------------------------------------------------------------
+
+
+### 告警
+
+-
+-
+
+- 告警配置
+
+- 告警检测
+
+- [Grafana+Prometheus系统监控之邮件报警功能](https://blog.52itstyle.vip/archives/2014/)
+- [Grafana+Prometheus系统监控之钉钉报警功能](https://blog.52itstyle.vip/archives/2029/)
+- [Grafana+Prometheus系统监控之webhook](https://blog.52itstyle.vip/archives/2068/)
+
+
+## 远端存储方案
+
+-
+
+
+----------------------------------------------------------------------------------------------
+
+
+## 其他资料
+
+-
+ - 写得非常非常非常好
+-
+-
+- <>
+- <>
+- <>
+- <>
+- <>
+
diff --git a/markdown-file/SkyWalking-Install-And-Settings.md b/markdown-file/SkyWalking-Install-And-Settings.md
new file mode 100644
index 00000000..db9cf77c
--- /dev/null
+++ b/markdown-file/SkyWalking-Install-And-Settings.md
@@ -0,0 +1,202 @@
+# SkyWalking 安装和配置
+
+
+## OpenAPM 相关
+
+- 目前市场工具一览:
+- 目前最活跃的标准:[OpenTracing](https://opentracing.io/)
+- 现在比较活跃的应该是:
+ - [Jaeger](https://www.jaegertracing.io/)
+ - [SkyWalking](https://skywalking.apache.org/)
+
+
+## 官网资料
+
+- 当前时间:2019-05,最新版本:6.1
+- 官网:
+- 官网 Github:
+- 官网文档:
+- 官网下载:
+ - 该网页显示:官网目前推荐的是通过源码构建出包,docker 镜像推荐
+ - 源码构建方法:
+- 这里简单抽取下核心内容:
+- 至少需要 jdk8 + maven3
+- 需要 Elasticsearch
+ - Elasticsearch 和 SkyWalking 的所在服务器的时间必须一致
+ - 看了下源码依赖的 Elasticsearch 依赖包,目前支持 5.x 和 6.x
+
+
+## 支持收集的组件列表
+
+- 国内常用的组件目前看来都支持了
+-
+
+
+## 基于 IntelliJ IDEA 直接运行、Debug
+
+- 这里选择 IntelliJ IDEA 运行服务,方便我们 debug 了解 SkyWalking:
+
+```
+cd skywalking/
+
+git submodule init
+
+git submodule update
+
+mvn clean package -DskipTests
+
+因为需要设置 gRPC 的自动生成的代码目录,为源码目录,所以:
+手工将下面提到的目录下的 grpc-java 和 java 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
+/skywalking/apm-protocol/apm-network/target/generated-sources/protobuf
+/skywalking/oap-server/server-core/target/generated-sources/protobuf
+/skywalking/oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf
+/skywalking/oap-server/exporter/target/generated-sources/protobuf
+
+
+手工将下面提到的目录下的 antlr4 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
+/skywalking/oap-server/generate-tool-grammar/target/generated-sources
+
+手工将下面提到的目录下的 oal 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
+/skywalking/oap-server/generated-analysis/target/generated-sources
+
+```
+
+#### 启动 Server 项目
+
+- 现在可以通过 IntelliJ IDEA 启动服务:
+- 编辑 server 配置:`/skywalking/oap-server/server-starter/src/main/resources/application.yml`
+ - 里面有关 Elasticsearch 连接信息的配置,你可以根据自己的情况进行配置。
+- 启动类:`/skywalking/oap-server/server-starter/src/main/java/org/apache/skywalking/oap/server/starter/OAPServerStartUp.java`
+ - 第一次启动会创建 540 个左右的 Elasticsearch 索引库,会花点时间。
+
+
+#### 启动 UI 项目
+
+
+- 现在启动 UI 项目,找到:`/skywalking/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/ApplicationStartUp.java`
+- 访问 UI 地址:
+ - 用户名:admin
+ - 密码:admin
+
+
+## Java Agent(探针)
+
+
+#### IntelliJ IDEA 项目调试
+
+- 前面构建服务的时候记得构建出 jar 包出来,这里要用到
+- 自己的 Spring Boot 项目
+- 引包:
+
+```
+
+
+
+ org.apache.skywalking
+ apm-toolkit-trace
+ 6.1.0
+
+
+```
+
+- 常用注解:
+
+
+```
+@Trace
+@ApiOperation(tags = {"用户系统管理->用户管理->用户列表"}, value = "查询所有用户列表", notes = "查询所有用户列表")
+@RequestMapping(value = "/list", method = RequestMethod.GET)
+@ResponseBody
+public List list() {
+ List sysUserList = sysUserService.findAll();
+ ActiveSpan.tag("一共有数据:", sysUserList.size() + "条");
+ log.info("当前 traceId={}", TraceContext.traceId());
+ return sysUserList;
+}
+
+```
+
+- 更多注解的使用:
+
+- 你的 demo 项目在 IntelliJ IDEA 启动的时候加上 VM 参数上设置:
+
+```
+-javaagent:/你自己的路径/skywalking-agent.jar -Dskywalking.agent.application_code=my_app_001 -Dskywalking.collector.backend_service=localhost:11800
+```
+
+- 默认 11800 是 gRPC 的接收接口
+- 你自己构建出来的 jar 路径一般是:`/skywalking/apm-sniffer/apm-agent/target/skywalking-agent.jar`
+- 然后请求你带有 Trace 的 Controller,然后去 UI 界面看统计情况
+
+#### jar 包方式
+
+- 你的 Spring Boot jar 包 run 之前加上 VM 参数:
+
+```
+java -javaagent:/你自己的路径/skywalking-agent.jar -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.agent.application_code=my_app_002 -jar my-project-1.0-SNAPSHOT.jar
+```
+
+
+#### Docker 方式
+
+- Dockerfile
+
+```
+FROM openjdk:8-jre-alpine
+
+LABEL maintainer="tanjian20150101@gmail.com"
+
+ENV SW_AGENT_NAMESPACE=java-agent-demo \
+ SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800
+
+COPY skywalking-agent /apache-skywalking-apm-bin/agent
+
+COPY target/sky-demo-1.0-SNAPSHOT.jar /demo.jar
+
+ENTRYPOINT java -javaagent:/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar /demo.jar
+```
+
+- 构建镜像:
+
+```
+docker build -t hello-demo .
+docker run -p 10101:10101 -e SW_AGENT_NAMESPACE=hello-world-demo-005 -e SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.10.0.2:11800 hello-demo
+```
+
+
+
+## 构建 jar 部署在服务器
+
+- 如果想直接打包出 jar 部署与服务器,只需要这样:
+
+```
+cd skywalking/
+
+git submodule init
+
+git submodule update
+
+mvn clean package -DskipTests
+```
+
+## 告警配置
+
+-
+
+
+## 资料
+
+-
+-
+-
+-
+- <>
+- <>
+- <>
+- <>
+
+
+
+
+
+
diff --git a/markdown-file/WordPress-Install-And-Settings.md b/markdown-file/WordPress-Install-And-Settings.md
index 39fdc9c2..c11835da 100644
--- a/markdown-file/WordPress-Install-And-Settings.md
+++ b/markdown-file/WordPress-Install-And-Settings.md
@@ -194,6 +194,19 @@ systemctl enable httpd.service
- 我是托管到 DNSPOD,重新指向到新 IP 地址即可
+## 常用插件
+
+- JP Markdown
+- WP Code Highlight.js
+- FooBox Image Lightbox
+- WP Super Cache
+
+## 常见问题
+
+- 安装插件出现:`WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续`
+- 解决办法:`chown -R apache:apache /var/www/html`
+
+
## 资料
-
diff --git a/markdown-file/Zsh.md b/markdown-file/Zsh.md
index 2186bc74..e0e294a3 100644
--- a/markdown-file/Zsh.md
+++ b/markdown-file/Zsh.md
@@ -64,6 +64,18 @@
- 编辑配置文件:`vim /root/.zshrc`,找到下图的地方,怎么安装,原作者注释写得很清楚了,别装太多了,默认 git 是安装的。
- 
- 插件推荐:
+ - `zsh-autosuggestions`
+ - 这个插件会对历史命令一些补全,类似 fish 终端
+ - 插件官网:
+ - 安装,复制该命令:`git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions`
+ - 编辑:`vim ~/.zshrc`,找到这一行,后括号里面的后面添加:`plugins=( 前面的一些插件名称,换行,加上:zsh-autosuggestions)`
+ - 刷新下配置:`source ~/.zshrc`
+ - `zsh-syntax-highlighting`
+ - 这个插件会对终端命令高亮显示,比如正确的拼写会是绿色标识,否则是红色,另外对于一些shell输出语句也会有高亮显示,算是不错的辅助插件
+ - 插件官网:
+ - 安装,复制该命令:`git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting`
+ - 编辑:`vim ~/.zshrc`,找到这一行,后括号里面的后面添加:`plugins=( 前面的一些插件名称,换行,加上:zsh-syntax-highlighting)`
+ - 刷新下配置:`source ~/.zshrc`
- `wd`
- 简单地讲就是给指定目录映射一个全局的名字,以后方便直接跳转到这个目录,比如:
- 编辑配置文件,添加上 wd 的名字:`vim /root/.zshrc`
@@ -80,12 +92,6 @@
- 进入解压后目录并安装:`cd autojump_v21.1.2/ ; ./install.sh`
- 再执行下这个:`source /etc/profile.d/autojump.sh`
- 编辑配置文件,添加上 autojump 的名字:`vim /root/.zshrc`
- - `zsh-syntax-highlighting`
- - 这个插件会对终端命令高亮显示,比如正确的拼写会是绿色标识,否则是红色,另外对于一些shell输出语句也会有高亮显示,算是不错的辅助插件
- - 插件官网:
- - 安装,复制该命令:'git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting'
- - 编辑:`vim ~/.zshrc`,找到这一行,后括号里面的后面添加:`plugins=( 前面的一些插件名称 zsh-syntax-highlighting)`
- - 刷新下配置:`source ~/.zshrc`
### 主题
diff --git a/markdown-file/monitor.md b/markdown-file/monitor.md
index 66a065a4..9a825839 100644
--- a/markdown-file/monitor.md
+++ b/markdown-file/monitor.md
@@ -576,7 +576,7 @@ TOTAL:(总的流量) 12.9GB 229Mb 190Mb 193Mb
#### lsof
- 安装 lsof:`yum install -y lsof`
-- 查看 3316 端口是否有被使用:`lsof -i:3316`,**有被使用会输出类似如下信息,如果没被使用会没有任何信息返回**
+- 查看 3316 端口是否有被使用(macOS 也适用):`lsof -i:3316`,**有被使用会输出类似如下信息,如果没被使用会没有任何信息返回**
```
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
@@ -596,7 +596,7 @@ docker-pr 13551 root 4u IPv6 2116824 0t0 TCP *:aicc-cmi (LISTEN)
#### netstat
- 更多用法可以看:[netstat 的10个基本用法](https://linux.cn/article-2434-1.html)
-- 查看所有在用的端口:`netstat -ntlp`
+- 查看所有在用的端口(macOS 也适用):`netstat -ntlp`
```
Active Internet connections (only servers)
@@ -858,11 +858,12 @@ access_log /home/wwwlogs/hicrew.log special_main;
#### 一次 JVM 引起的 CPU 高排查
- 使用 `ps -ef | grep java`,查看进程 PID
- - 根据高 CPU 的进程 PID,查看其线程 CPU 使用情况:`top -Hp PID`,找到占用 CPU 资源高的线程 PID
-- 保存堆栈情况:`jstack -l PID >> /opt/jstack-tomcat1-PID-20181017.log`
-- 把占用 CPU 资源高的线程十进制的 PID 转换成 16 进制:`printf "%x\n" PID`,比如:`printf "%x\n" 12401` 得到结果是:`3071`
+ - 根据高 CPU 的进程 PID,查看其线程 CPU 使用情况:`top -Hp PID`,找到占用 CPU 资源高的线程 TID
+ - 也可以用:`ps -mp PID -o THREAD,tid,time`
+- 保存堆栈情况:`jstack -l TID >> /opt/jstack-tomcat1-TID-20181017.log`
+- 把占用 CPU 资源高的线程十进制的 TID 转换成 16 进制:`printf "%x\n" TID`,比如:`printf "%x\n" 12401` 得到结果是:`3071`
- 在刚刚输出的那个 log 文件中搜索:`3071`,可以找到:`nid=0x3071`
-- 也可以在终端中直接看:`jstack PID |grep 十六进制线程 -A 30`,此时如果发现如下:
+- 也可以在终端中直接看:`jstack TID |grep 十六进制线程 -A 30`,此时如果发现如下:
```
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007fd0ac01f000 nid=0x66f runnable
diff --git a/markdown-file/wrk-Install-And-Settings.md b/markdown-file/wrk-Install-And-Settings.md
index 0b96c3c7..f6b7c67f 100644
--- a/markdown-file/wrk-Install-And-Settings.md
+++ b/markdown-file/wrk-Install-And-Settings.md
@@ -26,19 +26,19 @@ sudo cp wrk /usr/local/bin
## 使用
-- 启用 10 个线程,每个线程发起 100 个连接,持续 15 秒:`wrk -t10 -c100 -d15s http://www.baidu.com`
+- 启用 10 个线程,每个线程发起 100 个连接,持续 30 秒:`wrk -t10 -c100 -d30s http://www.baidu.com`
- 最终报告:
```
-Running 15s test @ http://www.baidu.com
- 10 threads and 100 connections
+Running 30s test @ http://www.baidu.com
+ 5 threads and 5 connections
Thread Stats Avg Stdev Max +/- Stdev
- Latency 208.39ms 324.00ms 1.91s 87.70%
- Req/Sec 82.68 64.81 414.00 70.60%
- 11345 requests in 15.02s, 166.51MB read
- Socket errors: connect 0, read 20, write 0, timeout 59
-Requests/sec: 755.26
-Transfer/sec: 11.08MB
+ Latency 44.59ms 17.41ms 331.91ms 95.66%
+ Req/Sec 23.11 5.77 30.00 57.04%
+ 3439 requests in 30.03s, 50.47MB read
+ Socket errors: connect 0, read 10, write 0, timeout 0
+Requests/sec: 114.52
+Transfer/sec: 1.68MB
```
#### 使用 lua 脚本(发送一个 post 请求)
@@ -62,4 +62,4 @@ wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
## 资料
-
--
\ No newline at end of file
+-