Docker下實戰zabbix三部曲之二:監控其餘機器

在上一章《Docker下實戰zabbix三部曲之一:極速體驗》中,咱們快速安裝了zabbix server,並登陸管理頁面查看了zabbix server所在機器的監控信息,可是在實際場景中,應該是對應用服務器作監控,因此今天咱們來實戰將應用服務器的監控加入到zabbix server中。mysql

全系列文章連接:

  1. 《Docker下實戰zabbix三部曲之一:極速體驗》
  2. 《Docker下實戰zabbix三部曲之二:監控其餘機器》
  3. 《Docker下實戰zabbix三部曲之三:自定義監控項》

部署狀況

假設實際項目中咱們有兩臺應用服務器,爲了監控它們,咱們要在上面分別安裝zabbix-agent服務,而後經過配置讓它們與zabbix server鏈接,全部監控數據和監控配置數據都被zabbix server保存在mysql中,部署狀況以下圖:linux

這裏寫圖片描述

真實場景中是在應用服務器上安裝zabbix agent服務,可是安裝agent的過程和步驟不是本次實踐的重點,爲了快速體驗服務本文使用了zabbix官方的agent鏡像,這個鏡像實際上就是在ubuntu14上安裝了zabbix agent(在服務器上安裝zabbix agent的過程就不在本文中詳述了,對安裝有興趣的讀者們能夠去網上搜索相關資料)sql

docker-compose.yml文件

按照前面圖片所示的部署狀況,咱們的docker-compose.yml內容以下,mysql和zabbix server是必須的,再新增了兩個zabbix agent容器,名稱分別是zabbix-agent-a和zabbix-agent-b:docker

version: '2'
services:
  zabbix-mysql-service: 
    image: daocloud.io/library/mysql:8
    container_name: zabbix-mysql-service
    environment:
      - MYSQL_ROOT_PASSWORD=888888
    restart: always
  zabbix-server-service:
    image: monitoringartist/zabbix-xxl:3.2.6
    links: 
      - zabbix-mysql-service:mysqlhost
    container_name: zabbix-server-service
    restart: always
    depends_on:
      - zabbix-mysql-service
    ports:
      - "8888:80"
    environment:
      - ZS_DBHost=mysqlhost
      - ZS_DBUser=root
      - ZS_DBPassword=888888
  zabbix-agent-a:
    image: zabbix/zabbix-agent:ubuntu-3.2.6
    links: 
      - zabbix-server-service:zabbixserverhost
    container_name: zabbix-agent-a
    restart: always
    depends_on:
      - zabbix-server-service
    environment:
      - ZBX_HOSTNAME=zabbix-agent-service-a
      - ZBX_SERVER_HOST=zabbixserverhost
  zabbix-agent-b:
    image: zabbix/zabbix-agent:ubuntu-3.2.6
    links: 
      - zabbix-server-service:zabbixserverhost
    container_name: zabbix-agent-b
    restart: always
    depends_on:
      - zabbix-server-service
    environment:
      - ZBX_HOSTNAME=zabbix-agent-service-b
      - ZBX_SERVER_HOST=zabbixserverhost

如上所示,zabbix agent在配置過程當中要用到zabbix server的ip信息,這裏咱們經過links參數,在zabbix agent的host文件中加入了zabbix server的ip信息,host name是zabbixserverhost;ubuntu

另外,ZBX_HOSTNAME和ZBX_SERVER_HOST這兩個環境變量,在zabbix agent鏡像的官方文檔中已經說明,以下圖,ZBX_HOSTNAME用來表示本身的身份,ZBX_SERVER_HOST是用來標明zabbix server的ip信息的,這裏直接用link參數中的alias來表示,就能經過host直接找到zabbix server的ip了:服務器

這裏寫圖片描述

啓動docker 容器

打開控制檯,在docker-compose.yml文件所在的目錄下執行命令<font color="red">docker-compose up -d</font>,如圖:ide

這裏寫圖片描述

進入控制檯

等待大約1分鐘,讓zabbix server完成初始化,而後就能登陸管理頁面了,詳情請參照《Docker下實戰zabbix三部曲之一:極速體驗》一文,登陸後進入hosts頁面,以下圖:.net

這裏寫圖片描述

獲取監控機器ip

按照前面的部署描述圖上的部署,有兩臺機器裝了zabbix agent服務,而後想要加入監控,第一步咱們要把機器的ip肯定下來,在控制檯執行<font color="red">docker exec -it zabbix-agent-a ip addr</font>命令,能夠看到以下輸出,第一臺機器的ip是172.31.0.4:3d

這裏寫圖片描述

在控制檯執行<font color="red">docker exec -it zabbix-agent-b ip addr</font>命令,能夠看到如第二臺機器的ip是172.31.0.5;rest

添加機器監控

點擊hosts頁面右上角的<font color="red">Create host</font>按鈕,能夠添加監控機器,以下圖:

這裏寫圖片描述

在添加機器的頁面,主要參數填寫以下: a. Host name :機器的環境變量ZBX_HOSTNAME的值:zabbix-agent-service-a; b. Visible name :和Host name的值相同; c. Groups : 機器分組,這裏選擇Linux servers; d. Agent interfaces:這裏面只須要填寫IP address,就是剛纔咱們經過命令<font color="red">docker exec -it zabbix-agent-a ip addr</font>獲得的ip:172.31.0.4; 這個頁面只須要填寫以上四點內容,其餘的都保持默認值,填寫完畢後點擊底部的"Add"按鈕,以下圖:

這裏寫圖片描述

增長成功後,在列表中能夠看到新增的機器,以下圖:

這裏寫圖片描述

添加監控項

在機器列表頁面中,點擊機器名稱,以下圖紅框中位置:

這裏寫圖片描述

在打開的頁面點擊"Templates",以下圖紅框所示:

這裏寫圖片描述

再點擊"Select"按鈕,以下圖紅框所示:

這裏寫圖片描述

在彈出的頁面中,勾選「Template OS Linux」,而後再點擊底部的「Select」按鈕,這樣就把linux服務的經常使用監控項給批量添加了,以下圖:

這裏寫圖片描述

注意,返回的頁面中,<font color="red">必定要點擊「Add」才能讓把剛纔的選擇加上</font>,以下圖:

這裏寫圖片描述

而後點擊「Update」,完成監控項的批量添加,以下圖:

這裏寫圖片描述

按照一樣的方法把另外一臺機器的監控也加上;

等待大約1-2分鐘後,再刷新hosts頁面,就能看到列表中的"ZBX"圖標已經變爲綠色,表示監控已經生效;

查看監控信息

咱們來看看監控曲線圖吧,點擊下圖紅框中的「Graphs」:

這裏寫圖片描述

能夠看到有5個曲線圖能夠查看,以下圖,咱們看一下cpu load: 這裏寫圖片描述

在跳轉的頁面中,點擊「Previdew」,就能看到cpu load的曲線圖了,以下圖:

這裏寫圖片描述

至此,咱們添加監控機器的實戰已經完成了,可是在真實場景中,咱們除了cpu、磁盤等基礎信息的監控,還要監控一些業務有關的數據,例如某個http服務每分鐘的訪問量,在下一章《Docker下實戰zabbix三部曲之三:自定義監控項》,咱們一塊兒實戰開發一個自定義監控。

歡迎關注個人公衆號

在這裏插入圖片描述

相關文章
相關標籤/搜索