Zabbix 部署配置
阿新 • • 發佈:2020-09-08
監控基本概述
主要的監控工具
1.CACTI:網路監控,Cacti是一套基於PHP,MySQL,SNMP 及 RRDTool 開發的網路流量監測圖形分析工具
2.NAGIOS:系統監控,很久之前使用的,需要人為定義,沒有圖形,沒有辦法查詢歷史
3.ZABBIX:分散式監控
4.Open-falcon:小米監控產品,開源的
5.Prometheus:普羅米修斯,監控 docker,K8S
6.lepus:天兔,資料庫監控
主要的監控內容
1.公有云:雲監控 2.硬體監控:CPU 溫度,主機板溫度,磁碟,網絡卡,風扇轉速 3.系統監控:CPU,記憶體,網路,磁碟剩餘 4.服務監控: 1)MySQL:主從複製是否有延遲(zabbix 監控模板) 2)Redis:主從複製是否有延遲 監控思路: Zabbix 沒有固定模板,可以在主庫中 set 一個 key 為時間戳,然後從庫會同步這個時間戳(動態),寫指令碼時時獲取這兩個時間戳,做對比。 3)NFS:磁碟掛載狀況 4)Tomcat:JVM 監控,老年代、新生代、永久帶、full-gc、垃圾回收 5)Rsync 的同步情況,MD5 校驗檔案是否被篡改 5.Web 頁面監控:請求時間,響應時間,載入時間,nginx 狀態碼監控,pv,uv,ip 6.網路監控:網絡卡流量(出入流量),貸款,監控寶 7.業務監控: 1)URL 監控 2)API 監控:針對業務的介面 basic.action 3)Nginx 狀態碼 4)Tomcat日誌監控 8.日誌監控:ELK,第三方日誌易 9.安全監控:Firewalld,WAF,牛盾雲,安全狗 10.容器監控:Prometheus,普羅米修斯
監控命令
監控CPU
w top htop uptime glances ps
# 不管用什麼命令監控,檢視CPU,我們都必須瞭解,系統的使用者態和核心態
us: 使用者態 跟使用者的操作有關35%
sy: 核心態 跟核心的處理有關65%
id: CPU空閒
# 當我們執行一個命令的時候,很快能出來結果,佔用使用者態和核心態的時間
[root@web02 ~]# time ls
real 0m0.002s 真實執行時間
user 0m0.001s 使用者執行時間
sys 0m0.001s 系統執行時間
監控記憶體
free glances top htop
監控磁碟
df glances iotop iostat dstat
#以兆為單位,每秒執行一次,執行10次
[root@web02 ~]# iostat -dm 1 10
網路監控
glances ifconfig iftop ip route
nethogs 該命令可以檢視某個程序所使用的流量
TCP 埠狀態監控
# TCP 埠狀態一共 11 種
netstat -ant
ss -ant
監控記憶體指令碼例項
[root@zabbix ~]# vim /scripts/free.sh #!/bin/bash Hostname_Ip=$(hostname)_$(hostname -I|awk '{print $2}') Date=$(date +%F) while true do Mem_Free=$(free -m|awk '/^Mem/{print $NF}') Swap_used=$(free -m | awk '/^Swap/ {print $3}') if [ $Mem_Free -lt 100 -a $Swap_used -gt 100 ];then echo "$Date: $Hostname_Ip 記憶體可用量不足100M並且Swap空間佔用超過100M,記憶體當前剩餘: $Mem_Free,Swap空間使用達到: $Swap_used" fi sleep 5 done
指令碼監控,單臺伺服器或少量伺服器可以使用,但是遇到大型架構伺服器數量很多,使用該方法並不適用,所以我們要使用第三方工具進行監控 zabbix
Zabbix 安裝
Zabbix 架構
1.Zabbix agents 部署在被監控目標上,用於主動監控本地資源和應用程式,並將收集的資料傳送給 Zabbix server;
2.Zabbix server 是 Zabbix 軟體的核心元件,Agent 向其報告可用性、系統完整性資訊和統計資訊。server 也是儲存所有配置資訊、統計資訊和操作資訊的核心儲存庫;
3.資料庫:所有配置資訊以及 Zabbix 採集到的資料都被儲存在資料庫中;
4.Zabbix web 為了從任何地方和任何平臺輕鬆訪問 Zabbix ,我們提供了基於 Web 的介面,該介面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 執行在同一臺物理機器上;
5.Zabbix proxy 可以代替 Zabbix server 採集效能和可用性資料。Zabbix Proxy 在 Zabbix 的部署是可選部分;但是 Proxy 的部署可以很好的分擔單個 Zabbix server 的負載。
配置官方源安裝
配置官方源
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@zabbix ~]# ll /etc/yum.repos.d/
total 12
-rw-r--r--. 1 root root 2523 Jul 6 22:19 CentOS-Base.repo
-rw-r--r--. 1 root root 664 Jul 6 22:19 epel.repo
-rw-r--r-- 1 root root 633 Oct 7 2019 zabbix.repo
開啟倉庫
#Zabbix 前端需要額外的基礎安裝包。 您需要在執行 Zabbix 前端的系統中啟用可選 rpms 的軟體倉庫
#安裝命令
[root@zabbix ~]# yum install -y yum-utils
[root@zabbix ~]# yum-config-manager --enable rhel-7-server-optional-rpms
Loaded plugins: fastestmirror
安裝 Zabbix
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
第三方源安裝
配置第三方源
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
安裝 zabbix
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
安裝資料庫
[root@zabbix ~]# yum install -y mariadb-server
配置資料庫
[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# mysql
MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
配置 zabbix 連線資料庫
[root@zabbix ~]# grep "^DB" /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
匯入初始資料庫
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.24/create.sql.gz | mysql -u root -p zabbix
[root@zabbix ~]# mysql
MariaDB [(none)]> use zabbix
Database changed
MariaDB [zabbix]> show tables;
... ...
144 rows in set (0.00 sec)
啟動 zabbix 服務
[root@zabbix ~]# systemctl start zabbix-server.service
[root@zabbix ~]# systemctl enable zabbix-server.service
啟動 httpd
# 修改時區
[root@web02 ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
[root@zabbix ~]# systemctl start httpd
[root@zabbix ~]# systemctl enable httpd
web頁面訪問 zabbix
http://10.0.0.71/zabbix/index.php
# 按照流程配置
# 預設登入使用者名稱密碼:
Admin
zabbix
啟動 agent
[root@zabbix ~]# systemctl start zabbix-agent.service
監控一臺遠端主機
安裝zabbix客戶端
[root@web01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
配置客戶端
[root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.71
ServerActive=172.16.1.71
Hostname=web01
啟動客戶端
[root@web01 ~]# systemctl start zabbix-agent.service
[root@web01 ~]# systemctl enable zabbix-agent.service
#驗證啟動
[root@web01 ~]# netstat -lntp
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 39529/zabbix_agentd
Web 端配置監控
新增主機組 => 建立主機 => 選擇主機模板 => 新增主機
資料庫拆分
搭建新的資料庫
[root@db01 ~]# yum install -y mariadb-server
授權資料庫
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
[root@db01 ~]# mysql
MariaDB [(none)]> grant all on *.* to zabbix@'172.16.1.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
匯出源資料庫資料
[root@zabbix ~]# mysqldump -B zabbix > /tmp/zabbix.sql
將資料匯入新庫
[root@zabbix ~]# mysql -uzabbix -p -h172.16.1.51 < /tmp/zabbix.sql
Enter password:
修改 Zabbix-server 資料庫配置
[root@zabbix ~]# grep "^DB" /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=123
修改 Zabbix-web 資料庫配置
[root@zabbix ~]# vim /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
#修改資料庫地址
$DB['SERVER'] = '172.16.1.51';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
#修改遠端連線密碼
$DB['PASSWORD'] = '123';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Linux脫產9期';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
重啟訪問
[root@zabbix ~]# systemctl restart zabbix-server.service
停止舊庫
[root@zabbix ~]# systemctl stop mariadb