Zabbix部署企業監控

一、概述
Zabbix 是一個企業級的分佈式開源監控方案。Zabbix是一款能夠監控各種網絡參數以及服務器健康性和完整性的軟件。Zabbix使用靈活的通知機制,允許用戶爲幾乎任何事件配置基於郵件的告警。這樣可以快速反饋服務器的問題。基於已存儲的數據,Zabbix提供了出色的報告和數據可視化功能。
Zabbix是一個高度集成的網絡監控解決方案,一個簡單的安裝包中提供多樣性的功能。
Zabbix監控原理:
Agentd安裝在被監控的主機上,Agent負責定期收集客戶端本地各項數據,併發送至Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB可以看到數據在前端展現圖像。當Zabbix監控某個具體的項目,該項目會設置一個觸發器閾值,當被監控的指標超過該觸發器設定的閾值,會進行一些必要的動作,動作包括:發送信息(郵件、微信、短信)、發送命令(SHELL 命令、Reboot、Restart、Install等)。
二、結構
Zabbix由幾個主要的軟件組件構成,這些組件的功能如下。
Server
Zabbix server 是監控代理程序報告系統可用性、系統完成整性和統計信息的核心組件
Zabbix Server負責接收agent發送的報告信息的核心組件,是所有配置信息、統計信息和操作數據的核心存儲器。
數據庫存儲
Database Storage:所有配置信息和Zabbix收集到的數據都被存儲在數據庫中。
Web界面
Web Interface:Zabbix的GUI接口,通常與Server運行在同一臺主機上;
爲了從任何地方和任何平臺都輕鬆的訪問Zabbix,Zabbix提供了基於Web的界面。該界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server運行在同一臺物理機器上。
如果使用SQLite,Zabbix Web界面必須要跟Zabbix Server運行在同一臺物理機器上。
Proxy代理服務器
Zabbix proxy 可以替Zabbix Server收集性能和可用性數據。Proxy代理服務器是Zabbix軟件可選擇部署的一部分;當然,Proxy代理服務器可以幫助單臺Zabbix Server分擔負載壓力。
Agent監控代理
Zabbix agent監控代理部署在監控目標上,能夠主動監控本地資源和應用程序,並將收集到的數據報告給Zabbix Server。

五個程序的功能如下:
zabbix server:zabbix服務端守護進程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的數據最終都提交給zabbix server;
zabbix agentd:客戶端守護進程,負責收集客戶端數據,例如:收集cpu負載、內存、硬盤使用情況等;
zabbix proxy:zabbix分佈式代理守護進程,通過大於500臺主機,需要進行分佈式監控架構部署;
zabbix get:zabbix數據接收工具,單獨使用的命令,通常在server或者proxy端執行獲取遠程客戶端信息的命令;
zabbix sender:zabbix數據發送工具,用戶發送數據給server或proxy端,通常用戶耗時比較長的檢查。

Zabbix監控系統包括很多監控概念
主機(host):                     被監控的網絡設備,可以寫IP或者DNS;
主機組(host group):        主機組用於管理主機,可以批量設置權限;
監控項(item):                 具體監控項,items值由獨立的keys進行識別;
觸發器(trigger):             爲某個items設置觸發器,達到觸發器會執行action動作;
事件(event):                  例如達到某個觸發器,稱之爲一個事件;
動作(action):                 對於特定事件事先定義的處理方法,默認可以發送信息及發送命令;
報警升級(escalation):     發送警報或執行遠程命令的自定義方案,如隔5分鐘發送一次警報,共發送5次等。
媒介(media):                 發送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification):         通過設置的媒介向用戶發送的有關某事件的信息;
遠程命令                達到觸發器,可以在被監控端執行命令;
模板(template):              可以快速監控被監控端,模塊包含:item、trigger、graph、screen、application;
web場景(web scennario)用於檢測web站點可用性,監控HTTP關鍵詞;
web前端(frontend):       Zabbix的web接口;
圖形(graph)                    監控圖像;
屏幕(screens)                  屏幕顯示;
幻燈(slide show)             幻燈顯示

四、架構體系
Zabbix體系架構圖

Proxy工作原理

一、服務端配置
1.更新yum倉庫,Zabbix的安裝
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2、yum 安裝最新版本 mariadb
yum -y install mariadb mariadb-server
ls /etc/yum.repos.d
yum clean all
yum makecache
yum repolist
3、安裝
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql
4、修改一下配置文件——1、 vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON #跳過主機名解析
innodb_file_per_table = ON #
innodb_buffer_pool_size = 256M #緩存池大小
max_connections = 2000 #最大連接數
log-bin = master-log #開啓二進制日誌
重啓我們的數據庫服務:systemctl restart mariadb
mysql_secure_installtion #初始化mariadb(可選)
5、創建數據庫並授權賬號
mysql
MariaDB [(none)]> create database zabbix character set=utf8;
MariaDB [(none)]> grant all on zabbix.* to zbxuser@'192.168.11.%' identified by 'keer';
MariaDB [(none)]> flush privileges;
systemctl restart mariadb
6、導入表
rpm -ql zabbix-server-mysql
cp /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz ./
gzip -d create.sql.gz
ls && head create.sql
mysql -uroot -p0 zabbix < create.sql
導入以後,進去數據庫查看一下:
mysql -uroot -p0
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;

7、配置 server 端
cd /etc/zabbix/ && ls
cp zabbix_server.conf{,.bak}
vim zabbix_server.conf
ListenPort=10051 #默認監聽端口
SourceIP=192.168.11.11 #發採樣數據請求的IP
DBHost=192.168.11.11 #數據庫對外的主機
DBName=zabbix #數據庫名稱
DBUser=zbxuser #數據庫用戶
DBPassword=keer #數據庫密碼
DBPort=3306 #數據庫啓動端口
systemctl restart zabbix-server.service
ss -nutl |grep 10051

8、配置 web GUI
vim /etc/php.ini
date.timezone = Asia/Shanghai php配置文件中設置時區
systemctl restart httpd.service
ss -nutl
使用瀏覽器訪問192.168.11.11/zabbix

二、配置 agent 端
當我們把監控端配置啓動以後,我們需要來設置一下我們的監控端,我們在被監控的主機安裝好agent,設置好
他的server,並把他添加到server端,就能將其納入我們的監控系統中去了。
1.安裝 zabbix
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@node1 ~]# wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@node1 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
[root@node1 ~]# yum -y install zabbix-agent zabbix-sender
2.修改配置文件
對配置文件做一個備份,然後去修改配置文件:
[root@node1 ~]# cd /etc/zabbix/
[root@node1 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@node1 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@node1 zabbix]# vim zabbix_agentd.conf
Server=192.168.11.11 #指明服務器是誰的
ListenPort=10050 #自己監聽的端口
ListenIP=0.0.0.0 #自己監聽的地址,0.0.0.0表示本機所有地址
StartAgents=3 #優化時使用的
ServerActive=192.168.11.11 #主動監控時的服務器
Hostname=node12 #自己能被server端識別的名稱
systemctl restart zabbix-server.service
ss -nutl |grep 10051

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