Zabbix學(xué)習(xí)筆記02

Zabbix配置文件參數(shù)

  • Zabbix監(jiān)控系統(tǒng)組件為server、proxy、agentd端,對(duì)各自組件的參數(shù)深入理解能夠?qū)abbix進(jìn)行調(diào)優(yōu)
  • zabbix_server.conf配置文件參數(shù):
    • DBHost:數(shù)據(jù)庫主機(jī)地址
    • DBName:數(shù)據(jù)庫名稱
    • DBPasswd:數(shù)據(jù)庫密碼
    • DBPort:數(shù)據(jù)庫端口號(hào),默認(rèn)為3306
    • AlertScriptsPath:告警腳本存放路徑
    • CacheSize:存儲(chǔ)監(jiān)控?cái)?shù)據(jù)的緩存
    • CacheUpdateFrequency:更新一次緩存的事件
    • DebugLevel:日志級(jí)別
    • LogFile:日志文件路徑
    • LogFileSize:日志文件大小,超過自動(dòng)切割
    • LogSlowQueries:數(shù)據(jù)庫慢查詢記錄,單位為ms
    • PidFile:PID文件
    • ProxyConfigFrequency:proxy被動(dòng)模式下,server用多少秒同步配置文件至proxy
    • ProxyDataFrequency:被動(dòng)模式下,server間隔多少秒向proxy請(qǐng)求歷史數(shù)據(jù)
    • StartDiscoverers:發(fā)現(xiàn)規(guī)則線程數(shù)
    • Timeout:連接agent超時(shí)時(shí)間
    • TrendCacheSize:歷史數(shù)據(jù)緩存大小
    • User:Zabbix運(yùn)行的用戶
    • HistoryCacheSize:歷史記錄緩存大小
    • ListenIP:監(jiān)聽本機(jī)的IP地址
    • ListenPort:監(jiān)聽端口
    • LoadModule:模塊名稱
    • LoadModulePath:模塊路徑
  • zabbix_proxy.conf配置文件參數(shù):
    • ProxyMode:proxy工作模式,默認(rèn)為主動(dòng)模式,主動(dòng)發(fā)送數(shù)據(jù)至server端
    • Server:指定server端IP地址
    • ServerPort:server端端口
    • Hostname:proxy端主機(jī)名
    • ListenPort:proxy端監(jiān)聽端口
    • LogFile:proxy代理端日志路徑
    • PidFile:PID文件的路徑
    • DBHost:proxy端數(shù)據(jù)庫主機(jī)名
    • DBName:proxy端數(shù)據(jù)庫名稱
    • DBUsert:proxy端數(shù)據(jù)庫用戶
    • DBPasswd:proxy端數(shù)據(jù)庫密碼
    • DBSocket:proxy端數(shù)據(jù)庫socket路徑
    • DBPort:proxy端數(shù)據(jù)庫端口號(hào)
    • DataSenderFrequency:proxy向server發(fā)送數(shù)據(jù)的時(shí)間間隔
    • StartPollers:proxy線程池?cái)?shù)量
    • StartDiscoverers:proxy端自動(dòng)發(fā)現(xiàn)主機(jī)的線程數(shù)量
    • CacheSize:內(nèi)存緩存配置
    • StartDBSyncers:同步數(shù)據(jù)線程數(shù)
    • HistoryCacheSize:歷史記錄緩存大小
    • LogSlowQueries:數(shù)據(jù)庫慢查詢記錄,單位為ms
    • Timeout:超時(shí)時(shí)間
  • zabbix_agentd.conf配置文件參數(shù):
    • EnableRemoteCommands:是否運(yùn)行服務(wù)端遠(yuǎn)程至客戶端執(zhí)行命令或者腳本
    • Hostname:客戶端主機(jī)名
    • ListenIP:監(jiān)聽的IP地址
    • ListenPort:監(jiān)聽端口
    • LoadModulePath:模塊路徑
    • LogFile:日志文件路徑
    • PidFile:PID文件名
    • Server:指定server端IP地址
    • ServerActive:Zabbix主動(dòng)監(jiān)控server的IP地址
    • StartAgents:agent啟動(dòng)進(jìn)程,如果設(shè)置為0,表示禁用被動(dòng)監(jiān)控
    • Timeout:超時(shí)時(shí)間
    • User:運(yùn)行Zabbix的用戶
    • UserParameter:用戶自定義key
    • BufferSize:緩沖區(qū)大小
    • DebugLevel:Zabbix日志級(jí)別

Zabbix自動(dòng)發(fā)現(xiàn)及注冊

  • Zabbix自動(dòng)發(fā)現(xiàn)功能是為了解決批量監(jiān)控而設(shè)計(jì)的.基于Zabbix server端設(shè)定的規(guī)則,自動(dòng)批量的去發(fā)現(xiàn)局域網(wǎng)若干服務(wù)器,并自動(dòng)把服務(wù)器添加至Zabbix監(jiān)控平臺(tái)

  • Zabbix最大的特點(diǎn)之一是可以批量自動(dòng)發(fā)現(xiàn)主機(jī)并監(jiān)控,利用發(fā)現(xiàn)(discovery)模塊,實(shí)時(shí)自動(dòng)發(fā)現(xiàn)主機(jī)、自動(dòng)將主機(jī)添加到主機(jī)組、自動(dòng)加載模塊、自動(dòng)創(chuàng)建項(xiàng)目(items)、自動(dòng)創(chuàng)建監(jiān)控圖像,操作步驟為

    1. 依次選擇Configuration --> Discovery --> Create discovery rule,創(chuàng)建客戶端發(fā)現(xiàn)規(guī)則

      • Name:規(guī)則名稱
      • Discovery by proxy:通過代理搜索
      • IP range:zabbix_server搜索區(qū)域的IP范圍
      • Delay:搜索一次的時(shí)間間隔
      • Checks:檢測方式,如用ping方式去發(fā)現(xiàn)主機(jī),zabbix_server需安裝fping,也可使用agent方式發(fā)現(xiàn)
      • Device uniqueness criteria:以IP地址作為被發(fā)現(xiàn)主機(jī)的標(biāo)識(shí)
image.png
  1. Zabbix客戶端安裝agent

    • 由于發(fā)現(xiàn)規(guī)則里選擇checks方式為agent,所以需在所有被監(jiān)控的服務(wù)器安裝Zabbix agent,安裝方式可以手動(dòng),也可以使用shell腳本,腳本運(yùn)行方法為sh auto_install_zabbix.sh
    # IP變量有問題
    
    #!/bin/bash
    #auto install zabbix
    ###########################
    ZABBIX_SOFT='zabbix-3.2.6.tar.gz'
    ZABBIX_PATH='zabbix-3.2.6'
    INSTALL_DIR='/usr/local/zabbix/'
    SERVER_IP='10.0.0.202'
    IP="ifconfig |awk 'NR==2{print $2}'"
    AGENT_INSTALL(){
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    tar -xzf $ZABBIX_SOFT;cd $ZABBIX_PATH
    ./configure --prefix=/usr/local/zabbix --enable-agent&&make install
    if [ $? - eq 0];then
       ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin
    fi
    cd -;cd $ZABBIX_PATH
    cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd;chmod o+x /etc/init.d/zabbix_agentd
    # config zabbix agentd
    cat >$INSTALL_DIR/etc/zabbix_agentd.conf<<EOF
    LogFile=/tmp/zabbix_agentd.log
    Server=$SERVER_IP
    ServerActive=$SERVER_IP
    Hostname=$IP
    EOF
    #start zabbix agentd
    /etc/init.d/zabbix_agentd restart
    /usr/bin/systemctl stop firewalld
    setenforce 0
    }
    AGENT_INSTALL
    
  2. 創(chuàng)建發(fā)現(xiàn)action

    • Zabbix發(fā)現(xiàn)規(guī)則創(chuàng)建完畢,客戶端agent安裝完后,被發(fā)現(xiàn)的IP主機(jī)不會(huì)自動(dòng)添加至Zabbix監(jiān)控列表,需要添加發(fā)現(xiàn)動(dòng)作,一次選擇Configuration --> Actions --> Event source(Discovery) --> Create action
    • 添加規(guī)則時(shí),系統(tǒng)默認(rèn)存在一條發(fā)現(xiàn)規(guī)則,可以新建規(guī)則,也可以使用默認(rèn)規(guī)則
    • 新建規(guī)則時(shí),在Operations中分別設(shè)置Add host、Add to host groups、Link to templates
image.png
image.png
image.png
 - 依次選擇Monitoring --> Discovery查看通過發(fā)現(xiàn)規(guī)則找到的服務(wù)器IP列表
image.png
 - 依次選擇Configuration --> Hosts,查看主機(jī)是否被自動(dòng)監(jiān)控至Zabbix監(jiān)控平臺(tái)
image.png
 - 依次選擇Configuration --> Graphs,查看監(jiān)控圖像
image.png

Zabbix郵件報(bào)警

  • 在Zabbix服務(wù)器端設(shè)置郵件報(bào)警,當(dāng)貝監(jiān)控主機(jī)宕機(jī)或者達(dá)到設(shè)定的觸發(fā)器預(yù)設(shè)值時(shí),會(huì)自動(dòng)發(fā)送報(bào)警郵件、微信信息到指定的人員.Zabbix郵件報(bào)警設(shè)置步驟為:
    1. 設(shè)置郵件模板及郵件服務(wù)器
      • 依次選擇Administrator --> Media types --> Create media type,填寫郵件服務(wù)器信息
    2. 配置接收?qǐng)?bào)警的郵箱
      • 依次選擇Administrator --> User --> Admin(Zabbix Administrator) --> user --> admin,再選擇media,單擊Add添加發(fā)送郵件的類型為Email,同時(shí)指定接收郵箱地址為841603636@qq.com

Zabbix監(jiān)控MySQL主從復(fù)制

  • Zabbix除了可以監(jiān)控agent客戶端服務(wù)器狀態(tài)、CPU、內(nèi)存、硬盤、網(wǎng)卡流量等運(yùn)行情況,同時(shí)Zabbix還可以監(jiān)控MySQL主從復(fù)制、LAMP、Nginx Web服務(wù)器

  • Zabbix監(jiān)控MySQL主從復(fù)制:

    1. 在10.0.0.203Zabbix agent端/data/sh目錄創(chuàng)建shell腳本mysql_ab_check.sh
    #!/bin/bash
    /usr/local/mysql/bin/mysql -uroot -e 'show slave status\G;'|grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
    
    1. 在客戶端zabbix_agentd.conf配置文件中加入代碼
    # 格式為UserParameter=key,command
    UserParameter=mysql.replication,sh /data/sh/mysql_ab_check.sh
    
    # 重啟Zabbix agent使配置生效
    /etc/init.d/zabbix_agentd restart
    
    1. Zabbix服務(wù)器端獲取監(jiān)控?cái)?shù)據(jù),如果返回值為2,則證明從庫I/O、SQL線程均為Yes,表示主從同步成功
    /usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k mysql.replication
    
    1. 在Zabbix Web平臺(tái),在10.0.0.203hosts中創(chuàng)建item監(jiān)控項(xiàng),單擊右上角create item,在Key輸入欄中填寫zabbix_agentd配置文件中的mysql.replication
image.png
image.png
image.png
  • MySQL主從監(jiān)控創(chuàng)建Graph圖像
image.png
  • MySQL主從監(jiān)控項(xiàng)創(chuàng)建觸發(fā)器,MySQL主從狀態(tài)監(jiān)控,設(shè)置觸發(fā)器條件Key值不等于2即可,不等于2即表示MySQL主從同步異常,匹配觸發(fā)器會(huì)執(zhí)行Actions
image.png
image.png
  • 如果主從同步狀態(tài)異常,Key值不等于2,會(huì)觸發(fā)郵件報(bào)警

Zabbix分布式

  • Zabbix是一個(gè)分布式監(jiān)控系統(tǒng),它可以以一個(gè)中心點(diǎn)、多個(gè)分節(jié)點(diǎn)的模式運(yùn)行,使用proxy能大大地降低Zabbix server的壓力,Zabbix proxy可以運(yùn)行在獨(dú)立的服務(wù)器上

  • 安裝Zabbix proxy,基于zabbix-3.2.6.tar.gz軟件包,同時(shí)導(dǎo)入Zabbix基礎(chǔ)框架表

    1. 下載Zabbix軟件包
    https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
    
    1. 在Zabbix proxy執(zhí)行如下代碼
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    
    1. Zabbix proxy端配置
    • 創(chuàng)建Zabbix數(shù)據(jù)庫,執(zhí)行授權(quán)命令

      create database zabbix_proxy charset=utf8;
      

    grant all on zabbix_proxy.* to zabbix@'10.0.0.%' identified by '123456';
    flush privileges;

      
      - 解壓Zabbix軟件包并將Zabbix基礎(chǔ)SQL文件導(dǎo)入數(shù)據(jù)至Zabbix數(shù)據(jù)庫
      
    ```sh
      tar xf zabbix-3.2.6.tar.gz
      cd zabbix-3.2.6
      mysql -uzabbix -p123456 zabbix_proxy < database/mysql/schema.sql 
      mysql -uzabbix -p123456 zabbix_proxy < database/mysql/images.sql
      # mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
    
    • 切換至Zabbix解壓目錄,安裝zabbix_proxy
    ./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl  # 預(yù)編譯
    make  # 編譯安裝
    make install  # 執(zhí)行安裝
    ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin  # 創(chuàng)建命令軟鏈接
    
    • Zabbix proxy安裝完畢,cd /usr/local/zabbix/etc目錄
image.png
  1. 備份Zabbix proxy配置文件
cp zabbix_proxy.conf{,.bak}
  1. 配置zabbix_proxy.conf,并啟動(dòng)mysql_proxy
Server=10.0.0.202
Hostname=10.0.0.205
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
Timeout=4
LogSlowQueries=3000
DataSenderFrequency=30
HistoryCacheSize=128MB
CacheSize=128MB
# 啟動(dòng)mysql_proxy服務(wù)
/usr/local/zabbix/sbin/zabbix_proxy

# 報(bào)錯(cuò)
zabbix_proxy: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

# 解決方法
cd /usr/local/mysql/lib
cp libmysqlclient.so.20  /usr/lib64/libmysqlclient.so.20
zabbix_proxy
ps -ef|grep zabbix # 查看zabbix_proxy進(jìn)程有沒有啟動(dòng)
  1. Zabbix客戶端安裝agent,同時(shí)配置agent端server設(shè)置為proxy服務(wù)器的IP地址或者主機(jī)名,zabbix_agentd.conf配置如下
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.205
ServerActive=10.0.0.205
Hostname=10.0.0.206

# 保存退出配置文件并啟動(dòng)服務(wù)
/etc/init.d/zabbix_agentd start

# 在Zabbix proxy端測試是否能連接到Zabbix agent端
/usr/local/zabbix/bin/zabbix_get  -s 10.0.0.206 -k system.uname

# 查看Zabbix proxy端日志發(fā)現(xiàn)報(bào)錯(cuò)信息
cannot send list of active checks to "10.0.0.206": host [10.0.0.206] not found

# 解決方法,重新啟動(dòng)zabbix_proxy
zabbix_proxy
  1. 在Zabbix server Web端添加proxy,實(shí)現(xiàn)集中管理和分布式添加監(jiān)控
image.png
image.png
image.png
  1. 添加Zabbix agent端10.0.0.206主機(jī),并勾選Monitored by proxy的Zabbix proxy端主機(jī)或IP地址
image.png
image.png
image.png
  1. 查看代理agent的主機(jī)狀態(tài),發(fā)現(xiàn)已經(jīng)為可用了
image.png

Zabbix觸發(fā)命令及腳本

  • Zabbix在對(duì)服務(wù)或者設(shè)備進(jìn)行監(jiān)控的時(shí)候,如果被監(jiān)控客戶端服務(wù)異常,滿足觸發(fā)器,可以發(fā)送郵件報(bào)警、短信報(bào)警及微信報(bào)警.Zabbix還可以遠(yuǎn)程執(zhí)行命令或者腳本,對(duì)部分故障實(shí)現(xiàn)自動(dòng)修復(fù),具體可以執(zhí)行的任務(wù)為:
    • 重啟應(yīng)用程序,例如Apache、Nginx、MySQL、Tomcat服務(wù)等
    • 通過IPMI接口重啟服務(wù)器
    • 刪除服務(wù)器磁盤空間及數(shù)據(jù)
    • 執(zhí)行腳本及資源調(diào)度管理
    • 遠(yuǎn)程命令最大長度為255個(gè)字符
    • 同時(shí)支持多個(gè)遠(yuǎn)程命令
    • Zabbix代理不支持遠(yuǎn)程命令
  • 使用Zabbix遠(yuǎn)程執(zhí)行命令,需在Zabbix客戶端配置文件開啟對(duì)遠(yuǎn)程命令的支持,在zabbix_agentd.conf行尾加入如下代碼,并重啟服務(wù)
    • EnableRemoteCommands=1 運(yùn)行服務(wù)端遠(yuǎn)程至客戶端執(zhí)行命令或腳本
vim /usr/local/zabbix/etc/zabbix_agentd.conf
EnableRemoteCommands=1   # 然后保存退出
  • 創(chuàng)建Action,依次選擇Configuration -> Actions --> Triggers,類型選擇Remote command,Steps表示執(zhí)行命令1-3次,Step duration表示設(shè)置每次命令執(zhí)行間隔時(shí)間,60s執(zhí)行一次,執(zhí)行命令方式選擇Zabbix agent,基于sudo執(zhí)行命令
image.png
image.png
  • 在Zabbix客戶端/etc/sudoers配置文件中添加zabbix用戶擁有執(zhí)行權(quán)限且無需密碼登錄
Defaults:zabbix !requiretty
zabbix  ALL=(ALL) NOPASSWORD: ALL
  • 在Zabbix客戶端/data/sh,創(chuàng)建auto_clean_disk.sh文件,腳本代碼為
#!/bin/bash
#auto clean disk space
rm -rf /boot/test.img
find /boot/ -name "*.log" -size +100M -exec rm -rf {} \;
  • 將10.0.0.203服務(wù)器/boot目錄臨時(shí)寫滿,然后滿足觸發(fā)器,實(shí)現(xiàn)遠(yuǎn)程命令執(zhí)行
  • 如果Zabbix客戶端腳本或者命令沒有執(zhí)行成功,HTTP服務(wù)沒有停止,可以在Zabbix server端執(zhí)行如下命令
/usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k 'system.run[sudo /etc/init.d/httpd restart]'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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