手摸手教你搭建 api 網關

現(xiàn)在的項目有個需求晴叨,需要分析每一條 api 的請求時間锰蓬,目前看到一套比較好的方案是 kong + Prometheus + Grafana邻储,之前是聽說過 kong 擴展性比較好赋咽,但一直沒有實踐的機會,借此機會來玩一玩核武器吨娜。

我熟悉的方式還是 docker脓匿,還是用它從頭搭建這一套系統(tǒng)。

立個 flag宦赠,今年必須學會 kubernetes陪毡。

參考了多篇文章各取所長,理順了各個軟件之間關系之后勾扭,發(fā)現(xiàn)網上的這些方法都過于復雜毡琉,很多文章也是相互拼湊,容器化不像容器化妙色,其實 kong桅滋、Prometheus、Grafana 之間的兼容性已經足夠好了身辨,我在操作過程中確實也踩了一些坑丐谋,但是我已經可以將他們徹底容器化部署了。

運行 kong

創(chuàng)建子網

docker network create kong-net

運行數(shù)據庫

創(chuàng)建數(shù)據庫

docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               -e "POSTGRES_PASSWORD=kong" \
               postgres:9.6

數(shù)據庫遷移

docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_PASSWORD=kong" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:1.5 kong migrations bootstrap

運行 kong

docker run -d --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_PASSWORD=kong" \
     -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 8000:8000 \
     -p 8443:8443 \
     -p 8001:8001 \
     -p 8444:8444 \
     kong:1.5

運行 kong gui

~運行 kong-dashboard~

建議直接跳過煌珊,dashboard 可以運行号俐,但是前端盡是報錯,github上面的issue也沒人處理定庵,應該是不維護了吏饿。

docker run  --network=kong-net \
            --name kong-dashboard \
            -p 8080:8080 \
            -d pgbi/kong-dashboard \
            start --kong-url http://kong:8001 \
            --basic-auth user1=password1 

運行 konga

docker run -p 8080:1337 \
           --network kong-net \
           --name konga \
           -e "NODE_ENV=production" \
           -d pantsel/konga:0.14.7

運行 prometheus

docker run --name prometheus \
--network=kong-net \
-p 9090:9090 \
 -v /root/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
 -d prom/prometheus:v2.16.0

prometheus.yml 文件配置如下

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['kong:8001']

核心點就是上面的 targets踪危,相信很多分析類的文章都沒有提到。

運行 grafana

docker run -d --network=kong-net --name=grafana -p 3000:3000 grafana/grafana:6.6.2

運行之后猪落,直接添加一個 dashboard 即可贞远。

小節(jié)一下

api 經過 kong,會留下日志许布,prometheus 通過 kong:8001 端點標準化采集的日志兴革,
grafana 通過 prometheus 得到標準后的日志進行展示。

參考文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蜜唾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庶艾,更是在濱河造成了極大的恐慌袁余,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咱揍,死亡現(xiàn)場離奇詭異颖榜,居然都是意外死亡,警方通過查閱死者的電腦和手機煤裙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門掩完,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人硼砰,你說我怎么就攤上這事且蓬。” “怎么了题翰?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵恶阴,是天一觀的道長。 經常有香客問我豹障,道長冯事,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任血公,我火速辦了婚禮昵仅,結果婚禮上,老公的妹妹穿的比我還像新娘累魔。我一直安慰自己摔笤,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布薛夜。 她就那樣靜靜地躺著籍茧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梯澜。 梳的紋絲不亂的頭發(fā)上寞冯,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天渴析,我揣著相機與錄音,去河邊找鬼吮龄。 笑死俭茧,一個胖子當著我的面吹牛,可吹牛的內容都是我干的漓帚。 我是一名探鬼主播母债,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尝抖!你這毒婦竟也來了毡们?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤昧辽,失蹤者是張志新(化名)和其女友劉穎衙熔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搅荞,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡红氯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咕痛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痢甘。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茉贡,靈堂內的尸體忽然破棺而出塞栅,到底是詐尸還是另有隱情,我是刑警寧澤块仆,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布构蹬,位于F島的核電站,受9級特大地震影響悔据,放射性物質發(fā)生泄漏庄敛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一科汗、第九天 我趴在偏房一處隱蔽的房頂上張望藻烤。 院中可真熱鬧,春花似錦头滔、人聲如沸怖亭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兴猩。三九已至,卻和暖如春早歇,著一層夾襖步出監(jiān)牢的瞬間倾芝,已是汗流浹背讨勤。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晨另,地道東北人潭千。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像借尿,于是被迫代替她去往敵國和親刨晴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容

  • Kong 是 Mashape 開源的高性能高可用 API 網關和 API 管理服務層路翻。它基于 OpenResty ...
    meng_philip123閱讀 9,028評論 0 6
  • 文章目的: 1狈癞、向沒聽過或者剛聽過但是還對這個監(jiān)控系統(tǒng)沒有任何概念的開發(fā)者介紹Prometheus的應用場景。2茂契、...
    whaike閱讀 39,596評論 15 59
  • 一亿驾、背景 Kubernetes是目前最為流行、成為事實標準的容器集群管理平臺账嚎,為容器化應用提供了集群化部署運行、自...
    JFrog閱讀 5,187評論 0 1
  • 于是這里的柱子上有一首詩: 我穿墻而過儡蔓,我消失了郭蕉。 房間空著,光還很亮喂江,沒有異常召锈。 我的消失是完美的,帶著無人懂得...
    云雀兒閱讀 206評論 2 1
  • 昨晚2點多鐘二期和三期配電室同時跳閘获询,還有一期車庫的兩個區(qū)域和公寓樓過道也發(fā)生了跳閘涨岁。以前(本年元月1號早8點左右...
    xusiman閱讀 115評論 0 0