Zibbix分佈式系統監控——理論+實驗超詳細!!!

一、zabbix簡介

1.什麼是zibbix?

zabbix又稱分佈式系統箭筒,是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。

2.zibbix的作用

zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

3.zibbix的組成

zabbix由2部分構成,zabbix server與可選組件zabbix agent。

4.zibbix的應用場景

zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。

5.zibbix的特點

  • 安裝與配置簡單,學習成本低
  • 支持多語言(包括中文)
  • 免費開源
  • 自動發現服務器與網絡設備
  • 分佈式監視以及WEB集中管理功能
  • 可以無agent監視
  • 用戶安全認證和柔軟的授權方式
  • 通過WEB界面設置或查看監視結果
  • email等通知功能
  • 加粗樣式等等

6.zabbix主要功能

  • CPU負荷
  • 內存使用
  • 磁盤使用
  • 網絡狀況
  • 端口監視
  • 日誌監視

7.zabbix重要組件

1.zabbix server

  • 負責接收agent發送的報告信息的核心組件,所有配置、統計數據及操作數據都由它組織進行

2.database storage
專用於存儲所有配置信息,以及由zabbix收集的數據

3.web interface

  • zabbix的GUI接口

4.proxy

  • 可選組件,常用於監控節點很多的分佈式環境中,代理server收集部分數據轉發到server,可以減輕server的壓力

5.agent

  • 部署在被監控的主機上,負責收集主機本地數據如cpu、內存、數據庫等數據發往server端或proxy端

8.監控系統運行流程

  • agentd需要安裝到被監控的主機上,它負責定期收集各項數據,併發送到zabbix server端
  • zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖

這裏agentd收集數據分爲主動和被動兩種模式

  • 主動:agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的數據提交給server/proxy
  • 被動:server向agent請求獲取監控項的數據,agent返回數據

二、部署zabbix監控

2.1 環境

zabbix-server:192.168.1.10  #監控端
zabbix-client:192.168.1.11    #被監控端
2臺服務器先關閉防火牆、核心防護
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0

2.2 監控端配置

2.2.1 部署LAMP架構

先確定能否上網

[root@zabbix-client ~]# ping www.baidu.com

在這裏插入圖片描述
安裝repo鏡像包

[root@zabbix-server yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@zabbix-server yum.repos.d]# yum clean all
[root@zabbix-server yum.repos.d]# yum makecache 

在yum目錄下,加入repo鏡像包
在這裏插入圖片描述
安裝依賴包

[root@zabbix-server ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

修改apache和php的配置文件

[root@zabbix-server ~]# vi /etc/httpd/conf/httpd.conf
95  ServerName www.example.com:80        #  開啓域名,域名可更改或不更改
164  DirectoryIndex index.php index.html  #  添加 index.php 
[root@zabbix-server ~]# vi /etc/php.ini 
878  date.timezone = PRC     
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb

[root@zabbix-server ~]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      75551/httpd    

[root@zabbix-server ~]# netstat -anpt | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     76482/mysqld   

初始化數據庫

[root@zabbix-server ~]# mysql_secure_installation

Enter current password for root (enter for none):  #讓你輸入root的當前密碼(爲none輸入) 直接回車就行了

Set root password? [Y/n] y
New password:                      # 設置密碼爲:123456(自己設)
Re-enter new password:             # 123456
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y     # 移除匿名賬號
 ... Success!

Disallow root login remotely? [Y/n] n    # 不允許 root 賬號遠程登錄
 ... skipping.

Remove test database and access to it? [Y/n] y     # 移除 test 數據庫,空數據庫
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y       # 重置權限列表
 ... Success!

測試是否可以登錄數據庫

[root@zabbix-server ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> exit
Bye

測試php網頁是否開啓

[root@zabbix-server ~]# vi /var/www/html/index.php
<?php
phpinfo();
?>

物理機測試php網頁
在這裏插入圖片描述
創建數據庫監控信息表並授權

[root@zabbix-server ~]# mysql -uroot -p123456

# 數據庫監控信息的表叫 zabbix ,字符集爲 utf8 , 每一個字符區分大小寫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)


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

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

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

驗證php與mysql的聯動性(測試zabbix用戶是否能夠登陸數據庫)

[root@zabbix-server ~]# vi /var/www/html/index.php 
<?php
$link=mysql_connect('192.168.1.10','zabbix','admin123');
if($link) echo "<h1>Sueecee!!!</h1>";
else echo "Fail!!!";
mysql_close();
?>

在這裏插入圖片描述

2.2.2 部署zabbix服務器

添加zabbix源

  • 阿里源——系統源
[root@zabbix-server ~]# vi /etc/yum.repos.d/CentOS-Base.repo
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
  • 阿里源——zabbix源
[root@zabbix-server ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgcheck=0

建立緩存

[root@zabbix-server ~]# yum makecache

安裝 zabbix 依賴包

[root@zabbix-server ~]# yum install -y php-mbstring php-bcmath

下載zabbix源,安裝zabbix服務端軟件

[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

安裝zabbix server(服務),Web前端,agent(監控),nogpgcheck(密鑰)

[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent --nogpgcheck                                                               

導入 zabbix 監控數據庫

[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 zabbix  

修改 zabbix 配置文件

[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
DBPassword=admin123               # 124
[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf 
php_value date.timezone Asia/Shanghai           # 20
[root@zabbix-server ~]# vi /usr/share/zabbix/include/defines.inc.php 
:%s /graphfont/kaiti/g       #直接輸入,替換成楷體

在這裏插入圖片描述
從微軟系統C:\Windows\Fonts下複製相應的字體文件到 /usr/share/zabbix/assets/fonts
在這裏插入圖片描述
因爲上面定義的字體就是楷體,小寫的,所以在目錄中注意字體名稱要對應配置文件改爲kaiti.ttf,且注意大小寫
在這裏插入圖片描述



[root@zabbix-server ~]# cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]# ll
總用量 11512
lrwxrwxrwx 1 root root       33 118 11:22 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r-- 1 root root 11787328 118 12:11 kaiti.ttf
[root@zabbix-server fonts]# mv SIMKAI.TTF kaiti.ttf      #修改名字
[root@zabbix-server fonts]# ll

開啓zabbix服務及監聽端口

[root@zabbix-server ~]# systemctl start zabbix-server.service 
[root@zabbix-server ~]# systemctl enable zabbix-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      25598/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      25598/zabbix_server 

重啓apache服務

[root@zabbix-server ~]# systemctl restart httpd

訪問zabbix安裝及登錄
登錄
http://192.168.1.10/zabbix/setup.php
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
進入數據庫查看監控賬戶








[root@zabbix-server ~]# mysql -uroot -p123456  進入數據庫

MariaDB [(none)]> show databases;   查看所有庫
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> use zabbix;   進入zabbix表

MariaDB [zabbix]> select * from users;   #查看users表可以看到只有2個用戶
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
| userid | alias | name   | surname       | passwd                           | url | autologin | autologout | lang  | refresh | type | theme   | attempt_failed | attempt_ip | attempt_clock | rows_per_page |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
|      1 | Admin | Zabbix | Administrator | 5fce1b3e34b520afeffb37ce08c7cd66 |     |         1 | 0          | en_GB | 30s     |    3 | default |              0 |            |             0 |            50 |
|      2 | guest |        |               | d41d8cd98f00b204e9800998ecf8427e |     |         0 | 15m        | en_GB | 30s     |    1 | default |              0 |            |             0 |            50 |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
2 rows in set (0.00 sec)

在這裏插入圖片描述
登錄成功!
在這裏插入圖片描述

2.3 被監控端配置

配置yum源

[root@zabbix-client ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

安裝zabbix軟件

[root@zabbix-client ~]# yum -y install zabbix-agent --nogpgcheck

修改zabbix-agent客戶端配置

[root@zabbix-client ~]# vi /etc/zabbix/zabbix_agentd.conf
98  Server=192.168.1.10                   #服務端 ip
139  ServerActive=192.168.1.10            #服務端 ip
123  StartAgents=3                      #開啓被動模式
150  Hostname=client1                   #客戶端在服務端的名字

開啓客戶端zabbix-agent服務

[root@zabbix-client ~]# systemctl start zabbix-agent
[root@zabbix-client ~]# systemctl enable zabbix-agent
[root@zabbix-client ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      35590/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      35590/zabbix_agentd 

在服務器上修改代理文件、並開啓服務

[root@zabbix-server ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.10                    # 98
ServerActive=192.168.1.10               # 139
Hostname=server                      # 150

開啓服務

[root@zabbix-server ~]# systemctl start zabbix-agent
[root@zabbix-server ~]# systemctl enable zabbix-agent

[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      91639/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      25598/zabbix_server 
tcp6       0      0 :::10050                :::*                    LISTEN      91639/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      25598/zabbix_server 

將服務端監控頁面換成中文
在這裏插入圖片描述
修改完後刷新頁面
在這裏插入圖片描述
在這裏插入圖片描述



2.4 服務端創建被監控主機

開始在服務器zabbix界面創建監控的客戶端
創建第一個
在這裏插入圖片描述
在這裏插入圖片描述
創建第二個
在這裏插入圖片描述
創建的被監控主機
在這裏插入圖片描述






2.5 創建監控主機的內容

第一臺模板
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
第二臺模板
同第一臺模板操作相同
添加完後
在這裏插入圖片描述








2.6 郵箱報警

在服務器上配置

[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# vi /etc/mail.rc     # 配置最後面添加 
set from=2537784661@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2537784661@qq.com
set smtp-auth-password=xcgegyujqyxgecia        # QQ 郵箱授權碼
set smtp-auth=login

編寫發郵件腳本

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/  # 必須在此目錄下創建腳本
[root@zabbix-server alertscripts]# vi mailx.sh
#!/bin/bash
#send mail
message=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${message}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

tr:刪除,字符轉換
\r\n:換行
2>&1:混合輸出

[root@zabbix-server alertscripts]# touch /tmp/mailx.log
[root@zabbix-server alertscripts]# cd

授權

[root@zabbix-server ~]# chown -R zabbix.zabbix /tmp/mailx.log   #設置日誌文件屬主屬組
[root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh  #授權腳本
[root@zabbix-server ~]# chown -R zabbix.zabbix /usr/lib/zabbix/   #設置腳本屬主屬組

腳本測試

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# ./mailx.sh 2537784661@qq.com "server mail" "success"
# server mail 爲 主題、success 爲內容

在這裏插入圖片描述

2.7 網頁報警設置

創建報警類型
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
用戶添加報警媒介
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述






2.8 創建動作觸發報警

創建動作
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
創建設置操作
在這裏插入圖片描述
在這裏插入圖片描述





2.9 恢復操作

在這裏插入圖片描述
在這裏插入圖片描述
最後在動作頁面點擊添加完成操作設置
在這裏插入圖片描述


2.10 監控郵箱設置測試

1.問題
客戶機網卡故障

2.測試
客戶端的網卡故障停止服務
先查看Admin用戶的報警媒介是否存在,消失重新添加
在這裏插入圖片描述
在server上
重啓zabbix服務




[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-server ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      90778/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      57098/zabbix_server 
tcp6       0      0 :::10050                :::*                    LISTEN      90778/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      57098/zabbix_server 

在客戶端,網卡關閉,可以監控到ICMP項目有問題,觸發報警

[root@zabbix-client ~]# ifconfig ens33 down

在監測–問題頁面進行查看
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


2.11 恢復網卡查看

[root@client1 ~]# ifconfig ens33 up

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章