zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。
zabbix agent須要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操做系統有關的內存,CPU等信息的收集。
zabbix server能夠單獨監視遠程服務器的服務狀態;同時也能夠與zabbix agent配合,能夠輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),能夠與SNMP軟件(例如:net-snmp)等配合使用。php
Zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
agent端:主機經過安裝agent方式採集數據。前端
zabbix的主要特色:java
Zabbix主要功能:
node
一個監控系統運行的大概的流程是這樣的:
zabbix agent須要安裝到被監控的主機上,它負責按期收集各項數據,併發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展示和繪圖。這裏agent收集數據分爲主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。mysql
[root@wlw ~]# yum -y install net-snmp-devel libevent-devel [root@wlw ~]# cd /usr/src/ [root@wlw src]# ls apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8 apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz [root@wlw src]# rz [root@wlw src]# ls apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8 apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz zabbix-3.4.12.tar.gz [root@wlw src]# tar xf zabbix-3.4.12.tar.gz [root@wlw src]# cd [root@wlw ~]# groupadd -r zabbix [root@wlw ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix [root@wan ~]# source /etc/profile.d/mysql.sh [root@wan ~]# mysql -uroot -pwlw123! mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.25 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected (0.01 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ' wlw123!'; Query OK, 0 rows affected, 2 warnings (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye [root@wan ~]# cd /usr/src/zabbix-3.4.12/database/mysql/ [root@wan mysql]# ls data.sql images.sql schema.sql [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < schema.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < images.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < data.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan zabbix-3.4.12]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 [root@wan zabbix-3.4.12]# make install [root@wan zabbix-3.4.12]# cd [root@wan ~]# ls /usr/local/etc/ zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d [root@wan ~]# vim /usr/local/etc/zabbix_server.conf [root@wan ~]# zabbix_server [root@wan ~]# zabbix_agentd [root@wan ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:10051 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 80 :::3306 :::*
1:重要組件
zabbix由如下幾個組件部分構成:linux
注:zabbix node也是 zabbix server的一種 。
2:常見進程
默認狀況下zabbix包含5個程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另一個zabbix_java_gateway是可選,這個須要另外安裝。下面來分別介紹下他們各自的做用。
(1)zabbix_agentd:
客戶端守護進程,此進程收集客戶端數據,例如cpu負載、內存、硬盤使用狀況等。
(2)zabbix_get
zabbix工具,單獨使用的命令,一般在server或者proxy端執行獲取遠程客戶端信息的命令。一般用戶排錯。例如在server端獲取不到客戶端的內存數據,咱們可使用zabbix_get獲取客戶端的內容的方式來作故障排查。
(3)zabbix_sender
zabbix工具,用於發送數據給server或者proxy,一般用於耗時比較長的檢查。不少檢查很是耗時間,致使zabbix超時。因而咱們在腳本執行完畢以後,使用sender主動提交數據。
(4)zabbix_server
zabbix服務端守護進程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的數據最終都是提交到server
備註:固然不是數據都是主動提交給zabbix_server,也有的是server主動去取數據。
(5)zabbix_proxy
zabbix代理守護進程。功能相似server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到server裏。爲何要用代理?代理是作什麼的?賣個關子,請繼續關注運維生存時間zabbix教程系列。
(6)zabbix_java_gateway
zabbix2.0以後引入的一個功能。顧名思義:Java網關,相似agentd,可是隻用於Java方面。須要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到server或者proxy。ios
在實際監控架構中,zabbix根據網絡環境、監控規模等 分了三種架構: server-client 、master-node-client、server-proxy-client三種 。
1:server-client架構
也是zabbix的最簡單的架構,監控機和被監控機之間不通過任何代理 ,直接由zabbix server和zabbix agentd之間進行數據交互。適用於網絡比較簡單,設備比較少的監控環境 。
2:server-proxy-client架構
其中proxy是server、client之間溝通的一個橋樑,proxy自己沒有前端,並且其自己並不存放數據,只是將agentd發來的數據暫時存放,然後再提交給server 。該架構常常是和master-node-client架構作比較的架構 ,通常適用於跨機房、跨網絡的中型網絡架構的監控。
3:master-node-client架構
該架構是zabbix最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境 。每一個node同時也是一個server端,node下面能夠接proxy,也能夠直接接client 。node有自已的配置文件和數據庫,其要作的是將配置信息和監控數據向master同步,master的故障或損壞對node其下架構的完整性。
其實zabbix作的仍是挺人性化的,給了咱們下載地址:http://repo.zabbix.com/ 裏面能夠選不少版本,但這裏就給你們提供一個目前最新版本4.2的部署及添加客戶端方式。c++
zabbix配置文件有兩種:web
參數 做用 LogFile 設置服務端日誌文件存放路徑 ListenIP 設置服務端監聽IP ListenPort 設置服務端監聽的端口號 PidFile 設置服務端進程號文件存放路徑 DBHost 指定zabbix的數據庫服務器IP DBName 指定zabbix使用的數據庫庫名 DBUser 指定zabbix數據庫登陸用戶 DBPassword 指定zabbix數據庫登陸密碼 DBPort 指定zabbix數據庫端口號 User 設置zabbix以什麼用戶的身份運行 AlertScriptsPath 設置告警腳本存放路徑 ExternalScripts 外部腳本存放路徑
環境說明:sql
環境 | IP | 要安裝的應用 |
---|---|---|
服務器t | 192.168.66.128 | lamp架構zabbix serverzabbix agent |
客戶端 | 192.168.66.130 | zabbix agent |
由於zabbix是用php語言開發的,因此必須先部署lamp架構,使其可以支持運行php網頁
安裝依賴包(lamp安裝見個人lamp那篇博客,這裏腳本安裝好了) [root@wlw ~]# yum -y install net-snmp-devel libevent-devel //下載zabbix [root@wlw ~]# cd /usr/src/ [root@wlw src]# ls apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8 apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz [root@wlw src]# rz [root@wlw src]# ls apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8 apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz zabbix-3.4.12.tar.gz //解壓 [root@wlw src]# tar xf zabbix-3.4.12.tar.gz [root@wlw src]# cd //建立zabbix用戶和組 [root@wlw ~]# groupadd -r zabbix [root@wlw ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix [root@wan ~]# source /etc/profile.d/mysql.sh //配置zabbix數據庫 [root@wan ~]# mysql -uroot -pwlw123! mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.25 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected (0.01 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ' wlw123!'; Query OK, 0 rows affected, 2 warnings (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye //編譯安裝zabbix [root@wan ~]# cd /usr/src/zabbix-3.4.12/database/mysql/ [root@wan mysql]# ls data.sql images.sql schema.sql [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < schema.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < images.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < data.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@wan zabbix-3.4.12]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 [root@wan zabbix-3.4.12]# make install [root@wan zabbix-3.4.12]# cd [root@wan ~]# ls /usr/local/etc/ zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d [root@wan ~]# vim /usr/local/etc/zabbix_server.conf [root@wan ~]# zabbix_server [root@wan ~]# zabbix_agentd [root@wan ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:10051 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 80 :::3306 :::*
[root@wan ~]# ls /usr/local/etc/ zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server .conf.d //修改服務端配置文件 // 設置數據庫信息 [root@wan ~]# vim /usr/local/etc/zabbix_server.conf .... DBPassword=zabbix123! //設置數據庫鏈接密碼 //啓動zabbix_server和zabbix_agentd [root@wan ~]# zabbix_server [root@wan ~]# zabbix_agentd [root@wan ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:10051 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 80 :::3306 :::*
9.3.1zabbix web 界面安裝前配置
[root@wan ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini [root@wan ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini [root@wan ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini [root@wan ~]# [root@wan ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini [root@wan ~]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@wan ~]# cd /usr/src/zabbix-3.4.12 [root@wan zabbix-3.4.12]# ls aclocal.m4 ChangeLog config.log configure.ac frontends m4 man README AUTHORS compile config.status COPYING include Makefile misc sass bin conf config.sub database INSTALL Makefile.am missing src build config.guess configure depcomp install-sh Makefile.in NEWS upgrades [root@wan zabbix-3.4.12]# mkdir /usr/local/apache/htdocs/zabbix [root@wan zabbix-3.4.12]# cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/ [root@wan zabbix-3.4.12]# chown -R apache.apache /usr/local/apache/htdocs/ [root@wan zabbix-3.4.12]# cd [root@wan ~]# vim /etc/httpd24/httpd.conf [root@wan ~]# chmod 777 /usr/local/apache/htdocs/zabbix/conf [root@wan ~]# ll -d /usr/local/apache/htdocs/zabbix/conf drwxrwxrwx. 2 apache apache 81 7月 30 2018 /usr/local/apache/htdocs/zabbix/conf [root@wan ~]# source /etc/profile.d/httpd.sh [root@wan ~]# apachectl -t Syntax OK [root@wan ~]# apachectl restart [root@wan ~]# apachectl stop [root@wan ~]# apachectl start [root@wan ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:10051 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 80 :::3306 :::*
再進入電腦的C盤的 Windows System32 dirvers etc 的hosts 裏面添加映射
密碼是zabbix123!
再恢復zabbix/conf目錄的權限爲755:
[root@wan ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf [root@wan ~]# ll -d /usr/local/apache/htdocs/zabbix/conf drwxr-xr-x. 2 apache apache 104 5月 14 22:45 /usr/local/apache/htdocs/zabbix/conf
實如今另外一臺主機安裝zabbix_agentd客戶端,能實現zabbix對客戶端監控。
[root@wlw ~]# yum install -y gcc gcc-c++ pcre-devel [root@wlw ~]# cd /usr/src/ [root@wlw src]# tar xf zabbix-3.4.12.tar.gz [root@wlw src]# cd zabbix-3.4.12 [root@wlw zabbix-3.4.12]# ./configure --enable-agent [root@wlw ~]# groupadd -r zabbix [root@wlw ~]# useradd -r -M -s /sbin/nologin -g zabbix zabbix [root@wlw ~]# cd /usr/src/zabbix-3.4.12 [root@wlw zabbix-3.4.12]# make install [root@wlw ~]# cd /usr/local/etc/ [root@wlw etc]# ls zabbix_agentd.conf zabbix_agentd.conf.d [root@wlw etc]# vim zabbix_agentd.conf 找到server改爲Server=192.168.66.130 找到ServerActive改爲ServerActive=192.168.66.130 找到Hostname改爲Hostname=ww(ww是隨便取的名字要記住) [root@wlw etc]# zabbix_agentd [root@wlw etc]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:10050 *:* LISTEN 0 128 127.0.0.1:9000 *:* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 80 :::3306 :::* [root@wlw etc]# systemctl stop firewalld [root@wlw etc]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@wlw etc]# vim /etc/selinux/config [root@wlw etc]# setenforce 0