日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Sensu監(jiān)控入門

這個開源解決方案可以簡單而有效地監(jiān)控你的云基礎(chǔ)設(shè)施。

Sensu 是一個開源的基礎(chǔ)設(shè)施和應(yīng)用程序監(jiān)控解決方案,它可以監(jiān)控服務(wù)器、相關(guān)服務(wù)和應(yīng)用程序健康狀況,并通過第三方集成發(fā)送警報和通知。Sensu 用 Ruby 編寫,可以使用 RabbitMQ 或 Redis 來處理消息,它使用 Redis 來存儲數(shù)據(jù)。

如果你想以一種簡單而有效的方式監(jiān)控云基礎(chǔ)設(shè)施,Sensu 是一個不錯的選擇。它可以與你的組織已經(jīng)使用的許多現(xiàn)代 DevOps 組件集成,比如 Slack、HipChat 或 IRC,它甚至可以用 PagerDuty 發(fā)送移動或?qū)ず魴C的警報。

Sensu 的模塊化架構(gòu)意味著每個組件都可以安裝在同一臺服務(wù)器上或者在完全獨立的機器上。

結(jié)構(gòu)

Sensu 的主要通信機制是 Transport。每個 Sensu 組件必須連接到 Transport 才能相互發(fā)送消息。Transport 可以使用 RabbitMQ(在生產(chǎn)環(huán)境中推薦使用)或 Redis。

Sensu 服務(wù)器處理事件數(shù)據(jù)并采取行動。它注冊客戶端并使用過濾器、增變器和處理程序檢查結(jié)果和監(jiān)視事件。服務(wù)器向客戶端發(fā)布檢查說明,Sensu API 提供 RESTful API,提供對監(jiān)控數(shù)據(jù)和核心功能的訪問。

Sensu 客戶端執(zhí)行 Sensu 服務(wù)器安排的檢查或本地檢查定義。Sensu 使用數(shù)據(jù)存儲(Redis)來保存所有的持久數(shù)據(jù)。最后,Uchiwa 是與 Sensu API 進行通信的 Web 界面。

安裝 Sensu

條件

  • 一個 Linux 系統(tǒng)作為服務(wù)器節(jié)點(本文使用了 CentOS 7)
  • 要監(jiān)控的一臺或多臺 Linux 機器(客戶機)

服務(wù)器側(cè)

Sensu 需要安裝 Redis。要安裝 Redis,啟用 EPEL 倉庫:

$ sudo yum install epel-release -y

然后安裝 Redis:

$ sudo yum install redis -y

修改 /etc/redis.conf 來禁用保護模式,監(jiān)聽每個地址并設(shè)置密碼:

$ sudo sed -i 's/^protected-mode yes/protected-mode no/g' /etc/redis.conf
$ sudo sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf
$ sudo sed -i 's/^# requirepass foobared/requirepass password123/g' /etc/redis.conf

啟用并啟動 Redis 服務(wù):

$ sudo systemctl enable redis
$ sudo systemctl start redis

Redis 現(xiàn)在已經(jīng)安裝并準備好被 Sensu 使用。

現(xiàn)在讓我們來安裝 Sensu。

首先,配置 Sensu 倉庫并安裝軟件包:

$ sudo tee /etc/yum.repos.d/sensu.repo << EOF
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF

$ sudo yum install sensu uchiwa -y

讓我們?yōu)?Sensu 創(chuàng)建最簡單的配置文件:

$ sudo tee /etc/sensu/conf.d/api.json << EOF
{
  "api": {
        "host": "127.0.0.1",
        "port": 4567
  }
}
EOF

然后,配置 sensu-api 在本地主機上使用端口 4567 監(jiān)聽:

$ sudo tee /etc/sensu/conf.d/redis.json << EOF
{
  "redis": {
        "host": "",
        "port": 6379,
        "password": "password123"
  }
}
EOF


$ sudo tee /etc/sensu/conf.d/transport.json << EOF
{
  "transport": {
        "name": "redis"
  }
}
EOF

在這兩個文件中,我們將 Sensu 配置為使用 Redis 作為傳輸機制,還有 Reids 監(jiān)聽的地址。客戶端需要直接連接到傳輸機制。每臺客戶機都需要這兩個文件。

$ sudo tee /etc/sensu/uchiwa.json << EOF
{
   "sensu": [
        {
        "name": "sensu",
        "host": "127.0.0.1",
        "port": 4567
        }
   ],
   "uchiwa": {
        "host": "0.0.0.0",
        "port": 3000
   }
}
EOF

在這個文件中,我們配置 Uchiwa 監(jiān)聽每個地址(0.0.0.0)的端口 3000。我們還配置 Uchiwa 使用 sensu-api(已配置好)。

出于安全原因,更改剛剛創(chuàng)建的配置文件的所有者:

$ sudo chown -R sensu:sensu /etc/sensu

啟用并啟動 Sensu 服務(wù):

$ sudo systemctl enable sensu-server sensu-api sensu-client
$ sudo systemctl start sensu-server sensu-api sensu-client
$ sudo systemctl enable uchiwa
$ sudo systemctl start uchiwa

嘗試訪問 Uchiwa 網(wǎng)站:http://<服務(wù)器的 IP 地址>:3000

對于生產(chǎn)環(huán)境,建議運行 RabbitMQ 集群作為 Transport 而不是 Redis(雖然 Redis 集群也可以用于生產(chǎn)環(huán)境),運行多個 Sensu 服務(wù)器實例和 API 實例,以實現(xiàn)負載均衡和高可用性。

Sensu 現(xiàn)在安裝完成,讓我們來配置客戶端。

客戶端側(cè)

要添加一個新客戶端,你需要通過創(chuàng)建 /etc/yum.repos.d/sensu.repo 文件在客戶機上啟用 Sensu 倉庫。

$ sudo tee /etc/yum.repos.d/sensu.repo << EOF
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF

啟用倉庫后,安裝 Sensu:

$ sudo yum install sensu -y

要配置 sensu-client,創(chuàng)建在服務(wù)器中相同的 redis.jsontransport.json,還有 client.json 配置文件:

$ sudo tee /etc/sensu/conf.d/client.json << EOF
{
  "client": {
        "name": "rhel-client",
        "environment": "development",
        "subscriptions": [
        "frontend"
        ]
  }
}
EOF

name 字段中,指定一個名稱來標識此客戶機(通常是主機名)。environment 字段可以幫助你過濾,而 subscriptions 定義了客戶機將執(zhí)行哪些監(jiān)視檢查。

最后,啟用并啟動服務(wù)并簽入 Uchiwa,因為客戶機會自動注冊:

$ sudo systemctl enable sensu-client
$ sudo systemctl start sensu-client

Sensu 檢查

Sensu 檢查有兩個組件:一個插件和一個定義。

Sensu 與 Nagios 檢查插件規(guī)范兼容,因此無需修改即可使用用于 Nagios 的任何檢查。檢查是可執(zhí)行文件,由 Sensu 客戶機運行。

檢查定義可以讓 Sensu 知道如何、在哪以及何時運行插件。

客戶端側(cè)

讓我們在客戶機上安裝一個檢查插件。請記住,此插件將在客戶機上執(zhí)行。

啟用 EPEL 并安裝 nagios-plugins-http

$ sudo yum install -y epel-release
$ sudo yum install -y nagios-plugins-http

現(xiàn)在讓我們通過手動執(zhí)行它來了解這個插件。嘗試檢查客戶機上運行的 Web 服務(wù)器的狀態(tài)。它應(yīng)該會失敗,因為我們并沒有運行 Web 服務(wù)器:

$ /usr/lib64/nagios/plugins/check_http -I 127.0.0.1
connect to address 127.0.0.1 and port 80: Connection refused
HTTP CRITICAL - Unable to open TCP socket

不出所料,它失敗了。檢查執(zhí)行的返回值:

$ echo $?
2

Nagios 檢查插件規(guī)范定義了插件執(zhí)行的四個返回值:

插件返回碼 狀態(tài)
0 OK
1 WARNING
2 CRITICAL
3 UNKNOWN

有了這些信息,我們現(xiàn)在可以在服務(wù)器上創(chuàng)建檢查定義。

服務(wù)器側(cè)

在服務(wù)器機器上,創(chuàng)建 /etc/sensu/conf.d/check_http.json 文件:

{
  "checks": {
    "check_http": {
      "command": "/usr/lib64/nagios/plugins/check_http -I 127.0.0.1",
      "interval": 10,
      "subscribers": [
        "frontend"
      ]
    }
  }
}

command 字段中,使用我們之前測試過的命令。interval 會告訴 Sensu 這個檢查的頻率,以秒為單位。最后,subscribers 將定義執(zhí)行檢查的客戶機。

重新啟動 sensu-apisensu-server 并確認新檢查在 Uchiwa 中可用。

$ sudo systemctl restart sensu-api sensu-server

接下來

Sensu 是一個功能強大的工具,本文只簡要介紹它可以干什么。參閱文檔了解更多信息,訪問 Sensu 網(wǎng)站了解有關(guān) Sensu 社區(qū)的更多信息。



當前題目:Sensu監(jiān)控入門
標題URL:http://www.dlmjj.cn/article/cdjeocs.html