文章目錄
一、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 1月 18 11:22 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r-- 1 root root 11787328 1月 18 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