1 DEVOPS 平台技术实践 - kaishen2018/project-tracking GitHub Wiki
DEVOPS 自动化部署运维平台
目录
- Docker 基础
- Grafana 基础
- ELK 基础
Docker 基础
基本概念
- 虚拟化技术
- docker & k8s
- 镜像 & 容器
环境准备
- CentOS 7 安装 docker
# 参考: https://www.cnblogs.com/yufeng218/p/8370670.html
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.0.ce-3.el7.x86_64.rpm
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-18.03.0.ce
systemctl status docker
systemctl start docker
NOTE: 修改国内 docker register mirrors
echo '{"registry-mirrors": ["http://ef017c13.m.daocloud.io"]}' >> /etc/docker/daemon.json
软件安装
Kong API Gateway
- 1 准备网络
docker network create kong-net
- 2 准备 postgres 数据库
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6
- 3 初始化 DB
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations up
- 4 启动 KONG ADMIN (注意对外的端口号,我改成了80)
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 80:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:latest
- 5 测试 KONG ADMIN
curl -i http://localhost:8001/
- 6 启动 kong-dashboard 参考
# Start Kong Dashboard
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001
# Start Kong Dashboard on a custom port
docker run --rm -p [port]:8080 pgbi/kong-dashboard start --kong-url http://kong:8001
# Start Kong Dashboard with basic auth
docker run --rm -p 8080:8080 pgbi/kong-dashboard start \
--kong-url http://kong:8001
--basic-auth user1=password1 user2=password2
# See full list of start options
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --help
ELK 基础
基础概念
- Filebeat
- Logstash
- ElasticSearch
- Kibana
安装
- ELK 工作原理
- Elasticsearch权威指南(中文版)
- ELK 基本安装
- 1 准备网络
docker network create elasticsearch-net
- 2 切换 Docker 国内镜像
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef017c13.m.daocloud.io
- 3 启动 一个 es 实例
docker run -d \
--network elasticsearch-net \
-p 9200:9200 \
-v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
--name elasticsearch elasticsearch:6.5.4
- 4 启动 kibana 实例
docker run -d \
--network elasticsearch-net \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kibana \
-p 5601:5601 kibana:6.5.4
Grafana 基础
基础知识
安装
- docker 安装 (加入现有的一个网络 elasticsearch-net,方便调试)
docker run -d --name grafana \
--network "elasticsearch-net" \
--volume "/opt/grafana/data:/var/lib/grafana" \
-p 3000:3000 grafana/grafana:5.4.0
实践
- 5分钟搭建网站实时分析:Grafana+日志服务实战
- [grafana 更多实例](https://grafana.com/dashboards?panelType=graph)
- 使用StatsD, Graphite, Grafana, Kamon搭建可用于JVM项目的可视化性能监控系统
- 使用Kibana 分析Nginx 日志并在 Dashboard上展示
帮助指令
- 将正在运行的容器加入同一个网络,使各容器在内部可见,参考
docker network connect elasticsearch-net phpmyadmin_sbux