20171128 Zabbix(二)

  • 自定義key
  • 網絡發現
  • Web監控
  • 主動檢測
  • 基于SNMP監控
  • 基于JMX監控
  • Zabbix Proxy
  • Zabbix調優

一、自定義key

  • 自定義key:在zabbix agent端的配置文件上由用戶通過UserParameter指令定義的key

  • 配置文件路徑:
    編輯/etc/zabbix/zabbix_agentd.conf文件,或者
    在/etc/zabbix/zabbix_agentd.d建立單獨文件

  • 語法格式:
    不帶參數:UserParameter=<key>,<command>
    帶參數:UserParameter=<key[*]>,<command>

  • 實驗1:實現查看被監控主機已使用內存情況

    • 本文中所有實驗主機ip情況:
      node0.hellopeiyang.com: 192.168.136.230, zabbix agent
      node1.hellopieyang.com: 192.168.136.130, zabbix agent
      node2.hellopeiyang.com: 192.168.136.131, zabbix server

    • 步驟1:在被監控主機編輯配置文件

    // 定義無參數的key
    vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
    UserParameter=memory.used,free -m | awk '/^Mem/{print $3}'
    
    systemctl restart zabbix-agent.service
    
    • 步驟2:在zabbix的web管理界面增加items,手動輸入定義的key
  • 實驗2:通過一個帶參數的key實現查看被監控主機多個內存使用指標

    • 步驟1:在被監控主機編輯配置文件
    // 定義有參數的key,$1,$2...代表參數
    vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
    UserParameter=memory.stats[*], cat /proc/meminfo | awk '/^$1/{print $$2}'
    // 當command中出現$符號時,使用$$逃逸符代表屬于command命令本身而非參數
    
    systemctl restart zabbix-agent.service
    
    • 步驟2:在zabbix的web管理界面增加items,手動輸入定義的key,通過配置不同參數,可以快速添加多個items

二、網絡發現:

  • 網絡發現:zabbix server掃描指定網絡范圍內的主機,并作出響應

  • 發現方式:在ip地址范圍內定期掃描

  • 發現可用服務
    ftp, ssh, http等協議
    zabbix_agent的響應
    snmp_agent的響應

  • 網絡發現分兩個階段:

    • discovery:發現,包含四種狀態
      UP/DOWN, DICOVERED/LOST
    • actions:以discovery events為觸發條件,可以采取如下動作
      send message:發消息
      remote command:遠程執行命令
      add/remove host:添加/刪除主機
      enable/disable host:激活/禁用主機
      add host to group:添加主機至主機組
      link template to host:連接模板至主機
  • 實驗3:在IP地址范圍內發現主機后添加主機,并將指定模板鏈接至主機

    • 步驟1:配置發現規則,指定IP范圍、掃描間隔時間、檢測所用的key
      實際生產環境的間隔時間1h,本實驗為加快實驗速度調至1min


    • 步驟2:配置執行動作,設置執行本動作的條件為步驟1設置的發現規則值為Up

    • 步驟3:設置具體的執行動作:添加主機,鏈接至模板

三、Web監控:

  • 功能:監控指定的站點的資源下載速度,及頁面響應時間,還有響應代碼

  • 基本概念:
    web scenario:web場景,監控站點
    web step:web步驟,監控頁面,每個頁面都自動配置3個內建key,用于監控

  • 內建key:
    web.test.in[Scenario,Step,bps]:傳輸速率
    web.test.time[Scenario,Step]:響應時長
    web.test.rspcode[Scenario,Step]:響應碼

  • 實驗4:實現監控站點

    • 步驟1:建立web場景,指定更新間隔和訪問網頁的瀏覽器信息
    • 步驟2:建立web步驟,分別給站點的不同網頁添加監控,可以要求只返回頭部,要求返回的狀態碼為200
    • 步驟3:最終配置完成如圖
  • 步驟4:可以在monitoring查看web監控狀態

四、主動檢測:

(一)主動檢測:

  • 主動檢測:agent向server請求與自己相關監控項配置,主動地將server配置的監控項相關的數據發送給server

  • agent端所需要基本配置:
    ServerActive=
    Hostname=
    HostnameItem=
    Hostname和HostnameItem同時存在時,以HostnameItem值為準

  • 實驗5:實現主動檢測

    • 步驟1:編輯配置文件,確保開啟主動檢測功能
    ServerActive=192.168.136.131
    Hostname=node0.hellopeiyang.com
    systemctl restart zabbix-agent
    
    • 步驟2:定義item,選擇active模式
    • 步驟3:可以看到監控情況

(二)zabbix_sender發送數據:

  • server端配置:
    item type為"zabbix trapper",定義一個不與其它已有key沖突的key

  • agent端zabbix_sender命令格式:
    zabbix_sender
    -z zabbix_server_ip
    -p zabbix_server_port
    -s zabbix_agent_hostname
    -k key
    -o value

  • 實驗6:使用zabbix_sender主動向zabbix server發送數據

    • 步驟1:定義items,選擇zabbix trapper模式
    • 步驟2:agent端向zabbix server發送指定數據
      zabbix_sender -z 192.168.136.131 -p 10051 -s node0.hellopeiyang.com -k send.test.data -o 384

    • 步驟3:server端成功接收數據

五、基于SNMP監控:

(一)SNMP:簡單網絡管理協議

  • 支持的網管操作:get, getnext(讀)、set(寫)、trap(陷阱)
    讀、寫操作是

  • 端口:161/udp (get, set), 162/udp (trap)

  • 發展歷程:
    v1: 1989
    v2c: 1993,目前最廣泛使用
    v3: 1998

  • 關鍵概念:

    • NMS:網絡管理系統,向管理員提供界面以獲取與改變設備的配置、信息、狀態、操作等信息;NMS與Agent進行通信,執行相應的Set和Get操作,并接收代理發過來的警報(Trap)
    • Agent:代理,負責NMS和設備SNMP操作的傳遞
    • MIB:管理信息庫,定義代理進程中所有可被查詢和修改的參數
    • OID:對象識別符,唯一指定管理信息庫MIB中可訪問的網絡設備及其屬性
  • 經常使用的OID:
    .1.3.6.1.2.1.
    1.1.0:系統描述信息,SysDesc
    1.3.0:監控時間, SysUptime
    1.5.0:主機名,SysName
    1.7.0:主機提供的服務,SysService
    2.1.0:網絡接口數目
    2.2.1.2:網絡接口的描述信息
    2.2.1.3:網絡接口類型

(二)Linux啟用snmp

  • 安裝包:net-snmp net-snmp-utils

  • 配置文件:
    /etc/snmp/snmpd.conf,定義ACL(允許指定范圍OID能被讀取)

  • 啟動服務:
    systemctl start snmpd.service

  • 測試工具:
    snmpget:獲取指定OID信息
    snmpwalk:獲取指定OID根節點下所有OID葉節點的信息,遍歷操作
    options: -v, 協議版本 -c 認證,語法如下:
    snmpget -v 2c -c public HOST OID
    snmpwalk -v 2c -c public HOST OID

(三)實驗:實現使用snmp v2協議監控

  • 實驗7:實現使用snmp v2協議監控指定網卡入棧的數據包數

    • 步驟1:啟用snmp服務,設置允許遠程讀操作的OID范圍
    yum install net-snmp net-snmp-utils
    vim /etc/snmp/snmpd.conf
    view    systemview    included   .1.3.6.1.2.1.1
    view    systemview    included   .1.3.6.1.2.1.2    // 網絡接口的相關數據
    view    systemview    included   .1.3.6.1.4.1.2021 // 系統資源負載:memory, disk io, cpu load 
    view    systemview    included   .1.3.6.1.2.1.25.1.1
      
    systemctl start snmpd.service
    
    • 步驟2:在zabbix-server上增加host的snmp監控接口
    • 步驟3:增加items,使用snmp v2協議監控,key值可以任意指定,監控信息由OID指定,按照 /etc/snmp/snmpd.conf中的信息設置認證community
    • 步驟4:稍候片刻,可以看到監控信息圖

六、基于JMX監控

  • 基本概念:
    JMX:查詢JVM信息的專用接口
    Java-gateway:用于監控JMX應用的程序

  • JMX檢測自帶key:
    jmx[object_name,attribute_name]
    object name - 它代表MBean的對象名稱
    attribute name - 一個MBean屬性名稱,可選的復合數據字段名稱以點分隔

  • 實驗8:實現通過JMX監控Tomcat程序的堆內存使用情況

    • 步驟1:tomcat主機設置:開啟JMX監控tomcat
    vim /etc/sysconfig/tomcat                
    CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.136.230 -Djavax.management.builder.initial= -Dcom.sun.management.jmx remote=true   -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false"
    
    systemctl start tomcat.service
    
    • 步驟2:zabbix-java-gateway主機設置
      zabbix-java-gateway可以搭建在zabbix-server上,也可以單獨搭建
      本實驗將其搭建在zabbix-server上
    yum install zabbix-java-gateway
    vim /etc/zabbix/zabbix_java_gateway.conf   // 默認設置即可,不需修改
    LISTEN_IP="0.0.0.0"
    LISTEN_PORT=10052
    
    systemctl start zabbix-java-gateway.service
    
    • 步驟3:zabbix-server主機設置,開啟java gateway功能
    vim /etc/zabbix/zabbix_server.conf       
    JavaGateway=192.168.136.131
    JavaGatewayPort=10052
    StartJavaPollers=5
    
    systemctl restart zabbix-server.service
    
    • 步驟4:在zabbix-server上增加host的jmx監控接口
    • 步驟5:增加items,使用JMX agent監控
    • 步驟6:稍候片刻,可以看到監控信息圖

七、Zabbix Proxy

  • 降低zabbix server的network I/O的方法:
    采用主動檢測
    通過proxy代理

  • zabbix proxy的原理:
    由proxy收集本網段被監控主機的信息,以一定間隔時間向zabbix server同步信息

  • zabbix proxy的作用:
    降低zabbix server的network I/O
    實現分布式監控
    解決跨網監控很難穿越防火墻的問題

  • 實驗9:實現zabbix proxy監控

    • 實驗環境:
      node1.hellopeiyang.com: 192.168.136.130, zabbix agent
      node2.hellopeiyang.com: 192.168.136.131, zabbix server
      node3.hellopeiyang.com: 192.168.136.132, zabbix proxy

    • 步驟1:安裝zabbix-proxy,并配置數據庫

    // 安裝程序包
    yum install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender              
    yum install mariadb-server
    // 數據庫服務器配置
    vim /etc/my.cnf.d/server.cnf
    [server]
    innodb_file_per_table = ON
    skip_name_resolve = ON
    max_connections = 2000
    innodb_buffer_pool_size = 256M
    systemctl start mariadb
    mysql_secure_installation
    // 建立zabbix proxy數據庫
    mysql -uroot -pmagedu
    MariaDB [(none)]> create database zbxproxydb;
    MariaDB [(none)]> grant all on zbxproxydb.* to zbxproxyuser@'192.168.136.%' identified by 'centos';
    cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz /root
    gzip -d /root/schema.sql.gz
    mysql -uzbxproxyuser -pcentos -h192.168.136.132  zbxproxydb < /root/schema.sql
    
    • 步驟2:配置zabbix proxy
    vim /etc/zabbix/zabbix_proxy.conf
    Server=192.168.136.131      // zabbix server主機地址
    ServerPort=10051            // zabbix server監聽端口,默認值
    // 當前代理服務器的名稱;在server添加proxy時,必須使用此處指定的名稱
    Hostname=node4.hellopeiyang.com
    
    // 數據庫設置
    DBHost=192.168.136.132
    DBName=zbxproxydb
    DBUser=zbxproxyuser
    DBPassword=centos
                  
    ConfigFrequency=10          // proxy向server同步配置數據的時間間隔(s)
    DataSenderFrequency=1       // proxy向server發送監控數據的時間間隔(s)
    systemctl start zabbix-proxy.service
    
    • 步驟3:配置zabbix agent
    yum install zabbix-agent zabbix-sender
    vim /etc/zabbix/zabbix_agentd.conf
    Server=192.168.136.132     // zabbix proxy的ip地址
    ListenPort=10050
    ListenIP=0.0.0.0
    ServerActive=192.168.136.132
    Hostname=node1.hellopeiyang.com
    
    systemctl start zabbix-agent.service
    
    • 步驟4:在server端添加此porxy
    • 步驟5:在server端配置通過此proxy監控的主機
    • 步驟6:添加items
      建議使用主動檢測"Zabbix agent (active)"
    • 步驟7: 稍候片刻,可以看到監控信息圖

八、Zabbix調優

  • zabbix調優的目的:
    降低nvps(new values per second)值
    降低zabbix server的磁盤I/O與網絡I/O
    降低mysql數據庫的讀寫壓力

  • zabbix調優方向:
    數據的調整
    server的調整
    數據庫的調整

  • 數據調優要點:

    • 歷史數據不要保存太長時長
    • 盡量讓數據緩存在數據庫服務器的內存中
    • 觸發器表達式:
      減少使用min(), max(), avg()
      盡量使用last(),nodata()
    • 數據收集:
      polling較慢,減少使用SNMP/agentless/agent
      盡量使用trapping, agent(active)
    • 數據類型:
      文本型數據處理速度較慢,盡量少收集類型為text或string類型的數據
      多使用類型為numeric的
  • zabbix服務器的進程:

    • 服務器組件的數量,在/etc/zabbix/zabbix_server.conf
      alerter, discoverer, escalator, http poller, housekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...

    • 設定合理的緩存大小
      CacheSize=8M
      HistoryCacheSize=16M
      HistoryIndexCacheSize=4M
      TrendCacheSize=4M
      ValueCacheSize=4M

  • 數據庫優化:分表
    主要分為以下三個方面的表:
    history_*
    trends*
    events*

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容

  • Zabbix簡介 Zabbix官方網站Zabbix中文文檔 本文系統環境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,046評論 0 37
  • Zabbix簡要介紹Zabbix的監控配置Zabbix的展示接口templates,模板macros,宏 一、Za...
    哈嘍別樣閱讀 615評論 0 3
  • zabbix是什么在此就不多作介紹了,可以參考之前的文章零代碼如何打造自己的實時監控預警系統,這篇主要介紹安裝及注...
    歡醉閱讀 1,457評論 0 2
  • 很多的文字,當你只是看到它,可能不會有什么感觸!當你切身感受到的時候,才會深有體會!不記得在哪里看到過“不要看一個...
    才恩吉雅閱讀 338評論 0 2
  • 每一次教研像喝咖啡,前期的準備的工作是繁瑣的,沖好后的咖啡卻是香味四溢,喝起來卻是有點苦,回味卻是甘甜的。 一說到...
    海深處閱讀 509評論 0 4