您好,登錄后才能下訂單哦!
監控系統及zabbix基礎(一)
===========================================================================
概述:
本章我們將介紹Linux中的監控系統,zabbix,具體內容如下:
監控系統概述及功能介紹;
zabbix系統架構,功能及其相關術語;
zabbix-server的安裝、配置和啟動;
zabbix-web的安裝、配置和啟動;
===========================================================================
1.監控系統介紹
★監控指標:
硬件:如:cpu使用率,內存空間等
軟件:軟件程序如:nginx,進程數量等
業務:并發在線數量,事物數量等
★監控系統具備的功能:
采樣:sensor(傳感器)
存儲:
數據:歷史數據、趨勢數據;
展示:用戶接口展示系統
報警:
★被監控對象:
主機、交換機、路由器、UPS、...
2.監控系統各功能介紹
★采樣:
周期性地獲取某個關注指標相關的數據;
☉監控系統采集數據通道:
◆ssh/telnet:遠程連接通道
◆agent:
master/agent架構
master:NMS(網絡管理系統)
◆IPMI:
智能平臺管理接口
◆SNMP:
Simple Network Management Protocol(簡單網絡管理協議)
版本:v1, v2c (community, public),v3
◆JMX:
Java Management extension(java管理擴展)
監控JVM:Java Virtual Machine
★存儲系統:
☉存儲數據
歷史數據:每次采樣的結果,保存時長較短;
趨勢數據:聚合數據,保存時長較長周期內的數據;
☉存儲系統:
★報警:
郵件、短信、微信
腳本實現
★展示:
WebGUI
GUI(圖形化界面)
APP
★開源監控項目:
cacti, nagios;
zabbix(所有功能都支持)
ganglia
1.版本和特性
★簡介
是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案;
zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。
★Version:
LTS:Long Time Support (長期維護的版本)
3.0版本就是長期維護的版本
★特性:
數據采樣機制:snmp, agent, ipmi, jmx;
報警:升級,步進
數據存儲:mysql/pgsql
展示:php程序
實時繪圖:graph, screen, slide show(幻燈片播放), map
支持監控模板
網絡自動發現
分布式監控
API:支持二次開發
2.zabbix系統架構、組件及相關術語
★Zabbix程序組件
☉Zabbix Server:
負責接收agent發送的報告信息的核心組件,所有配置、統計數據及操作數據均由其組織進行;
☉zabbix_database Storage:
專用于存儲所有配置信息,以及有zabbix收集的數據;MySQL/PGSQL
☉zabbix_web:
zabbix的GUI接口,通常與server運行在同一臺機器上;
☉zabbix_proxy:
可選組件,常用于分布式監控環境中,代理Server收集部分被監控數據并統一發往Server端;
☉zabbix_agentd
部署在被監控主機上,負責收集本地數據并發往Server端或者Proxy端;
☉zabbix_get:
命令行工具,測試向agent端發起數據采集請求;
☉zabbix_sender:
命令行,測試向server端發送數據;
☉zabbix_java_gateway:
java網關;
附圖1:
zabbix宏觀架構圖
附圖2
zabbix具體工作圖
★Zabbix常用術語(邏輯組件)
☉host(主機):
要監控的網絡設備,可由IP或DNS名稱指定;
☉host group(主機組):
主機的邏輯容器,可以包含主機和模板,但同一個組內的主機和模板不能互相鏈接;主機組通常在給用戶或用戶組指派監控權限時使用;
☉item(監控項):
一個特定監控指標的相關數據,這些數據來自于被監控對象;item是zabbix進行數據收集的核心,沒有item,將沒有數據;相對某監控對象來說,每個item都有"key"進行標識;
☉application(應用):
一組item的集合;
☉trigger(觸發器):
一個表達式,用于評估某監控對象的某特定item內所接收到的數據是否在合理范圍內,即閥值;接受到的數據大于閥值是,觸發器狀態將從OK轉變為Problem,當數據量再次回歸到合理范圍時,其狀態將從Problem轉換回OK;
☉event(事件):
即發生的一個值得關注的事件,例如觸發器的狀態轉變,新的agent或重新上線的agent的自動注冊等;
☉action(動作):
指對于特定事件事先定義的處理方法,通過包含操作(如發送通知)和條件(何時執行操作);
☉media(媒介):
發送通知的手段和通道,如Email、Jabber或SMS;
☉notification(通知):
通過選定的媒介向用戶發送的有關某事件的信息;
☉remote command(遠程命令):
預定義的命令,可在被監控主機處于某個特定條件下時自動執行;
☉escalation(報警升級):
發送警報或執行遠程命令的自定義方案,如每隔5min發送一次警報,共發送5次等;
☉template(模板):
用于快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接鏈接至單個主機;
☉web scennaro(web場景):
用于檢測web站點可用性的一個或多個http請求;
☉frontend(前端):
zabbix的web接口
☉圖形(graph)
☉屏幕(screens)
☉幻燈(slide show)
附圖3
zabbix邏輯架構:
1.安裝配置過程
★zabbix database
mysql> CREATE DATABASE zabbix CHARSET 'utf8';
mysql> GRANT ALL ON zabbix.* TO 'zbxuser'@'10.1.%.%' IDENTIFIED BY 'zbxpass';
★安裝服務器端
☉安裝
# yum install zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm
☉程序環境
配置文件:/etc/zabbix/zabbix_server.conf
Unit File:zabbix-server.service
☉導入數據庫腳本,以生成數據庫環境:
# gzip -d /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz
# mysql -uzbxuser -h227.0.0.1 -pzbxpass zabbix < /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql
注意:
zabbix 2的sql腳本有三個,需要依次導入;
★zabbix server配置啟動
演示:
操作環境:CentOS 7 虛擬機
------------------------------------------------------------------------------------------------------
1.設置zabbix database,創建一個數據庫,并授權一個用戶有權限連接并使用此數據庫
1)mariadb安裝,配置,及啟動
# 在CentOS 7 安裝mariadb數據庫,使用前要首先編輯其配置文件/etc/my.cnf,添加跳過名稱解析等 [root@centos7 ~]# vim /etc/my.cnf skip_name_resolve = ON innodb_file_per_table = ON # 啟動數據庫,可以設置開機自啟動 [root@centos7 ~]# systemctl start mariadb.service [root@centos7 ~]# systemctl enabled mariadb.service
2)創建zabbix database數據庫,并授權一個用戶可以遠程和本地登錄此數據庫;
[root@centos7 ~]# mysql -p134296 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix charset 'utf8'; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'10.1.%.%' IDENTIFIED BY 'zbxpass'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'127.0.0.1' IDENTIFIED BY 'zbxpass'; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mydb | | mysql | | performance_schema | | test | | ultrax | | zabbix | +--------------------+ 8 rows in set (0.08 sec)
----------------------------------------------------------------------------
2.安裝服務器端
1)下載zabbix相關的所有程序包
# 下面是我下載的zabbix 3.0.2版本的所有程序包 [root@centos7 zabbix]# ls zabbix-agent-3.0.2-1.el7.x86_64.rpm zabbix-proxy-sqlite3-3.0.2-1.el7.x86_64.rpm zabbix-web-japanese-3.0.2-1.el7.noarch.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm zabbix-sender-3.0.2-1.el7.x86_64.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm zabbix-java-gateway-3.0.2-1.el7.x86_64.rpm zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-web-pgsql-3.0.2-1.el7.noarch.rpm zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm zabbix-server-pgsql-3.0.2-1.el7.x86_64.rpm zabbix-proxy-pgsql-3.0.2-1.el7.x86_64.rpm zabbix-web-3.0.2-1.el7.noarch.rpm
2)安裝server端的程序包:zabbix-server-mysql和zabbix-get
[root@centos7 zabbix]# yum install ./zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm [root@centos7 ~]# rpm -ql zabbix-server-mysql # 查看生成的文件 /etc/logrotate.d/zabbix-server /etc/zabbix/zabbix_server.conf # 主配置文件 /usr/lib/systemd/system/zabbix-server.service # Unit File /usr/lib/tmpfiles.d/zabbix-server.conf /usr/lib/zabbix/alertscripts /usr/lib/zabbix/externalscripts /usr/sbin/zabbix_server_mysql /usr/share/doc/zabbix-server-mysql-3.0.2 /usr/share/doc/zabbix-server-mysql-3.0.2/AUTHORS /usr/share/doc/zabbix-server-mysql-3.0.2/COPYING /usr/share/doc/zabbix-server-mysql-3.0.2/ChangeLog /usr/share/doc/zabbix-server-mysql-3.0.2/NEWS /usr/share/doc/zabbix-server-mysql-3.0.2/README /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz # sql腳本,要導入數據庫中 /usr/share/man/man8/zabbix_server.8.gz /var/log/zabbix /var/run/zabbix
3)導入數據庫腳本,以生成數據庫環境
# 把sql腳本文件復制到本地,然后解壓縮 [root@centos7 ~]# cp /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql.gz ./zabbix/ [root@centos7 ~]# gzip -d zabbix/create.sql.gz # 解壓縮 [root@centos7 ~]# cd zabbix/ [root@centos7 zabbix]# ls create.sql # 解壓后的文件
# 導入數據庫腳本 [root@centos7 ~]# mysql -uzbxuser -h227.0.0.1 -pzbxpass zabbix < zabbix/create.sql # 登錄zabbix數據庫,查看生成的表,確定沒有問題 [root@centos7 ~]# mysql -uzbxuser -h227.0.0.1 -pzbxpass Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zabbix | +--------------------+ 3 rows in set (0.00 sec) MariaDB [(none)]> use zabbix; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [zabbix]> show tables; #為了節省空間我這里沒有列出所有的表 +----------------------------+ | Tables_in_zabbix | +----------------------------+ | acknowledges | | actions | | alerts | | application_discovery | | application_prototype | | application_template | | applications | | auditlog | | auditlog_details | | autoreg_host | | conditions | | config | | dbversion | | dchecks | | dhosts | | drules | | dservices | | escalations | +----------------------------+
------------------------------------------------------------------------------------------------------
3.zabbix server配置啟動
1)修改配置文件/etc/zabbix/zabbix_server.conf
[root@centos7 ~]# cd /etc/zabbix/ [root@centos7 zabbix]# ls zabbix_server.conf [root@centos7 zabbix]# cp zabbix_server.conf{,.bak} # 備份配置文件
[root@centos7 zabbix]# grep "^####" zabbix_server.conf # 獲取配置段信息 ############ GENERAL PARAMETERS ################# ############ ADVANCED PARAMETERS ################ ####### LOADABLE MODULES ####### ####### TLS-RELATED PARAMETERS ####### [root@centos7 zabbix]# vim zabbix_server.conf DBHost=10.1.252.153 DBName=zabbix DBUser=zbxuser DBPassword=zbxpass # 其余的配置,如端口,socket這里使用默認的就可以
2)最后啟動服務,但是這里要注意一個問題,就是zabbix要求trousers的程序包版本必須要在0.3.12才可以啟動,如果小于的話很可能會啟動不了;
[root@centos7 zabbix]# rpm -q trousers trousers-0.3.13-1.el7.x86_64 # 啟動服務,查看端口10051 [root@centos7 zabbix]# systemctl start zabbix-server.service [root@centos7 zabbix]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 50 *:3306 *:* LISTEN 0 128 *:22 *:* LISTEN 0 128 127.0.0.1:631 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 127.0.0.1:6015 *:* LISTEN 0 25 *:514 *:* LISTEN 0 128 *:10051 *:*
注意:
zabbix-server服務的啟動要依賴于數據庫mysql,所以,一定要確保mysql已經啟動,再啟動zabbix-server。
如上,就是整個zabbix-server的配置啟動過程...
1.安裝配置過程
1.解決依賴關系
# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
2.安裝web GUI
# yum install zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm
3.配置php時區參數
php.ini
/etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
4.啟動web服務
# systemctl start httpd.service
5.訪問web
http://HOST/zabbix
安裝后生成的配置文件:/etc/zabbix/web/zabbix.conf.php
安裝后默認登錄的管理員/密碼:admin/zabbix
6.菜單:
Monitoring
Inventory
Reports
Configuration
Administration
演示:
環境:
zabbix web的配置可以在另外一臺主機上配置,也可以和zabbix-server配置在同一臺主機,這里我先配置在同一臺CentOS 7 的主機之上
-----------------------------------------------------------------------------------------------------
1.構建lamp環境,安裝相應的程序包解決依賴關系
[root@centos7 ~]# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
--------------------------------------------------------------------------------------------------------------------------------------
2.安裝web GUI
[root@centos7 zabbix]# pwd /root/zabbix [root@centos7 zabbix]# ls create.sql zabbix-proxy-pgsql-3.0.2-1.el7.x86_64.rpm zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-agent-3.0.2-1.el7.x86_64.rpm zabbix-proxy-sqlite3-3.0.2-1.el7.x86_64.rpm zabbix-web-japanese-3.0.2-1.el7.noarch.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm zabbix-sender-3.0.2-1.el7.x86_64.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm zabbix-java-gateway-3.0.2-1.el7.x86_64.rpm zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-web-pgsql-3.0.2-1.el7.noarch.rpm zabbix-proxy-mysql-3.0.2-1.el7.x86_64.rpm zabbix-server-pgsql-3.0.2-1.el7.x86_64.rpm [root@centos7 zabbix]# yum install ./zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm
-----------------------------------------------------------------------------
3.配置時區,既可以在php.ini中配置,也可以在/etc/httpd/conf.d/zabbix.conf中配置
[root@centos7 conf.d]# pwd /etc/httpd/conf.d [root@centos7 conf.d]# vim zabbix.conf php_value date.timezone Asia/Shanghai
------------------------------------------------------------------------------------------------------------------
4.啟動web服務,查看80端口
~]# systemctl start httpd.service
------------------------------------------------------------------------------------------------------------------
5.訪問web
1)在瀏覽器中打開,第一次需要安裝zabbix,步驟如下:
2)點擊下一步
3)填寫數據庫相關的信息
4)可選填的信息,可以直接跳過
5)顯示我們的定義的信息,沒問題點下一步
6)提示安裝完成,并自動生成了zabbix-web的配置文件,如果以后要修改其配置到相應路徑下的配置文件中修改即可
7)以管理員賬戶登錄(默認管理員為admin,密碼為zabbix)
如下,就為默認的zabbix的控制面板
8)更改為中文
進入主頁面:下面進行,將語言改為中文。
[root@localhost ~]# vim /usr/share/zabbix/include/locales.inc.php
找到第55行,將false改為true
點擊zabbix右上角小人,進行修改
9)中文亂碼問題:
zabbix對中文支持不是太好,會出現亂碼問題,所以從Windows中找到字體包(運行--->fonts)
復制字體到 /usr/share/zabbix/fonts,并給予其執行權限;
修改 /usr/share/zabbix/include/defines.inc.php 如下:
展示如下:
============================================================================
注意:
1)我們還授權了本地(127.0.0.1)登錄,如果要想使用本地登錄,就需要修改zabbix-server的配置文件/etc/zabbix/zabbix_server.conf 和安裝后生成web的配置文件,/etc/zabbix/web/zabbix.conf.php,把其對應的數據庫主機改為127.0.0.1即可。
zabbix-server的配置文件;
zabbix-web的配置文件;
如上,就是整個zabbix-web端的整個安裝配置過程...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。