操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    一、User parameters 用戶參數

    1、介紹和用法

    ① 介紹

    自定義用戶參數,也就是自定義key

    有時,你可能想要運行一個代理檢查,而不是Zabbix的預定義

    你可以編寫一個命令檢索需要的數據,并將其包含在代理配置文件("UserParameter"配置參數)的用戶參數

    ② 用法格式 syntax

    UserParameter=<key>,<command>
      A user parameter also contains a key  一個用戶參數也包含一個鍵
      The key will be necessary when configuring an item   在配置監控項時,key是必需的
      Note: Need to restart the agent   注意:需要重新啟動agent 服務

    2、用法展示

    (1)修改agent 端的配置,設置用戶參數

    ① free | awk '/^Mem/{print }' 自己需要查找的參數的命令

    ② 修改配置文件,把查找參數的命令設為用戶參數

    cd /etc/zabbix/zabbix_agentd.d/
    vim memory_usage.conf
    UserParameter=memory.used,free | awk '/^Mem/{print $3}'

    ③ systemctl restart zabbix-agent.service 重啟agent 服務

    (2)在zabbix-server 端,查詢

    zabbix_get -s 192.168.30.7 -p 10050 -k "memory.used"

    (3)在監控上,設置一個item監控項,使用這個用戶參數

    (4)查詢graph 圖形

    3、用法升級

    (1)修改agent 端的配置,設置用戶參數

    ① 命令行查詢參數的命令

    ② 修改配置文件,把查找參數的命令設為用戶參數

    UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^1/{print }'

    分析:$:表示不是前邊調位置參數的2 ,而是awk 的參數2,而是awk的參數2

    注意:是調用前邊的[*],位置參數,第一個參數

    (2)在zabbix-server 端,查詢使用這個用戶參數的key

    (3)在監控上,設置一個item監控項,使用這個用戶參數

    ① 添加Memory Total 的item監控項,使用memory.stats[MemTotal] 的用戶參數

    在進程中定義倍數,規定單位

    ② clone 克隆Memory Total 創建Memory Free 的監控項

    memory.stats[MemFree] 用戶參數

    ③ 創建Memory Buffers 的item 監控項,使用 memory.stats[Buffers] 的key

    (4)上面3個監控項的graph 圖形

    ① memory total

    ② memory free

    ③ buffers

    4、使用用戶參數監控php-fpm 服務的狀態

    在agent 端:

    (1)下載,設置php-fpm

    ① yum -y install php-fpm

    ② vim /etc/php-fpm.d/www.conf 打開php-fpm的狀態頁面

    user = nginx 
    group = nginx 
    pm.status_path = /php-fpm-status   
    #php-fpm 的狀態監測頁面 
    ping.path = /ping     
    #ping 接口,存活狀態是否ok 
    ping.response = pong   
    #響應內容pong

    ③ systemctl start php-fpm 開啟服務

    (2)設置nginx ,設置代理php,和php-fpm的狀態頁面匹配

     vim /etc/nginx/nginx.conf
    location ~ .php$ {    
             fastcgi_pass   127.0.0.1:9000;             
    fastcgi_index  index.php;             
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            
     include        fastcgi_params; 
    } 
    location ~* /(php-fpm-status|ping) {   
              fastcgi_pass   127.0.0.1:9000;            
     fastcgi_index  index.php;             
    fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;             
    include        fastcgi_params;            
      allow 127.0.0.1;   #因為這個頁面很重要,所有需加訪問控制        
         deny all;           
       access_log off;   #訪問這個頁面就不用記錄日志了
     }

    ② systemctl start nginx 開啟nginx服務

    (3)在agent 端,設置用戶參數

    ① 查詢 curl 192.168.30.7/php-fpm-status

    ② 設置

    cd /etc/zabbix/zabbix_agentd.d/
    vim php_status.conf
    UserParameter=php-fpm.stats[*],curl -s http://127.0.0.1/php-fpm-status | awk '/^$1/{print $$NF}'

    分析:設置用戶參數為php-fpm.stats[*],1為第一個參數;1為第一個參數;$NF為awk中的參數,倒數第一列

    ③ 重啟服務

    systemctl restart zabbix-agent

    (4)在zabbix-server 端,查詢使用這個用戶參數的key

    zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[idle]"
    zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[active]"
    zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[max active]"

    (5)創建一個模板,在模板上創建4個item監控項,使用定義的用戶參數

    ① 創建一個模板

    ② 在模板上配置items 監控項,使用剛定義的用戶參數

    fpm.stats[total processes]

    ③ 再clone克隆幾個items監控項

    fpm.stats[active processes]

    fpm.stats[max active processes]

    fpm.stats[idle processes]

    (6)host主機鏈接模板

    (7)查看graph 圖形

    ① php-fpm total processes

    ② php-fpm active processes

    ③ php-fpm max active processes

    ④ php-fpm idle processes

    (8)把模板導出,可以給別人使用

    ① 導出模板

    最下面有導出

    ② 自己定義用戶參數的文件,也不要忘記導出

    /etc/zabbix/zabbix_agentd.d/php_status.conf

    二、Network discovery 網絡發現

    1、介紹

    (1)介紹

    網絡發現:zabbix server掃描指定網絡范圍內的主機

    網絡發現是zabbix 最具特色的功能之一,它能夠根據用戶事先定義的規則自動添加監控的主機或服務

    優點:

      加快Zabbix部署

      簡化管理

    在快速變化的環境中使用Zabbix,而不需要過度管理

    (2)發現方式:

    ip地址范圍;

      可用服務(ftp, ssh, http, ...)

      zabbix_agent的響應;

    snmp_agent的響應;

    (3)網絡發現通常包含兩個階段:discovery發現 和actions動作

    ① discovery:

    Zabbix定期掃描網絡發現規則中定義的IP范圍;檢查的頻率對于每個規則都是可配置的

    每個規則都有一組用于為IP范圍執行的服務檢查

    由網絡發現模塊執行的服務和主機(IP)的每個檢查都會生成一個發現事件

    8種響應事件

    ② actions:網絡發現中的事件可以觸發action,從而自動執行指定的操作,把discvery events當作前提條件;

      Sending notifications 發送通知

      Adding/removing hosts 添加/刪除主機

      Enabling/disabling hosts 啟用/禁用host

      Adding hosts to a group 向組中添加主機

      Removing hosts from a group 移除組中的主機

      Linking hosts to/unlinking from a template 從模板鏈接主機或取消鏈接

      Executing remote scripts 執行遠程腳本

    這些事件的配置還可以基于設備的類型、IP 、狀態、上線/ 離線等進行配置

    (4)網絡發現:接口添加

    網絡發現中添加主機時會自動創建interface 接口

    例如:

      如果基于SNMP 檢測成功,則會創建SNMP 接口

      如果某服務同時響應給了agent 和SNMP ,則兩種接口都會創建

      如果同一種發現機制( 如agent) 返回了非惟一數據,則第一個接口被識別為默認,其它的為額外接口

      即便是某主機開始時只有agent 接口,后來又通過snmp 發現了它,同樣會為其添加額外的snmp 接口

      不同的主機如果返回了相同的數據,則第一個主機將被添加,余下的主機會被當作第一個主機的額外接口

    2、配置網絡發現Network discovery

    (1)準備一臺可被掃描發現的主機

    ① 安裝agent 段的包

    yum -y install zabbix-agent zabbix-sender

    ② 設置agent 配置,可以把之前設置好的node1的配置傳過來

    vim /etc/zabbix/zabbix_agentd.conf

    Hostname=http://node2.along.com #只需修改hostname

    ③ visudo 修改sudo的配置

    Defaults !visiblepw

    zabbix ALL=(ALL) NOPASSWD: ALL

    ④ 開啟服務

    systemctl start zabbix-agent

    (2)設置自動發現規則discovery

    注釋:

    ① key:zabbix_get -s 192.168.30.2 -p 10050 -k "system.hostname"

    ② 更新間隔:1h就好,不要掃描太過頻繁,掃描整個網段,太廢資源;這里為了實驗,設為1m

    (3)自動發現成功

    (4)設置自動發現discovery 的動作action

    a) 創建

    b) 設置action動作

    ① 設置A條件,自動發現規則=http://test.net

    ② 設置B條件,自動發現狀態=up

    ③ 要做什么操作

    添加主機到監控

    自動鏈接Template OS Linux 到此host

    c) 配置action 完成,默認是disabled 停用的

    d) 啟用動作,查看效果

    確實已經生效,添加主機成功,模板鏈接成功

    (5)如果自己需要添加的主機已經掃描添加完成,就可以關閉網絡掃描了,因為太耗資源

    三、web監控

    1、介紹

    (1)介紹

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

    ② 術語:

      web Scenario: web場景(站點)

      web page :web頁面,一個場景有多個頁面

      內建key:要測一個頁面,要測三個步驟(下邊3個內建key)

    ③ 內建key:

       http://web.test.in[Scenario,Step,bps]:傳輸速率

       web.test.time[Scenario,Step]: 響應時長

       web.test.rspcode[Scenario,Step]:響應碼

    2、創建設置web場景

    (1)創建

    (2)配置web 監測

    ① 點擊步驟,設置web page web頁面

    a) 設置名為home page,URL為http://192.168.30.7/index.html 的web頁面

    b) 設置名為fpm status,URL為http://192.168.30.7/fpm-status 的web頁面

    c) 設置2個web頁面成功

    ② 如果有特殊認證,也可以添加

    3、查看測試

    四、主動/被動 監控

    1、介紹

    (1)主動/被動介紹

      被動檢測:相對于agent而言;agent, server向agent請求獲取配置的各監控項相關的數據,agent接收請求、獲取數據并響應給server;

      主動檢測:相對于agent而言;agent(active),agent向server請求與自己相關監控項配置,主動地將server配置的監控項相關的數據發送給server;

      主動監控能極大節約監控server 的資源。

    (2)zabbix_sender發送數據:實現人工生成數據,發給server端

    ① zabbix server上的某主機上,直接定義Item時隨便定義一個不與其它已有key沖突的key即可,即item type為"zabbix trapper";

    ② 用法選項:

    zabbix_sender

      -z zabbix_server_ip

      -p zabbix_server_port

      -s zabbix_agent_hostname

      -k key

      -o value 值

    2、設置一個通過內建key發送數據的主動監控

    (1)agent端所需要基本配置:

    ServerActive=192.168.30.107 給哪個監控server 發送數據 Hostname=http://node1.along.com 自己的主機名,假設主機定死了,不設置下一項 #HostnameItem= 如果自己的主機名易變動,這一項相當于key一樣去匹配

    注意:若后兩項同時啟用,下邊一個選擇生效

    (2)設置一個主動監測

    ① 選擇進程,每秒更改,

    因為key:system.cpu.switches :上下文的數量進行切換,它返回一個整數值。為了監控效果,選擇下一秒減上一秒的值作為監控

    (3)已經有啦graph圖形

    3、設置一個通過命令zabbix_sender發送數據的主動監控

    (1)配置一個zabbix traper(采集器) 的item 監控項

    (2)agent 端手動發送數據

    (3)監控到數據的變化

    五、基于SNMP監控(了解)

    1、介紹

    (1)介紹

    SNMP:簡單網絡管理協議;(非常古老的協議)

    三種通信方式:讀(get, getnext)、寫(set)、trap(陷阱);

    端口:

      161/udp

      162/udp

    SNMP協議:年代久遠

      v1: 1989

    v2c: 1993

      v3: 1998

    監控網絡設備:交換機、路由器

    MIB:Management Information Base 信息管理基礎

    OID:Object ID 對象ID

    (2)Linux啟用snmp的方法:

    yum install net-snmp net-snmp-utils

    配置文件:定義ACL

      /etc/snmp/snmpd.conf

    啟動服務:

      systemctl start snmpd 被監控端開啟的服務

       systemctl start snmptrapd 監控端開啟的服務(如果允許被監控端啟動主動監控時啟用)

    (3)配置文件的介紹

    開放數據:4步

    ① 定義認證符,將社區名稱"public"映射為"安全名稱"

    ② 將安全名稱映射到一個組名

    ③ 為我們創建一個視圖,讓我們的團隊有權利

    掩碼:我列出一些注釋,有很多,可以再網上查詢

    .1.3.6.1.2.1.

       1.1.0:系統描述信息,SysDesc

       1.3.0:監控時間, SysUptime

       1.5.0:主機名,SysName

       1.7.0:主機提供的服務,SysService

    .1.3.6.1.2.2.

       2.1.0:網絡接口數目

       2.2.1.2:網絡接口的描述信息

       2.2.1.3:網絡接口類型

       ……

    ④ 授予對systemview視圖的只讀訪問權

    (4)測試工具:

    snmpget -v 2c -c public HOST OID

    snmpwalk -v 2c -c public HOST OID 通過這個端口查詢到的數據,全列出了

    2、配置SNMP監控

    (1)下載,修改配置文件

    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

    (2)在agent 上測試

    snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.3.0

    snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.5.0

    (3)在監控頁面,給node2加一個snmp的接口

    (4)在node2上加一個 Template OS Linux SNMPv2 模板

    模板添加成功,生成一系列東西

    點開一個item 看一下

    (5)生成一些最新數據的圖形graph了

    3、設置入站出站packets 的SNMP監控

    (1)監控網絡設備:交換機、路由器的步驟:

    ① 把交換機、路由器的SNMP 把對應的OID的分支啟用起來

    ② 了解這些分支下有哪些OID,他們分別表示什么意義

    ③ 我們要監控的某一數據:如交換機的某一個接口流量、報文,發送、傳入傳出的報文數有多少個;傳入傳出的字節數有多少個,把OID取出來,保存

    (2)定義入站出站的item監控項

    interface traffic packets(in)

    interface traffic packets(out)

    六、JMX接口

    1、介紹

    (1)介紹

    Java虛擬機(JVM)具有內置的插裝,使您能夠使用JMX監視和管理它。您還可以使用JMX監視工具化的應用程序。

    (2)配置設置介紹

    ① zabbix-java-gateway主機設置:

      安裝 zabbix-java-gateway程序包,啟動服務;

    yum -y install zabbix-java-gateway

    ② zabbix-server端設置(需要重啟服務):

    JavaGateway=172.16.0.70

    JavaGatewayPort=10052

    StartJavaPollers=5 #監控項

    ③ tomcat主機設置:

       監控tomcat:

         /etc/sysconfig/tomcat,添加

    CATALINA_OPTS="-Djava.rmi.server.hostname=TOMCAT_SERVER_IP -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" #啟用JVM接口,默認沒有啟用

      添加監控項:

        jmx[object_name,attribute_name]

          object name - 它代表MBean的對象名稱

          attribute name - 一個MBean屬性名稱,可選的復合數據字段名稱以點分隔

        示例:

           jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

    ④ jmx的詳細文檔:https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

    2、配置JVM接口監控

    (1)安裝配置tomcat

    ① 下載安裝tomcat,主要是用JVM

    yum -y install java-1.8.0-openjdk-devel tomcat-admin-webapps tomcat-docs-webapp

    ② 加CATALINA_OPTS= #啟用JVM接口,默認沒有啟用

    vim /etc/sysconfig/tomcat
    CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.30.2 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true   -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false"

    ③ 開啟服務

    systemctl start tomcat

    (2)在zabbix-server 端,安裝配置java-gateway

    ① 安裝配置java-gateway

    yum -y install zabbix-java-gateway

    /etc/zabbix/zabbix_java_gateway.conf 安裝完后,會生成一個java_gateway 的配置文件

    systemctl start zabbix-java-gateway.service 不用修改,直接開啟服務

    ② 修改server 配置,開啟java-gateway的配置

    vim /etc/zabbix/zabbix_server.conf

    JavaGateway=192.168.30.107 JavaGatewayPort=10052 StartJavaPollers=5 #打開5個監控項

    ③ systemctl restart zabbix-server 重啟zabbix-server 服務

    (3)在node2 主機上添加JMX接口,實驗模板

    ① 添加JMX接口

    ② 在node2 上連接tomcat JMX 模板

    ③ 隨便查看一個監控項item

    (4)自己定義一個堆內存使用的監控項,基于JVM接口(沒必要,使用模板就好)

    七、分布式監控

    1、介紹

    (1)介紹

    分布式監控概述

      proxy and node

    Zabbix 的三種架構

      Server-agent

      Server-Node-agent

      Server-Proxy-agent

    監控Zabbix

    (2)配置介紹

    Zabbix Proxy的配置:

      server-node-agent

      server-proxy-agent

    a) 配置proxy主機:

    (1) 安裝程序包

    zabbix-proxy-mysql zabbix-get

    zabbix-agent zabbix-sender

    (2) 準備數據庫

      創建、授權用戶、導入schema.sql;

    (3) 修改配置文件

      Server=

        zabbix server主機地址;

      Hostname=

        當前代理服務器的名稱;在server添加proxy時,必須使用此處指定的名稱;

        =需要事先確保server能解析此名稱;

      DBHost=

      DBName=

      DBUser=

      DBPassword=

      ConfigFrequency=10

      DataSenderFrequency=1

    b) 在server端添加此Porxy

    Administration --> Proxies

    c) 在Server端配置通過此Proxy監控的主機;

    注意:zabbix agent端要允許zabbix proxy主機執行數據采集操作:

    2、實現分布式zabbix proxy監控

    實驗前準備:

    ① ntpdate 172.168.30.1 同步時間

    ② 關閉防火墻,selinux

    ③ 設置主機名 hostnamectl set-hostname http://zbproxy.along.com

    ④ vim /etc/hosts 每個機器都設置hosts,以解析主機名;DNS也行

    192.168.30.107 http://server.along.com

    192.168.30.7 http://node1.along.com

    192.168.30.2 http://node2.along.com

    192.168.30.3 http://node3.along.com http://zbproxy.along.com

    (1)環境配置(4臺主機)

    機器名稱

    IP配置

    服務角色

    zabbix-server

    192.168.30.107

    監控

    agent-node1

    192.168.30.7

    被監控端

    agent-node2

    192.168.30.2

    被監控端

    node3

    192.168.30.3

    代理proxy

    zabbix-server 直接監控一臺主機node1

    zabbix-server 通過代理node3 監控node2

    (2)在node3 上配置mysql

    ① 創建配置mysql

    vim /etc/my.cnf.d/server.cnf

    [server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M max_connections = 2000 log-bin = master-log

    ② systemctl start mariadb 開啟服務

    ③ 創建數據庫 和 授權用戶

    MariaDB [(none)]> create database zbxproxydb character set 'utf8'; MariaDB [(none)]> grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.30.%' identified by 'zbxproxypass'; MariaDB [(none)]> flush privileges;

    (3)在node3 上下載zabbix 相關的包,主要是代理proxy的包

    yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

    a) 初始化數據庫

    zabbix-proxy-mysql 包里帶有,導入數據的文件

    cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz ./ 復制

    gzip -d schema.sql.gz 解包

    mysql -root -p zbxproxydb < schema.sql 導入數據

    b) 查看數據已經生成

    (4)配置proxy端

    ① vim /etc/zabbix/zabbix_proxy.conf

    Server=192.168.30.107 #server 的IP ServerPort=10051 #server 的端口 Hostname=http://zbxproxy.along.com #主機名 ListenPort=10051 #proxy自己的監聽端口 EnableRemoteCommands=1 #允許遠程命令 LogRemoteCommands=1 #記錄遠程命令的日志 數據的配置 DBHost=192.168.30.3 DBName=zbxproxydb DBUser=zbxproxyuser DBPassword=zbxproxypass ConfigFrequency=30 #多長時間,去服務端拖一次有自己監控的操作配置;為了實驗更快的生效,這里設置30秒,默認3600s DataSenderFrequency=1 #每一秒向server 端發一次數據,發送頻度

    ② systemctl start zabbix-proxy 開啟服務

    (5)配置node2端,允許proxy代理監控

    vim /etc/zabbix/zabbix_agentd.conf

    Server=192.168.30.107,192.168.30.3 ServerActive=192.168.30.107,192.168.30.3

    systemctl restart zabbix-agent 啟動服務

    (6)把代理加入監控server,創建配置agent 代理

    ① 創建agent 代理

    ② 配置

    (7)創建node2 主機,并采用代理監控

    設置代理成功

    (8)創建item監控項

    ① 為了實驗,隨便創一個監控項 CPU Switches

    ② 進程里設置每秒更改

    ③ 成功,graph 圖形生成

    八、查詢使用網上模板監控

    1、找官方的share 分享網站

    https://cn.bing.com/ 搜索 zabbix share

    例如:我們要實現監控Nginx ,我們查找一個模板

    就以這個模板為例

    2、在node1 上使用此模板

    (1)安裝配置 nginx

    ① yum -y install nginx

    vim /etc/nginx/nginx.conf 按照網頁的操作指示

    location /stub_status { stub_status on; access_log off; # allow 127.0.0.1; #為了操作方便,我取消的訪問控制 # deny all; }

    ② 啟動服務

    systemctl restart nginx

    (2)下載模板所依賴的腳本

    mkdir -p /srv/zabbix/libexec/

    cd /srv/zabbix/libexec/

    wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/nginx.sh 從網頁上獲取腳本

    chmod +x nginx.sh 加執行權限

    (3)配置agent 的用戶參數UserParameter

    cd /etc/zabbix/zabbix_agentd.d/

    wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/userparameter_nginx.conf 很短,自己寫也行

    (4)在windows 上下載模板,并導入這server 的模板中

    wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/zbx_export_templates.xml 可以現在linux上下載,再sz 導出到windows上

    ① 導入下載的模板

    ② 主機node1 鏈接這個模板

    ③ 模板生效

    九、zabbix-server 監控自己,數據庫,nginx

    1、下載安裝,配置agent

    vim /etc/zabbix/zabbix_agentd.conf 配置agent

    EnableRemoteCommands=1 允許遠程命令 LogRemoteCommands=1 記錄遠程命令 Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=http://server.along.com

    2、自動生成Zabbix server 的主機

    3、在主機中添加模板

    4、啟用Zabbix server

    5、監控到數據

    十、調優

    1、調優

    ① Database:

      歷史數據不要保存太長時長;

      盡量讓數據緩存在數據庫服務器的內存中;

    ② 觸發器表達式:減少使用聚合函數 min(), max(), avg();盡量使用last(),nodata();

      因為聚合函數,要運算

    ③ 數據收集:polling較慢(減少使用SNMP/agentless/agent);盡量使用trapping(agent(active)主動監控);

    ④ 數據類型:文本型數據處理速度較慢;盡量少收集類型為文本 text或string類型的數據;多使用類型為numeric 數值型數據 的;

    2、zabbix服務器的進程

    (1) 服務器組件的數量;

      alerter, discoverer, escalator, http poller, hourekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...

      StartPollers=60

      StartPingers=10

      ...

      StartDBSyncer=5

      ...

    (2) 設定合理的緩存大小

       CacheSize=8M

       HistoryCacheSize=16M

       HistoryIndexCacheSize=4M

       TrendCacheSize=4M

       ValueCacheSize=4M

    (3) 數據庫優化

      分表:

        history_*

        trends*

        events*

    文章來源:https://www.cnblogs.com/along21/p/8119088.html

    號主:老楊丨11年資深網絡工程師,更多網工提升干貨,請關注公眾號:網絡工程師俱樂部


    下午好,我的網工朋友。

    最近有朋友在后臺私聊我們,SNMP故障咋整?發愁!來來來,今天就來聊聊這個。

    沒錯,就是那個簡單網絡管理協議,它在我們的網絡監控和管理中扮演著至關重要的角色。

    但是,你是否遇到過因為SNMP配置不當而導致的網絡故障?或者,你是否曾經因為交換機的告警信息無法及時送達而感到焦慮?

    常見的SNMP故障包括網絡連接故障、配置錯誤、資源限制、安全設置問題等。

    今天就來分析一波,如何高效地處理這些棘手問題的實用技巧。防患于未然,記得一鍵三連!


    今日文章閱讀福利:《 62頁-華為SNMP配置學習指南 》


    更多SNMP配置學習,可以查看這份文檔啊。掃碼發送暗號“snmp”,即可獲取此份完整的配置手冊。


    01 SNMP是啥?


    SNMP是廣泛應用于TCP/IP網絡的網絡管理標準協議。網管系統可以通過SNMP協議對網絡設備(包括交換機、路由器、防火墻等)進行監測和管理。

    如上圖所示,SNMP網絡的組成包括網管、被納管設備、中間網絡,這幾部分都有可能導致網管與被納管設備之間的SNMP交互異常。

    本文檔主要介紹網管通過SNMP協議對交換機進行監測、管理中的常見故障處理方法,主要包括以下幾方面:

    • 網管無法通過SNMP納管交換機
    • 網管接收不到交換機上的告警


    02 網管無法通過SNMP納管交換機


    網管無法通過SNMP納管交換機,或者說網管無法與交換機進行SNMP對接,通常是因為網絡或者SNMP配置原因導致。可以從以下幾方面進行排查和處理:

    • 檢查網絡是否可以ping通
    • 檢查SNMP是否有應用ACL
    • 檢查交換機上是否有undo snmp-agent protocol source-status all-interface配置
    • 檢查交換機上是否有SNMP認證失敗等日志
    • 檢查交換機和網管的SNMP版本是否一致
    • 針對SNMPv2c版本,檢查交換機和網管的團體名是否一致
    • 針對SNMPv3版本,檢查用戶的安全級別是否正確
    • 針對SNMPv3版本,檢查用戶的認證+加密的模式及密碼是否和網管側一致
    • 檢查防火墻是否允許SNMP報文通過
    • 檢查網絡中是否有重復的SNMP引擎ID


    01 檢查網絡是否可以ping通

    網絡可以互通是SNMP對接的前提,您可以通過ping命令檢查交換機和網管能否互通。如果不能互通,請檢查交換機、中間網絡或網管上的路由配置是否正確,確保交換機和網管能夠ping通。

    需要注意的是,即使交換機和網管之間能夠ping通,也并不意味著交換機和網管一定能夠正常接收到對端發送的SNMP報文。因為ping是ICMP報文,而SNMP是UDP報文,可能會因為ACL的應用,或者網絡中有防火墻等原因,導致SNMP報文被過濾,無法通過網絡正常轉發。

    您可以在網絡設備上進行流量統計或者鏡像抓包等方法確認SNMP報文是否被正常發送、接收。因為不同網絡設備的流量統計或鏡像抓包方法不盡相同,本文不再贅述。


    02 檢查SNMP是否有應用ACL

    如果交換機上的SNMP配置里有應用ACL,那么網管的IP地址必須在ACL規則允許通過的列表中。如果檢查網管IP地址沒有被放通,需要修改ACL規則,放通網管IP地址。

    #
    acl number 2001
    rule 5 permit source 192.168.1.0 0.0.0.255   //網管IP地址必須在允許通過的列表中
    #
    
    
    snmp-agent community write cipher xxx acl 2001   //SNMPv2c版本應用ACL的配置示例
    #
    snmp-agent group v3 huawei_group privacy write-view alliso acl 2001    //SNMPv3版本應用ACL的配置示例
    #


    03 檢查交換機上是否有undo snmp-agent protocol source-status all-interface配置

    #
    undo snmp-agent protocol source-status all-interface
    undo snmp-agent protocol source-status ipv6 all-interface
    #

    如果交換機上有上述配置,需要打開SNMP協議使用所有或者部分接口響應網管請求的功能。

    • 打開SNMP協議使用所有接口響應網管請求的功能。
    [~HUAWEI] snmp-agent protocol source-status all-interface
    [~HUAWEI] snmp-agent protocol source-status ipv6 all-interface
    • 打開指定的接口響應網管請求的功能。
    [~HUAWEI] snmp-agent protocol source-interface meth 0/0/0


    04 檢查交換機上是否有SNMP認證失敗等日志

    在網管與交換機進行SNMP對接失敗時,交換機上可能會記錄一些SNMP異常的日志,例如:SNMP/3/SNMP_AUTHEN_FAILED。可以執行命令display logbuffer查看交換機上是否有SNMP異常日志,并根據日志中記錄的原因而進行相應的處理。

    SNMP/3/SNMP_AUTHEN_FAILED: Failed to login through SNMP. (Version=[Version], UserName=[UserName], Ip=[Ip], VpnName=[VpnName], RequestID=[RequestID], PduType=[PduType], Reason=[Reason])


    05 檢查交換機和網管的SNMP版本是否一致

    SNMP有v1、v2c、v3幾種版本,交換機側和網管側的SNMP版本必須保持一致,否則無法進行SNMP對接。

    缺省情況下,交換機的SNMP版本為v3。您可以檢查配置文件或者通過命令display snmp-agent sys-info version查看當前交換機的SNMP版本。如果兩側SNMP版本不一致,需要修改交換機或網管側,使其保持一致。

    例如配置交換機的SNMP版本支持v2c。

    [~HUAWEI] snmp-agent sys-info version v2c


    06 針對SNMPv2c版本,檢查交換機和網管的團體名是否一致

    團體名包括只讀權限的團體名和讀寫權限的團體名,交換機側和網管側配置的團體名必須一致。

    交換機上配置的SNMP團體名是以密文的形式保存的。如果忘記配置的團體名,建議重新配置團體名,使之與網管側一致。

    #
    snmp-agent sys-info version v2c
    snmp-agent community read cipher xxx    //只讀權限團體名
    snmp-agent community write cipher xxx   //讀寫權限團體名
    #


    07 針對SNMPv3版本,檢查用戶的安全級別是否正確

    SNMPv3用戶的安全級別分為三個等級,從高到低為:

    privacy:認證并加密

    authentication:認證不加密

    none:不認證不加密

    SNMPv3協議規定,用戶和告警主機的安全級別不能低于其所屬用戶組的安全級別,否則網管將無法與交換機對接。如果用戶組是privacy級別,用戶和告警主機就必須是privacy級別;用戶組是authentication級別,用戶和告警主機可以是privacy或者authentication級別。

    #
    snmp-agent sys-info version v3
    snmp-agent group v3 dc-admin privacy read-view rd write-view wt notify-view nt   //組名為dc-admin,安全級別為privacy
    #
    snmp-agent usm-user v3 uhmroot
    snmp-agent usm-user v3 uhmroot group dc-admin    //用戶名為uhmroot,屬于dc-admin組
    snmp-agent usm-user v3 uhmroot authentication-mode sha cipher xxx    //認證模式及密碼
    snmp-agent usm-user v3 uhmroot privacy-mode aes128 cipher xxx//加密模式及密碼,如果用戶組安全級別為privacy,用戶必須同時配置authentication-mode和privacy-mode
    #


    08 針對SNMPv3版本,檢查用戶的認證+加密的模式及密碼是否和網管側一致

    交換機側SNMPv3用戶的認證、加密的模式及密碼必須和網管側保持一致,否則無法完成SNMP對接。

    交換機上配置的SNMP密碼是以密文的形式保存的。如果忘記配置的密碼,建議重新配置認證、加密的模式及密碼,使之與網管側一致。

    #
    snmp-agent usm-user v3 uhmroot
    snmp-agent usm-user v3 uhmroot group dc-admin
    snmp-agent usm-user v3 uhmroot authentication-mode sha cipher xxx   //認證模式及密碼,必須和網管側一致
    snmp-agent usm-user v3 uhmroot privacy-mode aes128 cipher xxx       //加密模式及密碼,必須和網管側一致
    #


    09 檢查防火墻是否允許SNMP報文通過

    如果交換機和網管之間的網絡中有防火墻,則可能會因為防火墻的過濾策略而導致SNMP報文無法正常通過。以Huawei防火墻為例,防火墻默認丟棄所有的報文,只有在防火墻策略中放行的報文才能正常轉發。

    在檢查防火墻上的安全策略時,需要注意策略中的以下幾點:

    • 交換機所屬的安全域和網管所屬的安全域之間的策略,交換機和網管的IP地址需要被放通,且雙向都需要放通。
    • 防火墻上連接交換機和網管的接口需要開啟SNMP服務。
    #
    security-policy
    rule name policy1      //安全域策略
     source-zone trust      //源安全域
     destination-zone untrust      //目的安全域
     source-address 10.1.1.0 mask 255.255.255.0      //源IP地址,交換機或網管地址需要在此范圍內
     destination-address 10.1.2.0 mask 255.255.255.0      //目的IP地址,交換機或網管IP地址需要在此范圍內
     action permit
    rule name policy2
     source-zone untrust
     destination-zone trust
     source-address 10.1.2.0 mask 255.255.255.0
     destination-address 10.1.1.0 mask 255.255.255.0
     action permit
    #
    interface GigabitEthernet1/0/0      //連接交換機或網管的接口
    undo shutdown
    ip address 10.1.2.1 255.255.255.0
    service-manage snmp permit      //開啟SNMP服務,缺省情況下SNMP服務未開啟
    #


    10 檢查網絡中是否有重復的SNMP引擎ID

    正常情況下,網絡中每臺交換機都會有一個唯一的SNMP引擎ID,用于標志一個SNMP實體。如果網絡中交換機的SNMP引擎ID有重復,那么后添加的交換機將無法與網管進行對接。

    #
    snmp-agent
    snmp-agent local-engineid 800007DB03D0C65B9E5D01    //SNMP引擎ID
    #

    SNMP引擎ID重復通常出現于復制其他交換機的配置文件后,再進行修改并使用的場景,容易漏修改原交換機使用的SNMP引擎ID。如果發現SNMP引擎ID有重復,可以在交換機上通過undo snmp-agent local-engineid恢復ID為缺省值,使其唯一。

    [~HUAWEI] undo snmp-agent local-engineid


    03 網管接收不到交換機上的告警


    當交換機發生故障或因某些原因導致系統進入不正常的工作狀態時,為幫助用戶快速感知并定位問題,系統會產生事件和告警,同時觸發產生相應的Trap信息。Trap信息通過SNMP協議上報到網管系統,在實際應用中,習慣把Trap直接稱為告警,為便于理解,下文中的告警和Trap是同一個含義。

    網管能夠收到交換機告警的前提是網管已經成功納管交換機,所以在處理網管接收不到告警的問題前,請先確保網管能夠正常納管交換機,然后從以下幾方面進行排查和處理:

    • 檢查交換機上告警開關是否打開,或告警是否被過濾
    • 檢查交換機是否有set net-manager vpn-instance配置
    • 檢查交換機發送告警時使用的SNMP版本是否與全局SNMP版本一致
    • 檢查交換機的SNMP告警端口號和網管側是否一致


    01 檢查交換機上告警開關是否打開,或告警是否被過濾

    網管接收到告警的前提是交換機真實產生了告警或事件,并產生了相應的Trap信息,因此在網管接收不到告警時,首先需要確認交換機是否產生了Trap。

    執行命令display trapbuffer查看Trap緩沖區中是否存在對應的告警信息。如果不存在,則說明交換機沒有產生告警,網管也就無法收到告警,此時可以通過檢查交換機的如下配置進行排查:

    • 檢查對應的告警開關是否開啟。

    例如,接口Down的告警為:IFNET_1.3.6.1.6.3.1.1.5.3 linkdown ,IFNET為告警所屬的模塊。通過命令display snmp-agent trap feature-name feature-name all,可以查看到交換機上接口Down告警開關是否打開,其中“Current switch status”值即表示當前告警開關的開啟狀態。

    <HUAWEI> display snmp-agent trap feature-name ifnet all
    ------------------------------------------------------------------------------
    Feature name: IFNET
    Trap number : 4
    ------------------------------------------------------------------------------
    Trap name                      Default switch status   Current switch status
    hwPhysicalAdminIfDown          on                      on
    hwPhysicalAdminIfUp            on                      on
    linkdown                      off                     off
    linkup                         off                     off

    如果告警被關閉,可以執行命令snmp-agent trap enable feature-name feature-name trap-name trap-name可以打開對應告警的開關。

    [~HUAWEI] snmp-agent trap enable feature-name ifnet trap-name linkdown

    或者執行命令snmp-agent trap enable打開所有告警的開關。

    [~HUAWEI] snmp-agent trap enable
    • 檢查告警是否被過濾掉。

    如果交換機上配置了info-center filter-id { id | bymodule-alias modname alias }命令過濾了相應的Trap,那么即使交換機產生了該告警,也不會產生Trap信息,網管也無法收到該告警。

    #
    info-center filter-id bymodule-alias ifnet linkdown
    #

    如果有上述配置,可以執行undo info-center filter-id { id | bymodule-alias modname alias }刪除該配置

    [~HUAWEI] undo info-center filter-id bymodule-alias ifnet linkdown


    02 檢查交換機是否有set net-manager vpn-instance配置

    通常情況下,交換機上配置SNMP發送告警信息時,除了指定目標網管外,還會使用snmp-agent trap source interface-type interface-number命令指定發送告警的源接口。這樣在網管上可以進行告警源識別。

    但是交換機上若同時配置了set net-manager vpn-instance vpn-instance命令,且該VPN和snmp-agent trap source interface-type interface-number命令指定的源接口綁定的VPN不是同一個,那么交換機會優先使用set net-manager vpn-instance vpn-instance命令指定的VPN里的某個接口作為源接口,這樣會導致網管無法接受到正確源地址的告警。

    例如交換機上有以下配置。那么交換機發送告警至網管時,源接口將是vpn1里的LoopBack2,而不是LoopBack1。

    #                                                                                                                                  
    interface LoopBack1
    ip address 1.1.1.1 255.255.255.255
    #                                                                                                                                  
    interface LoopBack2
    ip binding vpn-instance vpn1
    ip address 2.2.2.2 255.255.255.255
    #
    set net-manager vpn-instance vpn1     //如果配置該命令,優先使用該命令指定的VPN里的接口來發送告警
    #
    snmp-agent target-host trap address udp-domain 10.1.1.1 params securityname uhmroot v3 privacy      //指定接收告警的目標網管
    #
    snmp-agent trap source LoopBack1      //指定發送告警的源接口
    #

    若產生了上述沖突場景,可以采用下面其中一種方法解決:

    【1】執行undo set net-manager vpn-instance刪除該配置。

    刪除該配置前,請先確認對其他業務模塊的影響,因為該命令不僅僅會影響SNMP模塊,還會對FTP、SFTP、Info Center、SSH、TACACS等業務模塊產生影響。

    【2】在snmp-agent target-host trap命令中指定源接口。

    該命令中指定的源接口參數source interface-type interface-number具有最高優先級。

    [~HUAWEI] snmp-agent target-host trap address udp-domain 10.1.1.1 source loopback1 params securityname uhmroot v3 privacy


    03 檢查交換機發送告警時使用的SNMP版本是否與全局SNMP版本一致

    交換機上snmp-agent target-host trap命令指定的發送告警時使用的SNMP版本,需要與snmp-agent sys-info version指定的全局SNMP版本一致,否則交換機無法正常發送出告警。在配置snmp-agent target-host trap命令時,如果不指定SNMP版本,則默認使用SNMPv1。

    例如以下配置中,全局SNMP協議使能的是v3版本,而未指定發送告警時所使用的SNMP版本,使用默認的v1版本,兩者的版本不一致,因此交換機無法正常發送出告警。

    snmp-agent sys-info version v3      //僅使能SNMPv3版本
    snmp-agent target-host trap address udp-domain 10.1.1.1 params

    需要在snmp-agent target-host trap命令中指定發送告警時使用的SNMP版本,使其和全局的版本一致。

    [~HUAWEI] snmp-agent target-host trap address udp-domain 10.1.1.1 params securityname uhmroot v3 privacy


    04 檢查交換機的SNMP告警端口號和網管側是否一致

    按照SNMP協議規范,SNMP使用目的端口號162來發送告警信息。因此,網管通常使用端口號162來處理告警信息,例如Huawei的eSight網管系統。

    如果交換機上snmp-agent target-host trap配置里指定了目的端口號(缺省情況下為162),且與網管側不一致,則會導致網管無法正常接收告警信息。

    #
    snmp-agent target-host trap address udp-domain 10.1.1.1 udp-port 161 params securityname uhmroot v3 privacy
    #

    建議使用默認的目的端口號。

    #
    snmp-agent target-host trap address udp-domain 10.1.1.1 params securityname u


    整理:老楊丨11年資深網絡工程師,更多網工提升干貨,請關注公眾號:網絡工程師俱樂部

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有