20171128 Zabbix(二)

  • 自定義key
  • 網(wǎng)絡(luò)發(fā)現(xiàn)
  • Web監(jiān)控
  • 主動檢測
  • 基于SNMP監(jiān)控
  • 基于JMX監(jiān)控
  • Zabbix Proxy
  • Zabbix調(diào)優(yōu)

一、自定義key

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

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

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

  • 實(shí)驗(yàn)1:實(shí)現(xiàn)查看被監(jiān)控主機(jī)已使用內(nèi)存情況

    • 本文中所有實(shí)驗(yàn)主機(jī)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:在被監(jiān)控主機(jī)編輯配置文件

    // 定義無參數(shù)的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
  • 實(shí)驗(yàn)2:通過一個帶參數(shù)的key實(shí)現(xiàn)查看被監(jiān)控主機(jī)多個內(nèi)存使用指標(biāo)

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

二、網(wǎng)絡(luò)發(fā)現(xiàn):

  • 網(wǎng)絡(luò)發(fā)現(xiàn):zabbix server掃描指定網(wǎng)絡(luò)范圍內(nèi)的主機(jī),并作出響應(yīng)

  • 發(fā)現(xiàn)方式:在ip地址范圍內(nèi)定期掃描

  • 發(fā)現(xiàn)可用服務(wù)
    ftp, ssh, http等協(xié)議
    zabbix_agent的響應(yīng)
    snmp_agent的響應(yīng)

  • 網(wǎng)絡(luò)發(fā)現(xiàn)分兩個階段:

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

    • 步驟1:配置發(fā)現(xiàn)規(guī)則,指定IP范圍、掃描間隔時間、檢測所用的key
      實(shí)際生產(chǎn)環(huán)境的間隔時間1h,本實(shí)驗(yàn)為加快實(shí)驗(yàn)速度調(diào)至1min


    • 步驟2:配置執(zhí)行動作,設(shè)置執(zhí)行本動作的條件為步驟1設(shè)置的發(fā)現(xiàn)規(guī)則值為Up

    • 步驟3:設(shè)置具體的執(zhí)行動作:添加主機(jī),鏈接至模板

三、Web監(jiān)控:

  • 功能:監(jiān)控指定的站點(diǎn)的資源下載速度,及頁面響應(yīng)時間,還有響應(yīng)代碼

  • 基本概念:
    web scenario:web場景,監(jiān)控站點(diǎn)
    web step:web步驟,監(jiān)控頁面,每個頁面都自動配置3個內(nèi)建key,用于監(jiān)控

  • 內(nèi)建key:
    web.test.in[Scenario,Step,bps]:傳輸速率
    web.test.time[Scenario,Step]:響應(yīng)時長
    web.test.rspcode[Scenario,Step]:響應(yīng)碼

  • 實(shí)驗(yàn)4:實(shí)現(xiàn)監(jiān)控站點(diǎn)

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

四、主動檢測:

(一)主動檢測:

  • 主動檢測:agent向server請求與自己相關(guān)監(jiān)控項(xiàng)配置,主動地將server配置的監(jiān)控項(xiàng)相關(guān)的數(shù)據(jù)發(fā)送給server

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

  • 實(shí)驗(yàn)5:實(shí)現(xiàn)主動檢測

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

(二)zabbix_sender發(fā)送數(shù)據(jù):

  • 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

  • 實(shí)驗(yàn)6:使用zabbix_sender主動向zabbix server發(fā)送數(shù)據(jù)

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

    • 步驟3:server端成功接收數(shù)據(jù)

五、基于SNMP監(jiān)控:

(一)SNMP:簡單網(wǎng)絡(luò)管理協(xié)議

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

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

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

  • 關(guān)鍵概念:

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

(二)Linux啟用snmp

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

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

  • 啟動服務(wù):
    systemctl start snmpd.service

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

(三)實(shí)驗(yàn):實(shí)現(xiàn)使用snmp v2協(xié)議監(jiān)控

  • 實(shí)驗(yàn)7:實(shí)現(xiàn)使用snmp v2協(xié)議監(jiān)控指定網(wǎng)卡入棧的數(shù)據(jù)包數(shù)

    • 步驟1:啟用snmp服務(wù),設(shè)置允許遠(yuǎn)程讀操作的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    // 網(wǎng)絡(luò)接口的相關(guān)數(shù)據(jù)
    view    systemview    included   .1.3.6.1.4.1.2021 // 系統(tǒng)資源負(fù)載: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監(jiān)控接口
    • 步驟3:增加items,使用snmp v2協(xié)議監(jiān)控,key值可以任意指定,監(jiān)控信息由OID指定,按照 /etc/snmp/snmpd.conf中的信息設(shè)置認(rèn)證community
    • 步驟4:稍候片刻,可以看到監(jiān)控信息圖

六、基于JMX監(jiān)控

  • 基本概念:
    JMX:查詢JVM信息的專用接口
    Java-gateway:用于監(jiān)控JMX應(yīng)用的程序

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

  • 實(shí)驗(yàn)8:實(shí)現(xiàn)通過JMX監(jiān)控Tomcat程序的堆內(nèi)存使用情況

    • 步驟1:tomcat主機(jī)設(shè)置:開啟JMX監(jiān)控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主機(jī)設(shè)置
      zabbix-java-gateway可以搭建在zabbix-server上,也可以單獨(dú)搭建
      本實(shí)驗(yàn)將其搭建在zabbix-server上
    yum install zabbix-java-gateway
    vim /etc/zabbix/zabbix_java_gateway.conf   // 默認(rèn)設(shè)置即可,不需修改
    LISTEN_IP="0.0.0.0"
    LISTEN_PORT=10052
    
    systemctl start zabbix-java-gateway.service
    
    • 步驟3:zabbix-server主機(jī)設(shè)置,開啟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監(jiān)控接口
    • 步驟5:增加items,使用JMX agent監(jiān)控
    • 步驟6:稍候片刻,可以看到監(jiān)控信息圖

七、Zabbix Proxy

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

  • zabbix proxy的原理:
    由proxy收集本網(wǎng)段被監(jiān)控主機(jī)的信息,以一定間隔時間向zabbix server同步信息

  • zabbix proxy的作用:
    降低zabbix server的network I/O
    實(shí)現(xiàn)分布式監(jiān)控
    解決跨網(wǎng)監(jiān)控很難穿越防火墻的問題

  • 實(shí)驗(yàn)9:實(shí)現(xiàn)zabbix proxy監(jiān)控

    • 實(shí)驗(yàn)環(huán)境:
      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,并配置數(shù)據(jù)庫

    // 安裝程序包
    yum install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender              
    yum install mariadb-server
    // 數(shù)據(jù)庫服務(wù)器配置
    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數(shù)據(jù)庫
    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主機(jī)地址
    ServerPort=10051            // zabbix server監(jiān)聽端口,默認(rèn)值
    // 當(dāng)前代理服務(wù)器的名稱;在server添加proxy時,必須使用此處指定的名稱
    Hostname=node4.hellopeiyang.com
    
    // 數(shù)據(jù)庫設(shè)置
    DBHost=192.168.136.132
    DBName=zbxproxydb
    DBUser=zbxproxyuser
    DBPassword=centos
                  
    ConfigFrequency=10          // proxy向server同步配置數(shù)據(jù)的時間間隔(s)
    DataSenderFrequency=1       // proxy向server發(fā)送監(jiān)控?cái)?shù)據(jù)的時間間隔(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監(jiān)控的主機(jī)
    • 步驟6:添加items
      建議使用主動檢測"Zabbix agent (active)"
    • 步驟7: 稍候片刻,可以看到監(jiān)控信息圖

八、Zabbix調(diào)優(yōu)

  • zabbix調(diào)優(yōu)的目的:
    降低nvps(new values per second)值
    降低zabbix server的磁盤I/O與網(wǎng)絡(luò)I/O
    降低mysql數(shù)據(jù)庫的讀寫壓力

  • zabbix調(diào)優(yōu)方向:
    數(shù)據(jù)的調(diào)整
    server的調(diào)整
    數(shù)據(jù)庫的調(diào)整

  • 數(shù)據(jù)調(diào)優(yōu)要點(diǎn):

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

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

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

  • 數(shù)據(jù)庫優(yōu)化:分表
    主要分為以下三個方面的表:
    history_*
    trends*
    events*

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容