1. 程式人生 > >Centos7 安裝部署Zabbix及郵件告警

Centos7 安裝部署Zabbix及郵件告警

Linux zabbix 郵件 告警

一、CactiNagios Zabbix監控介紹

1.1Cacti:一套基於PHP,MySQL,SNMPRRDTool開發的網絡流量監測圖形分析工具

1.1.1、構件(步驟)

net_snmp:負責數據采集

rrdtool:數據存儲以及繪圖

mysql:保存模板和主機對應的信息

數據采集:cacti使用poller(輪詢器)收集數據,主要使用snmp協議從遠端的設備上收集數據。

數據存儲:cacti使用rrdtool(環形數據庫)存儲收集到的數據(時間序列數據)。rrd會將原始數據與整合到的數據進行合並,以使得歷史數據的存儲節省空間。

數據展示:rrdtool繪圖功能。

1.1.2、工作原理:

net_snmp協議定時采集數據,保存到

rrd,當用戶需要查看某個主機對應的監控信息的時候可以在MySQL中尋找對應的主機ip等信息,然後在命令rrd繪制出圖形

1.1.3、監控對象:網絡流量、cpu使用率、硬盤使用率等


1.2nagios:一款開源的免費網絡監視工具

1.2.1、構件:

主程序(Nagios Daemon:Nagios的主部件,實現了監控,性能,通知,事件處理功能。這些功能都是抽象的邏輯和調度,並沒有實際的與設備交互的監控實現,與設備的交互都是在下面一層的Plugin種實現的,這些就是Nagios認為可變部分。

Web Interface: NagiosWeb頁面,NagiosWeb容器是Apache HTTPD

Nagios開發了一個HTTPD模塊,並提供Web頁面。Web InterfaceNagios Daemon之間通過文件接×××互,Web邏輯讀取Nagios的狀態文件(status.dat),展示其監控信息。

插件程序(nagios-plugins):四個可選的附件(NRPENSCANSClient++NDOUtils)

NDOUtils:用來將Nagios的配置信息和各event產生的數據存入數據庫,以實現這些數據的減速和快速處理

NRPENSClient:工作在客戶端

NSCA:被動(讓被監控的主機主動將監控信息發送給服務器)需要同時安裝在服務端和客戶端NSCA---send-nsca

1.2.2、原理:

基於狀態的改變來實現報警,當狀態改變之後會先不警告(軟狀態),當兩次采集之後狀態都改變了再通知(硬狀態)

1.2.3、監控對象:註重主機和服務的監控;自帶監控項比較少

1.3zabbix:基於WEB界面的提供分布式系統監視及網絡監視功能的企業級的開源解決方案,基於C/S架構

1.3.1、構造:

agent:被監控對象

server:負責數據收集

proxy:代理

1.3.2、原理:

主被動模式:主被動模式是相對於客戶端來說的,主動就是客戶端主動將采集的數據發送給server,而被動模式是server過來告訴agent自己需要什麽東西,agent采集;zabbixnagios的報警機制一樣,通過插件模板來實現

1.3.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

四、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

五、查看告警主機終端數實例

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)

技術分享圖片

小結:

1、自定義key-items監控項

我們需要監控什麽(用戶登錄終端數),怎麽監控(w|awk)

2zabbixweb頁面

2.1、在監控主機上面添加一個items(agent端定義的key log_user)

2.2、畫一個圖形(數據實際從key-->shell捕獲)

2.3、定義觸發器,多少用戶登錄終端就報警

參照:

https://www.zabbix.com/documentation/3.4/start

http://blog.51cto.com/12118369/1968090

........

Centos7 安裝部署Zabbix及郵件告警