部署zabbix5.0以及使用

来源:https://www.cnblogs.com/xuxuxuxuxu/archive/2023/06/28/17512626.html
-Advertisement-
Play Games

## 前言 > 1. 檢查防火牆是否關閉 > > vim /etc/selinux/config > > SELINUX=disabled > > 2. 記憶體4G為好 > > 3. 配置好阿裡yum源 ## 實驗步驟-服務端 > 1. 獲取zabbix的下載源 > > rpm -Uvh https: ...


前言

  1. 檢查防火牆是否關閉

    vim /etc/selinux/config

    SELINUX=disabled

  2. 記憶體4G為好

  3. 配置好阿裡yum源

實驗步驟-服務端

  1. 獲取zabbix的下載源

    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

  2. 更換zabbix.repo源(下載快點)

    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  3. 清空緩存,下載zabbix伺服器

    yum clean all

    yum makecache

  4. yum install zabbix-server-mysql zabbix-agent -y

  5. 安裝 Software Collections ,便於後續安裝高版本php,預設yum安裝的php版本為5.4過低。可以在機器上,使用多個版本的軟體,並且不會影響整個系統的依賴環境

    yum install centos-release-scl -y

  6. 修改zabbix-fronted 前端源

    vim /etc/yum.repos.d/zabbix.repo

    enabled=1

  1. 安裝zabbix前端環境

    yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

  2. 安裝mysql資料庫 並啟動 設置開機自啟

    yum install mariadb-server -y

    systemctl start mysqld

    systemctl enable mysqld

  3. 預設沒有密碼修改密碼

    先進入mysql

    mysql -u root -p

    這裡修改密碼設置為root

    set password root@localhost=password('root');

    如果出現ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 50651, now running 50733. Please use mysql_upgrade to fix this error.

    就退出mysql 執行

    mysql_upgrade -u root -p

    再去修改密碼

    如果出現

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    則卸載plugin validate_password

    uninstall plugin validate_password;

  4. 創建zabbix資料庫

    create database zabbix character set utf8 collate utf8_bin;

  5. 創建zabbix用戶

    create user zabbix@localhost identified by 'root';

  6. 給zabbix用戶zabbix資料庫的許可權,並刷新許可權退出

    grant all privileges on zabbix.* to zabbix@localhost;

    flush privileges;

    quit;

  7. 使用zabbix-mysql命令,導入資料庫信息

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

  8. vim /etc/zabbix/zabbix_server.conf

    找到DBPassword=root

    後面填寫你的mysql密碼

  9. grep '^DBPassword' /etc/zabbix/zabbix_server.conf 檢查一下密碼是否設置

  10. 修改zabbix的php文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 把時區改為亞洲上海 並去掉註釋

    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

    php_value[date.timezone] = Asia/Shanghai

  11. 啟動相關服務

    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

  12. 網頁訪問ip/zabbix 直接下一步

    後續直接一路下一步不要管

  13. 預設賬號密碼

    Admin

    zabbix

客戶端

  1. 註意時間正確

    服務端和客戶端都要進行

    yum install ntpdate -y

    ntpdate -u ntp.aliyun.com

  2. 時區的統一配置

    mv /etc/localtime{,.bak}
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    然後輸入date 看看服務端和客戶端的日期時間

  3. 在客戶端獲取zabbix的下載源

    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

  4. 更換zabbix.repo源(下載快點)

    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  5. 安裝agent2

    yum install zabbix-agent2 -y

  6. 啟動服務

    systemctl enable --now zabbix-agent2

  7. 更改配置文件

    vim /etc/zabbix/zabbix_agent2.conf

    Server=x.x.x.x (填服務端ip地址)

    ServerActive=x.x.x.x (填服務端ip地址)

    Hostname=zabbix-agent01 (填寫你的客戶端主機名)

  8. 重啟服務

    systemctl restart zabbix-agent2

  9. 在服務端安裝zabbix-get

    yum install zabbix-get -y

  10. 命令檢測 去服務端輸入以下命令

    zabbix_get -s '192.168.x.x' -p 10050 -k 'system.hostname'

解決亂碼問題

  1. 安裝字體(服務端)

    yum -y install wqy-microhei-fonts

  2. 複製字體

    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

添加zabbix-agent主機

自定義監控內容

自定義監控伺服器登陸的人數

需求:限制登陸人數不超過兩個,超過兩個就發出報警信息

  1. 明確需要執行的命令

    who | wc -l

  2. 手動創建zabbix的配置文件,用於自定義key

    cd /etc/zabbix/zabbix_agent2.d/

    vim userparameter_login.conf

    UserParameter=login.user,who|wc -l

  3. 重啟服務

    systemctl restart zabbix-agent2

    zabbix_get -s '192.168.70.20' -p 10050 -k 'login.user'

    此時顯示2 兩台機器人登錄 一臺本機登錄一臺ssh連接登錄的

在頁面添加zabbix-server的自定義監控項模板

添加流程

  1. 創建模板

  2. 創建應用集(好比是一個文件夾,裡面放入一堆監控項)

  3. 創建監控項,自定義item,你具體想監控的內容

  4. 創建觸發器,當監控項獲取到值的時候,進行和觸發器比較,判斷,決定是否報警

  5. 創建圖形

  6. 將具體的主機和該模板鏈接,關聯

  7. 創建模板

可以看到模板已添加

  1. 創建應用集

  1. 創建監控項

  1. 創建觸發器

  1. 創建圖形

  1. 關聯

    找到要關聯的主機

    ​ 可以看到圖形中已經顯示了

    這時候去測試報錯 多創建用戶ssh連接

    用另外一臺虛擬機去ssh連接客戶端機器

    ssh [email protected]

    儀錶盤就可以看到報錯了!

郵件報警

利用上述自定義監控內容來測試郵件報警

創建報警媒介類型

這裡需要授權碼 (下麵寫瞭如何獲取授權碼)

獲取授權碼

開啟smtp服務讓你驗證 成功後會發送授權碼給你

如果出現報警媒介類型已存在就換個報警媒介名稱

Email名稱報錯 換了個Zabbix_Email

可以看到創建成功了 可以進行測試

測試通過

重新測試增添user登錄 可以發現報警併發送郵件了

可以看到以收到報警郵件

最後確認信息即可

聚合圖形

現在在這裡也能監測到agent01 CPU usage 情況

全網監控方案

如果有許多的機器需要監控難道還需要手動一個個添加主機麽?

思路:

  • 克隆監控模板
  • 自動註冊和自動發現
  • 使用zabbix的api介面,利用curl語言,或者開發自己的編程腳本如python等

監控服務的具體方法

埠檢測的命令

netstat

ss

lsof

在服務端,用zabbix語句 net.tcp.port的值

[root@localhost ~]# zabbix_get -s '192.168.70.20' -p 10050 -k 'net.tcp.port[,22]'
1

自動註冊和自動發現

自動發現

​ zabbix server主動的去發現所有的客戶端,然後將客戶端的信息,登記在服務端的機器上

​ 缺點是 zabbix-server壓力會比較大

​ 如果定義的一個網段 100-200網段,耗時較久,且壓力比較大

自動註冊

​ zabbix agent2主動上報自己的信息,發給zabbix-server

​ 缺點是agent2可能找不到server (配置文件寫錯了,網路不通)

自動發現步驟

配置hosts解析

先把之前鏈接測試的客戶端禁用刪除

vim /etc/hosts

在下麵添加你的服務端機器和客戶端機器的地址和機器名稱

192.168.x.x localhost.localdomain
192.168.x.x zabbix-agent01

直接在這裡修改它的規則

最後點主機就可以看到已連接到客戶端機器

可以看到已經自動發現了客戶端agent01機器

自動註冊步驟

1.準備機器

server

agent2

2.修改agent2配置文件

vim /etc/zabbix/zabbix_agent2.conf

3.重啟服務

systemctl restart zabbix-agent2

4.驗證

去服務端zabbix語句去驗證這個機器通信

[root@zabbix-server ~]# zabbix_get -s '192.168.xx.xx' -p 10050 -k 'agent.ping'
1

繼續添加 添加主機群主

添加與模板關聯

可以看到以及添加進來了

zabbix代理伺服器配置

  1. 環境準備,準備三台機器

    zabbix-server zabbix-agent01 zabbix-agent02(代理)

  2. 防火牆都關閉

  3. 確保之前所學的自動發現,註冊以及關閉

  4. 準備好客戶端機器,agent02機器

  5. 來配置zabbix-proxy代理伺服器,並且部署資料庫,用於存儲agent02發來的數據,最終發給zabbix-server

    ​ 上面我們已經配置就不需要配置了

    1. ​ 配置yum源

      rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

    2. 更換zabbix.repo源(下載快點)

      sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  6. 安裝proxy,以及資料庫

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

  7. 啟動資料庫,配置資料庫用戶,存儲zabbix-agent2信息數據

    沒有資料庫先安裝

    yum install mariadb-server mariadb -y

    [root@zabbix-agent02 ~]# mysql -uroot -p

    MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;

    Query OK, 1 row affected (0.00 sec)

    創建zabbix用戶並授予其zabbix_proxy表所有許可權

    MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
    Query OK, 0 rows affected (0.00 sec)

  8. 導入zabbix-proxy資料庫信息

    查詢sql文件在哪

    rpm -ql zabbix-proxy-mysql

    [root@zabbix-agent02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

    再次進入資料庫

    [root@zabbix-agent02 ~]# mysql -uroot -p

    使用zabbix_proxy資料庫

    MariaDB [(none)]> use zabbix_proxy;

    查看資料庫中的表 可以發現以及導入進來了

    MariaDB [zabbix_proxy]> show tables;

  9. 修改zabbix_proxy配置文件,鏈接資料庫的信息 (zabbix-agent02作為代理機器 )

    [root@zabbix-agent02 ~]# sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
    [root@zabbix-agent02 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.70.18#' /etc/zabbix/zabbix_proxy.conf
    [root@zabbix-agent02 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-agent02#' /etc/zabbix/zabbix_proxy.conf

    grep -Ev '#|$' /etc/zabbix/zabbix_proxy.conf

    systemctl start zabbix-proxy

    ​ 客戶端配置

    先修改好配置文件

    vim /etc/zabbix/zabbix_agent2.conf

    在客戶端zabbix-agent01機器 重啟服務

    systemctl restart zabbix-agent2

    [root@zabbix-agent01 ~]# grep '[1]' /etc/zabbix/zabbix_agent2.conf
    PidFile=/var/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    Server=192.168.xx.xx
    ServerActive=192.168.xx.xx
    Hostname=zabbix-agent01
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    ControlSocket=/tmp/agent.sock

SNMP監控

簡單網路管理協議

  1. 服務端安裝snmp監控程式

    yum install net-snmp net-snmp-utils -y

  2. 開啟snmp的配置

    sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf

    systemctl start snmpd.service

  3. 使用snmp命令

    -v 指定協議版本 -c 指定暗號

    [root@zabbix-server ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
    SNMPv2-MIB::sysName.0 = STRING: zabbix-server

    編輯服務端 zabbix-server

    點擊更新後可以看到


  1. a-Z ↩︎


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 2023/6/27 通信之間的實現,目的是為了,方便回顧時立馬能使用。具體的比如什麼情況選用什麼通信,各自的優點,沒有記錄。原因是,本人目前實戰經驗較少,還處於學習狀態,對此的理解還停留在管道方便,共用記憶體效率高,控制操作用消息隊列 # 前提 1. 進程間通信多少種? 答:7種,分別為無名管道、 ...
  • 面對同樣的客戶端請求,SpringCloud Gateway可以轉發給不同的服務去處理,掌握這個技能,讓請求從微服務入口處被掌控,被調度 ...
  • 1 # -*- coding: utf-8 -*- 2 """ 3 @Time : 2023-06-25 23:14 4 @Description : 5 @Author : Mr.Gu 6 """ 7 import time 8 import types 9 10 11 class Meta(ty ...
  • .NET Core 6引入了創建單文件可執行文件的功能。這隻允許分發一個應用程式文件,因為所有配置和依賴項都包含在二進位文件本身中。 該功能為依賴項嵌入提供了一種本機方法,這在發佈生成數百個程式集的獨立應用程式時最有益。它可用於依賴於框架或自包含的應用程式,但在這兩種情況下都需要設置運行時標識符以針 ...
  • ## 一:背景 ### 1. 講故事 前段時間有個朋友找到我,說他們的程式有偶發崩潰的情況,讓我幫忙看下怎麼回事,針對這種 crash 的程式,用 AEDebug 的方式抓取一個便知,有了 dump 之後接下來就可以分析了。 ## 二:Windbg 分析 ### 1. 為什麼會崩潰 既然是程式的崩潰 ...
  • 很多人看到這個Eazfuscator.NET還不知是什麼東東。。。 首先介紹下 什麼是 Eazfuscator.NET? Eazfuscator.NET 是用於.NET平臺的工業級混淆器。 Eazfuscator.NET 提供的混淆保護了軟體中根深蒂固的知識產權,提高了商業盈利能力,並保持了競爭優勢 ...
  • 繼上篇:Taurus .Net Core 微服務開源框架:Admin 插件【1】 - 微服務節點管理,本篇繼續介紹下一個內容:系統環境信息管理...... ...
  • # 痞子衡嵌入式半月刊: 第 78 期 ![](http://henjay724.com/image/cnblogs/pzh_mcu_bi_weekly.PNG) 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitH ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...