監控服務zabbix部署

来源:https://www.cnblogs.com/tushanbu/archive/2022/09/02/16648308.html
-Advertisement-
Play Games

監控服務zabbix部署 zabbix介紹 zabbix是由Alexei Vladishev 開發的一種網路監視、管理系統,基於Server-Client架構。可用於監視各種網路服務、伺服器和網路機器等狀態。 ​使用各種Database-end 如 MySQL,PostgreSQL,SQlite,O ...


監控服務zabbix部署


目錄

zabbix介紹

  1. zabbix是由Alexei Vladishev 開發的一種網路監視、管理系統,基於Server-Client架構。可用於監視各種網路服務、伺服器和網路機器等狀態。
  2. ​使用各種Database-end 如 MySQL,PostgreSQL,SQlite,Oracle 或IBMDB2儲存資料。Server端基於C語言、Web管理端frontend則是基於PHP所製作的。
  3. zabbix可以使用多種方式監視。可以只使用Simple Check不需要安裝
    Client端,亦可基於SMTP或HTTP… 各種協議定製監視。
  4. 在客戶端如UNIX,Windows 中安裝zabbix Agent之後,可監視CPULoad、網路使用狀況、硬碟容量等各種狀態。而就算沒有安裝Agent 在監視對象中,zabbix 也可以經由SNMP、TCP、ICMP、利用IPMI、SSH、telnet 對目標進行監視。
  5. zabbbix自帶的Item足夠滿足普通小公司的監控需求,對於大公司也可以設定自定義的Item,自動生成報表,也有API可以和其他系統集成。
  6. zabbix由2部分構成,zabbix server與可選組件zabbix agent。

zabbix特點

zabbix的主要特點:
安裝與配置簡單,學習成本低
支持多語言(包括中文)
免費開源
自動發現伺服器與網路設備
分散式監視以及WEB集中管理功能
可以無agent監視
用戶安全認證和柔軟的授權方式
通過WEB界面設置或查看監視結果
email等通知功能
zabbix主要功能:
CPU負荷
記憶體使用
磁碟使用
網路狀況
埠監視
日誌監視

為何是zabbix不是其他監控

zabbix就是可以滿足理想化的監控系統需求
支持自定義監控腳本,提供需要輸出的值即可
zabbix存儲的資料庫表結構稍有複雜但是邏輯清晰
zabbix存在模板的概念,可以方便的將一組監控項進行部署
zabbix每一個item也就是監控項,都可以看到歷史記錄,且web界面友好
zabbix有強大的Trigger(觸發器)定義規則,可以定義複雜的報警邏輯
zabbix提供了ack報警確認機制
zabbix支持郵件,簡訊,微信等告警
zabbix在觸發告警後,可以遠程執行系統命令
zabbix有原生的PHP繪圖模塊

部署zabbix時為什麼服務端也要安裝部署zabbix
因為服務端在監控其他主機的時候,如果自己出了啥子問題是無法進行自我反應的,所以在監控其他主機的時候,也要進行自我監控,及時反應問題。

zabbix程式組件

zabbix_server,服務端守護進程
zabbix_agentd,agent守護進程
zabbix_proxy,代理伺服器
zabbix_database,存儲系統,mysql,pgsql
zabbix_web,web GUI圖形化界面
zabbix_ get,命令行工具,測試向agent發起數據採集請求
zabbix_sender,命令行工具,測試向server發送數據
zabbix_ java_ gateway,java網關

zabbix配置文件

zabbix配置文件有兩種:
伺服器端配置文件(/usr/local/etc/zabbix_server.conf)
客戶端配置文件(/usr/local/etc/zabbix_agentd.conf)
zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)

部署zabbix

因為zabbix是用php語言開發的,所以必須先部署lamp架構,使其能夠支持運行php網頁
需要提前搭建好lamp架構,可以查看 下麵的搭建方法
lamp架構的搭建
mysql官網
此處需要使用的mysql8mysql源碼包
php官網
此處需要使用的php源碼包
zabbix官網
zabbix源碼包

zabbix服務端安裝

[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget    https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.2.tar.gz
//下載源碼包
--2022-09-01 22:12:50--  https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.2.tar.gz
Resolving cdn.zabbix.com (cdn.zabbix.com)... 172.67.69.4, 104.26.6.148, 104.26.7.148, ...
...
[root@localhost src]# ls
debug  kernels  zabbix-6.2.2.tar.gz
[root@localhost src]# tar xf zabbix-6.2.2.tar.gz  //解壓
[root@localhost src]# cd zabbix-6.2.2/
[root@localhost zabbix-6.2.2]# dnf -y install net-snmp-devel libevent-devel   //安裝依賴包
....
tpm2-tss-2.3.2-4.el8.x86_64                                                                          
  unzip-6.0-45.el8_4.x86_64                                                                            
  zip-3.0-23.el8.x86_64                                                                                

Complete!
[root@localhost zabbix-6.2.2]# useradd -r -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
//創建zabbix系統用戶
[root@localhost zabbix-6.2.2]# mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
//創建zabbix用戶的家目錄
[root@localhost zabbix-6.2.2]# chown -R zabbix.zabbix /usr/lib/zabbix/
//使其屬主屬組都是zabbix
[root@localhost zabbix-6.2.2]# mysql -uroot -p'lnh123'  //登錄資料庫,配置資料庫
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.02 sec)

mysql> create user 'zabbix'@'localhost' identified by 'zabbix123!';
Query OK, 0 rows affected (0.03 sec)

mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql>  SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@localhost zabbix-6.2.2]# cd /usr/src/zabbix-6.2.2/database/mysql/
[root@localhost mysql]# ls
Makefile.am  Makefile.in  data.sql  double.sql  history_pk_prepare.sql  images.sql  schema.sql  
//將此處數據進行導入
[root@localhost mysql]# mysql -uroot -p'lnh123' zabbix < schema.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uroot -p'lnh123' zabbix < images.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uroot -p'lnh123' zabbix < data.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uroot -p'lnh123'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables from zabbix;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
....
| widget_field               |
+----------------------------+
176 rows in set (0.03 sec)
//查看zabbix資料庫下有哪些表,沒有問題的話是176張表
[root@localhost mysql]# cd /usr/src/zabbix-6.2.2/
[root@localhost zabbix-6.2.2]# ./configure --enable-server --enable-agent --with-mysql  --with-net-snmp --with-libcurl --with-libxml2
//編譯zabbix
...
***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
[root@localhost zabbix-6.2.2]# make install

zabbix服務端配置

[root@localhost zabbix-6.2.2]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_server.conf  zabbix_server.conf.d
[root@localhost etc]# vim zabbix_server.conf.d/
# DBPassword=      //在這行下麵添加前面設置的mysql裡面用戶密碼
DBPassword=zabbix123!    //添加

zabbix配置web界面

[root@localhost etc]# cd
[root@localhost ~]# cd /usr/src/zabbix-6.2.2/
[root@localhost zabbix-6.2.2]# ls
AUTHORS    Makefile     README      compile       config.status  database    m4       sass
COPYING    Makefile.am  aclocal.m4  conf          config.sub     depcomp     man      src
ChangeLog  Makefile.in  bin         config.guess  configure      include     misc     ui
INSTALL    NEWS         build       config.log    configure.ac   install-sh  missing
[root@localhost zabbix-6.2.2]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf 
//配置apache虛擬主機,可以註釋之前的配置
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/zabbix"
    ServerName zabbix.example.com
    ErrorLog "logs/zabbix.example.com-error_log"
    CustomLog "logs/zabbix.example.com-access_log" common
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
    <Directory "/usr/local/apache/htdocs/zabbix">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@localhost zabbix-6.2.2]# cd /usr/src/zabbix-6.2.2/
[root@localhost zabbix-6.2.2]# ls
AUTHORS    Makefile     README      compile       config.status  database    m4       sass
COPYING    Makefile.am  aclocal.m4  conf          config.sub     depcomp     man      src
ChangeLog  Makefile.in  bin         config.guess  configure      include     misc     ui
INSTALL    NEWS         build       config.log    configure.ac   install-sh  missing
[root@localhost zabbix-6.2.2]# cd ui/
[root@localhost ui]# ls    //此處是php代碼
actionconf.php      composer.lock                imgstore.php     report2.php
api_jsonrpc.php     conf                         include          report4.php
app                 data                         index.php        robots.txt
assets              disc_prototypes.php          index_http.php   setup.php
audio               favicon.ico                  index_sso.php    sysmap.php
auditacts.php       graphs.php                   items.php        sysmaps.php
browserwarning.php  history.php                  js               templates.php
chart.php           host_discovery.php           jsLoader.php     toptriggers.php
chart2.php          host_prototypes.php          jsrpc.php        tr_events.php
chart3.php          hostinventories.php          local            trigger_prototypes.php
chart4.php          hostinventoriesoverview.php  locale           triggers.php
chart6.php          httpconf.php                 maintenance.php  vendor
chart7.php          httpdetails.php              map.php          zabbix.php
composer.json       image.php                    modules
[root@localhost ui]# cd -
/usr/src/zabbix-6.2.2
[root@localhost zabbix-6.2.2]# cd
[root@localhost ~]# cd /usr/src/zabbix-6.2.2/
[root@localhost zabbix-6.2.2]# mkdir /usr/local/apache/htdocs/zabbix   //創建zabbix的web站點目錄
[root@localhost zabbix-6.2.2]# cp -a /usr/src/zabbix-6.2.2/ui/* /usr/local/apache/htdocs/zabbix/
//將zabbix的web界面php代碼複製到站點目錄
[root@localhost zabbix-6.2.2]# chown -R apache.apache /usr/local/apache/htdocs/
//使其屬主屬組是apache
[root@localhost zabbix-6.2.2]# ll /usr/local/apache/htdocs/
total 8
-rw-r--r--.  1 apache apache   45 Jun 12  2007 index.html
drwxr-xr-x.  2 apache apache   23 Sep  1 21:29 runtime
drwxr-xr-x. 13 apache apache 4096 Sep  1 23:19 zabbix
[root@localhost zabbix-6.2.2]# chmod 777 /usr/local/apache/htdocs/zabbix/conf/
//設置zabbix/conf目錄的許可權,讓zabbix有許可權生成配置文件zabbix.conf.php
[root@localhost zabbix-6.2.2]#  ll -d /usr/local/apache/htdocs/zabbix/conf/
drwxrwxrwx. 3 apache apache 94 Aug 29 15:05 /usr/local/apache/htdocs/zabbix/conf/
[root@localhost zabbix-6.2.2]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
[root@localhost zabbix-6.2.2]# systemctl restart httpd.service 
//重啟httpd
[root@localhost zabbix-6.2.2]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-6.2.2]#  sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.2.2]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.2.2]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
//修改/etc/php.ini的配置
[root@localhost zabbix-6.2.2]# service php-fpm restart 
Gracefully shutting down php-fpm . done
Starting php-fpm  done
//重啟php-fpm
[root@localhost ~]# zabbix_server 
[root@localhost ~]# zabbix_agentd 
//啟動zabbix_server和zabbix_agentd

在物理機上做hosts功能變數名稱映射

在我的電腦裡面進行映射(C:\Windows\System32\drivers\etc)

去瀏覽器訪問,輸入zabbix.example.com,看到如下頁面,然後點擊next step







用戶名Admin 密碼 zabbix


部署完成

[root@localhost ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf/
[root@localhost ~]# ll -d /usr/local/apache/htdocs/zabbix/conf/
drwxr-xr-x. 3 apache apache 117 Sep  1 23:41 /usr/local/apache/htdocs/zabbix/conf/
//恢復zabbix/conf目錄的許可權為755

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

-Advertisement-
Play Games
更多相關文章
  • “什麼是Java虛擬機,為什麼要使用”。 最近一個1年Java開發經驗的同學去面試阿裡,遇到這個問題向我求助。 大家好,我是Mic,一個工作14年的Java程式員。 那麼,這個問題,面試官希望考察什麼呢? 問題解析 Java虛擬機,是Java應用程式運行的平臺。 很多初學者,第一步基本上都是學習怎麼 ...
  • 大家好啊,我是字母哥,今天寫一篇關於etcd的文章,其實網上也有很多關於etcd的介紹,我就簡明扼要,總結提煉,期望大家通過這一篇文章掌握etcd的核心知識以及編碼技能! 本文首先用大白話給大家介紹一下etcd是什麼?這部分內容網上已經有很多了。 etcd有哪些應用場景?這些應用場景的核心原理是什麼 ...
  • 1、工廠模式 在各種BeanFactory以及ApplicationContext創建中都有用到 2、模板模式 在各種BeanFactory以及ApplicationContext創建中都有用到 3、代理模式 SpringAOP利用了AspectJ AOP實現的,Aspectj AOP的底層用的就是 ...
  • 背景: 若依前後端分離項目(vue+springboot+springmvc+mybatis),redis。 需求: 藉助redis實現對IP限流。 實現: 參考 https://blog.csdn.net/qq_33762302/article/details/116258617 代碼如下: IP ...
  • 業務場景: 近期寫的一個項目,整個項目採用的DDD(領域驅動)設計,所以剛開始設計的時候就將各個業務以聚合根的方式進行劃分,以該業務場景為例,整體的業務簡述為,當客戶進行付款以後,創建一個付款單,然後由財務手動將付款單與發貨單進行賬務沖抵和關聯,同時還需要針對付款的客戶及企業的餘額進行相應的變動,所 ...
  • 寫了這麼久,代碼沒有越寫越多,代碼量的數量級沒變,用SourceCounter代碼統計工具統計了一下,一共4000多行代碼。 ADO.NET換成Dapper後,我迷茫了,因為LiteSql做的工作變少了,它存在的意義就變小了,代碼量也變少了。 Dapper支持所有ADO.NET支持的資料庫,我用Da ...
  • 1. 前言 最近需要一個 WPF 的表盤控制項,之前 Cyril-hcj 寫過一篇不錯的博客 《WPF在圓上畫出刻度線》,裡面介紹了一些原理及詳細實現的代碼: double radius = BackEllipse.Width / 2; double min = 0; double max = 100 ...
  • 部署zabbix監控服務 什麼是zabbix zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 zabbix由2部分構成,zabbi ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...