成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

FastD 最佳實(shí)踐四: 構(gòu)建系統(tǒng)可視化監(jiān)控

khlbat / 2399人閱讀

摘要:的展示非常炫酷,絕對(duì)是運(yùn)維提升逼格的一大利器。另外的可視化功能比強(qiáng)得多,而且以上版本將集成報(bào)警功能。它由寫成,著力于高性能地查詢與存儲(chǔ)時(shí)序型數(shù)據(jù)。被廣泛應(yīng)用于存儲(chǔ)系統(tǒng)的監(jiān)控?cái)?shù)據(jù),行業(yè)的實(shí)時(shí)數(shù)據(jù)等場(chǎng)景。

原有監(jiān)控系統(tǒng)

整個(gè)系統(tǒng)以 Graphite (carbon + whisper) 為核心, kong 通過(guò) statsd plugin 將服務(wù)調(diào)用信息發(fā)送至 statsd, 而 statsd 則將統(tǒng)計(jì)信息通過(guò) Web API 保存至Graphite . 最終在 Grafana 中通過(guò) Graphite Data Source 獲取統(tǒng)計(jì)信息并輸出圖表到面板.

這是網(wǎng)上找到的, 對(duì) Grafana 的描述

Grafana 是一個(gè)開源的指標(biāo)量監(jiān)測(cè)和可視化工具。常用于展示基礎(chǔ)設(shè)施的時(shí)序數(shù)據(jù)和應(yīng)用程序運(yùn)行分析。Grafana 的 dashboard 展示非常炫酷,絕對(duì)是運(yùn)維提升逼格的一大利器。
grafana 的套路基本上跟 kibana 差不多,都是根據(jù)查詢條件設(shè)置聚合規(guī)則,在合適的圖表上進(jìn)行展示,多個(gè)圖表共同組建成一個(gè) dashboard,熟悉 kibana 的用戶應(yīng)該可以非常容易上手。另外 grafana 的可視化功能比 kibana 強(qiáng)得多,而且 4 以上版本將集成報(bào)警功能。

在之前的監(jiān)控中, 只能統(tǒng)計(jì)到 kong 的調(diào)用信息, 整個(gè)結(jié)構(gòu)的復(fù)雜度高, 而實(shí)現(xiàn)的功能卻比較簡(jiǎn)單. 搞了這么大一套鬼東西, 只能查看 kong 的監(jiān)控. 雖然能通過(guò) Zabbix Plugin 在 Grafana 中查看 zabbix 的監(jiān)控?cái)?shù)據(jù), 但是支持度有限, zabbix 的性能也... 叔惡死 ...

迭代

開源的時(shí)序性數(shù)據(jù)庫(kù)不多, 其中比較出名的有 Graphite 跟 influxdb.

這是維基百科上對(duì) influxdb 的介紹

InfluxDB 是一個(gè)由 InfluxData 開發(fā)的開源時(shí)序型數(shù)據(jù)庫(kù)[note 1]。它由 Go 寫成,著力于高性能地查詢與存儲(chǔ)時(shí)序型數(shù)據(jù)。InfluxDB 被廣泛應(yīng)用于存儲(chǔ)系統(tǒng)的監(jiān)控?cái)?shù)據(jù),IoT 行業(yè)的實(shí)時(shí)數(shù)據(jù)等場(chǎng)景。

通過(guò)了解, influxdb 相比 Graphite 有這些優(yōu)勢(shì):

提供 telegraf 作為 agent 采集服務(wù)器信息, 并有非常豐富的插件用戶采集 Nginx/Redis/PHPFPM/Elasticsearch 等的狀態(tài)信息. 真正提供了采集/存儲(chǔ)/可視化, 屌屌屌.

可擴(kuò)展能力 (待實(shí)踐)

方便而強(qiáng)大的查詢語(yǔ)言

高效存儲(chǔ) (待驗(yàn)證)

而其中, Telegraf 也提供了 Statsd Server 功能, 解決了 Statsd 官方推薦的 influxdb backend 插件只支持 influxdb 0.9 的情況 .

基于 Influxdb + Telegraf + Grafana 搭建的監(jiān)控系統(tǒng)

在這一版的監(jiān)控系統(tǒng)中, 我們將利用 Telegraf 或者直接提交至 Influxdb, 來(lái)采集三種信息:

在每臺(tái)機(jī)器上安裝 Telegraf 用于采集服務(wù)器及其安裝的軟件的狀態(tài)和統(tǒng)計(jì)信息

在網(wǎng)關(guān)所處的機(jī)器上, 啟用 Telegraf 提供的 Statsd Server 功能, 在 Kong 中, 啟用 Statsd 插件, 將調(diào)用日志提交至 Statsd.

在服務(wù)中創(chuàng)建計(jì)劃任務(wù)定時(shí)提交業(yè)務(wù)數(shù)據(jù)提交至 Influxdb

Influxdb 提供了一個(gè) Web API 用于管理, 類似于 Mysql, Influxdb 也提供了 命令行的 Client 用于管理.

同時(shí), 需要部署 Grafana 用于可視化面板. 部署 Chronograf 用于管理 Influxdb. Chronograf 提供了 Influxdb 的 Web Admin 功能(在 Influxdb 0.9時(shí)代是內(nèi)置在 Influxdb中的), 以及比較豐富的圖表功能, 但是不能跟 Grafana 比. 因此我們只把它用來(lái)管理 Influxdb.

Telegraf

telegraf 內(nèi)置了很多 Input Plugin, 用途是什么呢?
回想到如果是你自己去做一個(gè)監(jiān)控, 能夠做到記錄每分鐘 CPU 的空閑率是多少, 要怎么做?

搞一個(gè)數(shù)據(jù)庫(kù), 用來(lái)放數(shù)據(jù)的

寫一個(gè)腳本, 用來(lái)獲取 CPU 的相關(guān)數(shù)據(jù), 加上時(shí)間戳, 然后保存到數(shù)據(jù)庫(kù)

創(chuàng)建一個(gè)定時(shí)任務(wù), 一分鐘運(yùn)行一次腳本

寫一個(gè)簡(jiǎn)單的程序, 從數(shù)據(jù)庫(kù)查到數(shù)據(jù), 然后根據(jù)時(shí)間戳, 繪制成圖表.

在你的腳本里面, 你可以采集任何你采集得到的數(shù)據(jù), 然后懟到數(shù)據(jù)庫(kù). 而 Input Plugin 就是寫好了的腳本. 只需要在配置文件中開啟, 就可以采集到對(duì)應(yīng)的數(shù)據(jù). telegraf 內(nèi)置的 Input Plugin 有這些:

Nginx

MySQL

PHP FPM

redis

Net

Netstat

MongoDB

PostgreSQL

Zipkin

Zookeeper

Elasticsearch

Apache

Docker

...

oh shit! 我要的都有!

而且, 前面講到, telegraf 內(nèi)置了一個(gè) Statsd Server (Service Inputs), 從而解決了 Kong 調(diào)用監(jiān)控的問題. 然而這不是全部, telegraf 還提供了:

HTTP Listener

TCP Listener

UDP Listener

Webhooks Listener

shit..

這只是 Input, Output 還支持 Graphite, Elasticsearch, Datadog 等等.. shit..

安裝部署

需要準(zhǔn)備一臺(tái)機(jī)器用于安裝數(shù)據(jù)庫(kù)及 UI. 安裝完成后啟動(dòng)服務(wù), 并在需要監(jiān)控的每臺(tái)機(jī)器上安裝 agent. 根據(jù)需要配置好 input plugin.

每個(gè) telegraf 只能提交到一個(gè) database. telegraf 的每個(gè) input 項(xiàng)都會(huì)有一個(gè) hosttag, 它的值默認(rèn)是機(jī)器的 hostname, 可以在 telegraf 的配置文件中修改.

根據(jù)資源編排, 以及 Grafana 的面板模板變量, 將機(jī)器與數(shù)據(jù)庫(kù)的關(guān)系定位:

以每臺(tái)機(jī)的 IP 作為 hostname, 或是以 {分組名}+{組內(nèi)編號(hào)}.

一個(gè)分組一個(gè)數(shù)據(jù)庫(kù)

根據(jù)分組需要開啟 input plugin

固定一個(gè)臺(tái)機(jī)采集所有 mysql, redis 等服務(wù)

好了, 那么開工!

安裝 Influxdb
cd /usr/local/src
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.3.2.x86_64.rpm
yum localinstall influxdb-1.3.2.x86_64.rpm

# 啟動(dòng)
/etc/init.d/influxdb start

# 檢查 8086 端口
curl -i "http://127.0.0.1:8086"
安裝 Chronograf
cd /usr/local/src
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.3.6.1.x86_64.rpm
yum localinstall chronograf-1.3.6.1.x86_64.rpm

# 啟動(dòng)
/etc/init.d/chronograf start

# 檢查 8888 端口
curl -i "http://127.0.0.1:8888"

如果 8888 已被占用, 需要指定端口運(yùn)行

nohup chronograf --port=8889 > /dev/null 2>&1 &
安裝 Grafana
cd /usr/local/src
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm
yum localinstall grafana-4.4.3-1.x86_64.rpm

# 啟動(dòng)
/etc/init.d/grafana-server start

# 檢查 3000 端口
curl -i "http://127.0.0.1:3000"
安裝 Telegraf

需要在每一臺(tái)機(jī)器上安裝 Telegraf 作為 agent, 采集跟上報(bào)數(shù)據(jù)到 Influxdb. 包括安裝 Influxdb 的機(jī)器

cd /usr/local/src
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.3.5-1.x86_64.rpm
yum localinstall telegraf-1.3.5-1.x86_64.rpm

安裝完成后, 默認(rèn)配置已經(jīng)有采集系統(tǒng)信息的了, 需要增加幾項(xiàng) input

database

如果配置的 database 不存在, 將自動(dòng)創(chuàng)建.

[[outputs.influxdb]]
  urls = ["http://10.1.0.1:8086"]
  database = "servers_xxxx"
  retention_policy = ""
  write_consistency = "any"
  timeout = "5s"
nginx

需要在 nginx 上啟用 status, 我們固定使用 1200 端口.

server {
    listen  *:1200 default_server;
    server_name _;
    location /nginx_status
    {
        stub_status on;
        access_log off;
    }
}

然后修改 /etc/telegraf/telegraf.conf

 [[inputs.nginx]]
   urls = ["http://127.0.0.1:1200/nginx_status"]
PHP FPM

需要啟用 fpm 的status

pm.status_path = /status

然后修改 /etc/telegraf/telegraf.conf

 [[inputs.phpfpm]]
   urls = ["fcgi://127.0.0.1:7006/status"]
Net
 [[inputs.net]]
    interfaces = ["eth0", "eth1"]
Netstat
 [[inputs.netstat]]

配置完成后, 需要對(duì)配置進(jìn)行測(cè)試, 完成后啟動(dòng)再啟動(dòng)

telegraf -config /etc/telegraf/telegraf.conf -test

/etc/init.d/telegraf start
配置 Grafana 面板

在 Grafana 中, 需要先配置數(shù)據(jù)源 (Data Source), 然后創(chuàng)建 Dashboard, 在 Dashboard 中創(chuàng)建 Panel 也就是各種統(tǒng)計(jì)組件. 最終完成一個(gè)面板的配置.

配置數(shù)據(jù)源


配置數(shù)據(jù)源需要注意幾個(gè)地方:

type, 選擇 Influxdb,

name, 固定 server_{name}

url, Influxdb 的地址

access, 固定 proxy. 此外還有 direct. 前者是經(jīng)由 Grafana 所在機(jī)器代理訪問 Influxdb, 后者是在瀏覽器直接訪問 Influxdb.

database, 目標(biāo)機(jī)器的 Telegraf 做配置的 database

配置完成后, 點(diǎn)及 Add 兩次, 如果顯示 test success 即為成功.

創(chuàng)建面板



可以選擇切換到手動(dòng)編輯 SQL 模式.

然后保存, 這樣就創(chuàng)建好了第一個(gè)面板了.

查詢語(yǔ)言

具體需要查看官方文檔

Influxdb 使用的查詢語(yǔ)言是一種類 SQL 的查詢語(yǔ)言

InfluxDB’s SQL-like query language for interacting with data in InfluxDB.

Influxdb 是一種時(shí)序型的數(shù)據(jù)庫(kù), 跟關(guān)系型數(shù)據(jù)庫(kù)(以 mysql 為例)的區(qū)別, 我理解就是數(shù)據(jù)庫(kù)自動(dòng)維護(hù)著 created_at

結(jié)構(gòu)的異同

都有 database, 并且都需要?jiǎng)?chuàng)建才能使用

mysql 有 table, Influxdb 有 measurement, 兩者的角色差不多

measurement 下有 tag, tag 下才是 field.

measurement + tag = serie

查詢語(yǔ)句的異同

CRUD 中 Influxdb 只有 C R D

Influxdb 對(duì)正則表達(dá)式的支持. 例如 SELECT "value" FROM /kong_sms_request_status_*/

tag 跟 field 都可以用于 where 查詢

Influxdb 有更豐富的聚合查詢

當(dāng)然, 兩種類型的數(shù)據(jù)庫(kù)的主要用途不同, 對(duì)比只是用于方便上手, 并非對(duì)比兩者優(yōu)劣.

示例
> create database "demo"

> show databases
name: databases
name
----
_internal
demo

> use "demo"
Using database demo

> insert hello,tag_alpha=2 value=3
> insert hello,tag_alpha=2 value=3
> insert hello,tag_alpha=4 value=5
> insert hello,tag_alpha=4 value=6
> show measurements;
name: measurements
name
----
hello

> select * from hello
name: hello
time                tag_alpha value
----                --------- -----
1503037127485600991 3         3
1503037249575451262 2         4
1503037384953683603 4         5
1503037626342109770 4         6

> select * from hello where tag_alpha="2"
name: hello
time                tag_alpha value
----                --------- -----
1503037249575451262 2         4

> select * from hello where tag_alpha="4" and value=6
name: hello
time                tag_alpha value
----                --------- -----
1503037626342109770 4         6
效果

給一張公司內(nèi)部署之后的面板圖

友情鏈接

RunnerLee: fastD 貢獻(xiàn)者之一

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25820.html

相關(guān)文章

  • FastD 最佳實(shí)踐六: 為應(yīng)用添加調(diào)用鏈監(jiān)控 Zipkin

    摘要:調(diào)整配置文件在選項(xiàng)中,追加即可。有了以上系統(tǒng)常規(guī)監(jiān)控日志集中分析應(yīng)用調(diào)用鏈監(jiān)控,我們的業(yè)務(wù)就可以變得更加透明,清晰,可控。相關(guān)文章最佳實(shí)踐四構(gòu)建系統(tǒng)可視化監(jiān)控最佳實(shí)踐五構(gòu)建日志分析 zipkin是一個(gè)開放源代碼分布式的跟蹤系統(tǒng),由Twitter公司開源,它致力于收集服務(wù)的定時(shí)數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問題,包括數(shù)據(jù)的收集、存儲(chǔ)、查找和展現(xiàn)。它的理論模型來(lái)自于Google Dappe...

    jayce 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐五: 構(gòu)建ELK日志分析

    摘要:點(diǎn)擊前往中文地址先決條件簡(jiǎn)單安裝下載地址下載或者其他都可以。版本處理方案新建格式日志文件。配置日志會(huì)隨著配置進(jìn)行生成,結(jié)果如下忽略上述日志內(nèi)容,程序看得懂即可配置推送到需要根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行配置,現(xiàn)在顯示最簡(jiǎn)單的配置。 過(guò)去咱們開發(fā)中,對(duì)日志這個(gè)環(huán)節(jié)其實(shí)并不太重視,直到有一天,應(yīng)用出現(xiàn)異常,這個(gè)時(shí)候才想起來(lái)日志,但很可惜,為時(shí)已晚。 咱們做運(yùn)維和開發(fā),除了救火,還需要防火,因此一些防范的...

    djfml 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐一: 構(gòu)建 API

    摘要:最佳實(shí)踐一構(gòu)建是一個(gè)專門針對(duì)應(yīng)用層而生的一個(gè)應(yīng)用框架,提供良好的中間件,路由以及支持?jǐn)U展運(yùn)行,從而具體良好的性能條件。手動(dòng)創(chuàng)建添加路由地址調(diào)用完成最第一個(gè)路由。緩存也是一個(gè)前置中間件,使用方式與日常操作保持一致。 FastD 最佳實(shí)踐一: 構(gòu)建 API FastD 是一個(gè)專門針對(duì) API 應(yīng)用層而生的一個(gè) PHP 應(yīng)用框架,提供良好的中間件,路由以及支持 swoole 擴(kuò)展運(yùn)行,從而具...

    WalkerXu 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐三: 構(gòu)建API網(wǎng)關(guān)

    摘要:我們需要將業(yè)務(wù)或服務(wù)放置在網(wǎng)關(guān)背后,由網(wǎng)關(guān)統(tǒng)一處理請(qǐng)求入口,本身由多個(gè)入口的處理變成了一個(gè)入口,由網(wǎng)關(guān)進(jìn)行統(tǒng)一調(diào)度。網(wǎng)關(guān)負(fù)責(zé)來(lái)搞這些事情,你只需要知道網(wǎng)關(guān)就好了。 構(gòu)建完成 API 服務(wù),配置中心之后,架構(gòu)圖大致如下: showImg(https://segmentfault.com/img/remote/1460000010676395); 我們?yōu)楹涡枰W(wǎng)關(guān) 引用 別人 的一句話: ...

    CoXie 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐二: 構(gòu)建配置中心

    摘要:過(guò)去專門做了一篇文檔來(lái)構(gòu)建配置中心,基于的配置中心。環(huán)境要求及構(gòu)建步驟可參考搭建配置中心隨著業(yè)務(wù)增長(zhǎng),部署的機(jī)器可能會(huì)隨著增長(zhǎng),增加配置難度和維護(hù)難度。最終架構(gòu)圖如下無(wú)論擴(kuò)展多少個(gè)業(yè)務(wù)應(yīng)用,僅需要一個(gè)配置中心即可完成多處配置修改。 過(guò)去專門做了一篇文檔來(lái)構(gòu)建配置中心,基于 zookeeper 的配置中心。 環(huán)境要求及構(gòu)建步驟可參考: QConf搭建配置中心 隨著業(yè)務(wù)增長(zhǎng),部署的機(jī)器可能...

    noONE 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<