1、Cacti、Nagios 、Zabbix監控介紹php
1.1、Cacti:一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具前端
1.1.1、構件(步驟):mysql
net_snmp:負責數據採集ios
rrdtool:數據存儲以及繪圖web
mysql:保存模板和主機對應的信息sql
數據採集:cacti使用poller(輪詢器)收集數據,主要使用snmp協議從遠端的設備上收集數據。shell
數據存儲:cacti使用rrdtool(環形數據庫)存儲收集到的數據(時間序列數據)。rrd會將原始數據與整合到的數據進行合併,以使得歷史數據的存儲節省空間。數據庫
數據展現:rrdtool繪圖功能。vim
1.1.2、工做原理:centos
net_snmp協議定時採集數據,保存到rrd,當用戶須要查看某個主機對應的監控信息的時候能夠在MySQL中尋找對應的主機ip等信息,而後在命令rrd繪製出圖形
1.1.3、監控對象:網絡流量、cpu使用率、硬盤使用率等
1.2、nagios:一款開源的免費網絡監視工具
1.2.1、構件:
主程序(Nagios Daemon):Nagios的主部件,實現了監控,性能,通知,事件處理功能。這些功能都是抽象的邏輯和調度,並無實際的與設備交互的監控實現,與設備的交互都是在下面一層的Plugin種實現的,這些就是Nagios認爲可變部分。
Web Interface: Nagios的Web頁面,Nagios的Web容器是Apache HTTPD,Nagios開發了一個HTTPD模塊,並提供Web頁面。Web Interface與Nagios Daemon之間經過文件接×××互,Web邏輯讀取Nagios的狀態文件(status.dat),展現其監控信息。
插件程序(nagios-plugins):四個可選的附件(NRPE,NSCA,NSClient++,NDOUtils)
NDOUtils:用來將Nagios的配置信息和各event產生的數據存入數據庫,以實現這些數據的減速和快速處理
NRPE、NSClient:工做在客戶端
NSCA:被動(讓被監控的主機主動將監控信息發送給服務器)須要同時安裝在服務端和客戶端NSCA---send-nsca
1.2.2、原理:
基於狀態的改變來實現報警,當狀態改變以後會先不警告(軟狀態),當兩次採集以後狀態都改變了再通知(硬狀態)
1.2.3、監控對象:注重主機和服務的監控;自帶監控項比較少
1.3、zabbix:基於WEB界面的提供分佈式系統監視及網絡監視功能的企業級的開源解決方案,基於C/S架構
1.3.1、構造:
agent:被監控對象
server:負責數據收集
proxy:代理
1.3.2、原理:
主被動模式:主被動模式是相對於客戶端來講的,主動就是客戶端主動將採集的數據發送給server端,而被動模式是server過來告訴agent本身須要什麼東西,agent採集;zabbix和nagios的報警機制同樣,經過插件模板來實現
1.3.3、監控對象:網絡狀態、自帶監控項比較多
2、網絡拓撲圖
3、部署的環境
zabbix-server端:
[root@zabbix-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@zabbix-server ~]# uname -r
3.10.0-693.el7.x86_64
[root@zabbix-server ~]# ifconfig ens32|sed -nr 's#^.*inet (.*) netmask.*$#\1#gp'
10.0.0.102
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# getenforce
Disabled
zabbix-agent1端:
[root@zabbix-agent1 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@zabbix-agent1 ~]# uname -r
3.10.0-693.el7.x86_64
[root@zabbix-agent1 ~]# ifconfig ens32|sed -nr 's#^.*inet (.*) netmask.*$#\1#gp'
10.0.0.101
[root@zabbix-agent1 ~]# systemctl stop firewalld
[root@zabbix-agent1 ~]# getenforce
Disabled
zabbix-agent2端:
[root@zabbix-agent2 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@zabbix-agent2 ~]# uname -r
3.10.0-693.el7.x86_64
[root@zabbix-agent2 ~]# ifconfig ens32|sed -nr 's#^.*inet (.*) netmask.*$#\1#gp'
10.0.0.103
[root@zabbix-agent2 ~]# systemctl stop firewalld
[root@zabbix-agent2 ~]# getenforce
Disabled
4、zabbix安裝部署(具體過程參照官方文檔):
zabbix-server端:
4.1、安裝源碼庫配置部署包
[root@andy ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-3.4-1.el7.centos ################################# [100%]
[root@andy ~]# rpm -ql zabbix-release ##查看安裝的內容
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
/etc/yum.repos.d/zabbix.repo
/usr/share/doc/zabbix-release-3.4
/usr/share/doc/zabbix-release-3.4/GPL
[root@andy ~]# yum makecache
4.2、安裝Zabbix部署包
[root@andy ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-server zabbix-agent mariadb-server -y
4.2.1、安裝初始化數據庫
[root@andy ~]# systemctl start mariadb
[root@andy ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> show databases;
+----------------------+
| Database |
+----------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+-------------------+
MariaDB [(none)]> quit
Bye
[root@andy ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.8
[root@andy zabbix-server-mysql-3.4.8]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@andy zabbix-server-mysql-3.4.8]# zcat create.sql.gz | mysql -uroot zabbix
4.2.2、啓動Zabbix Server進程
[root@andy zabbix-server-mysql-3.4.8]# sed -i "s|# DBPassword=|DBPassword=zabbix|g" /etc/zabbix/zabbix_server.conf
[root@andy zabbix-server-mysql-3.4.8]# systemctl start zabbix-server
[root@andy zabbix-server-mysql-3.4.8]# netstat -lntup|grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16581/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 16581/zabbix_server
4.2.3、編輯Zabbix前端的PHP配置
[root@andy zabbix-server-mysql-3.4.8]# sed -i "s|# php_value date.timezone Europe/Riga|php_value date.timezone Asia/ShangHai|g" /etc/httpd/conf.d/zabbix.conf
[root@andy zabbix-server-mysql-3.4.8]# systemctl start httpd
Zabbix前端能夠在瀏覽器中經過 http://zabbix-frontend-hostname/zabbix 進行訪問。默認的用戶名/密碼爲 Admin/zabbix
如本次實例:http://10.0.0.102/zabbix/setup.php
Step1:
Step2:
Step3:
Step4:
Step5:
Step6:
Step7:
Step8:
4.3、優化和添加主機
登錄和配置用戶:修改管理員密碼
添加監控主機(配置-->主機-->建立主機):
Step1:
Step2:
Step3:
zabbix-agent1端:
安裝源碼庫配置部署包
[root@zabbix-agent1 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-3.4-1.el7.centos ################################# [100%]
[root@zabbix-agent1 ~]# rpm -ql zabbix-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
/etc/yum.repos.d/zabbix.repo
/usr/share/doc/zabbix-release-3.4
/usr/share/doc/zabbix-release-3.4/GPL
[root@zabbix-agent1 ~]# yum install -y zabbix-agent
[root@zabbix-agent1 ~]# sed -i 's#^Server=127.0.0.1#Server=10.0.0.102#g' /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent1 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep '^Server=1'
Server=10.0.0.102
[root@zabbix-agent1 ~]# systemctl start zabbix-agent
zabbix-agent2端:
安裝源碼庫配置部署包
[root@zabbix-agent2 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-3.4-1.el7.centos ################################# [100%]
[root@zabbix-agent2 ~]# rpm -ql zabbix-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
/etc/yum.repos.d/zabbix.repo
/usr/share/doc/zabbix-release-3.4
/usr/share/doc/zabbix-release-3.4/GPL
[root@zabbix-agent2 ~]# yum install -y zabbix-agent
[root@zabbix-agent2 ~]# sed -i 's#^Server=127.0.0.1#Server=10.0.0.102#g' /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent2 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep '^Server=1'
Server=10.0.0.102
[root@zabbix-agent2 ~]# systemctl start zabbix-agent
5、查看告警主機終端數實例
zabbix-agent1端:
[root@zabbix-agent1 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=log_user,/usr/bin/w|sed -nr 's#^.*, (.*) users.*$#\1#gp' ##在296行
UserParameter=log_user,/usr/bin/w|awk 'NR==1 {print$4}' ##用這條命令
[root@zabbix-agent1 ~]# systemctl restart zabbix-agent
zabbix-server端:
[root@zabbix-server ~]# yum install -y zabbix-get
[root@zabbix-server ~]# zabbix_get -s 10.0.0.101 -k log_user
2
Step1:
Step2:
Step3(添加監控項):
Step4(填完信息再保存):
Step5(添加圖形):
Step6(填完信息再保存):
Step7(添加觸發器):
Step8(填完信息再保存):
Add部分
Step9(添加圖形):
Step10(填完信息再保存):
添加一個動做(Configuration-->Actions)
Step1:
Step2:
Step3:
Step4(Administration-->Users):
Step5(Administration-->Users-->Admin):
Step6(Administration-->Media types-->Email):注意登陸第三方郵件客戶端時使用受權碼
Step6多開兩個終端驗證(Reports-->Action log):
小結:
一、自定義key-items監控項
咱們須要監控什麼(用戶登陸終端數),怎麼監控(w|awk)
2、zabbix的web頁面
2.1、在監控主機上面添加一個items(agent端定義的key log_user)
2.2、畫一個圖形(數據實際從key-->shell捕獲)
2.3、定義觸發器,多少用戶登陸終端就報警
參照:
https://www.zabbix.com/documentation/3.4/start
http://www.javashuo.com/article/p-mhdpmwjk-gv.html
.........