一、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 HTTPDNagios开发了一个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、监控对象:网络状态、自带监控项比较多

二、网络拓扑图

Centos7 安装部署Zabbix及邮件告警_第1张图片

三、部署的环境

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:

Centos7 安装部署Zabbix及邮件告警_第2张图片

Step2:

Centos7 安装部署Zabbix及邮件告警_第3张图片

Step3:

Centos7 安装部署Zabbix及邮件告警_第4张图片

Step4:

Centos7 安装部署Zabbix及邮件告警_第5张图片

Step5:

Centos7 安装部署Zabbix及邮件告警_第6张图片

Step6:

Centos7 安装部署Zabbix及邮件告警_第7张图片

Step7:

Centos7 安装部署Zabbix及邮件告警_第8张图片

Step8:

Centos7 安装部署Zabbix及邮件告警_第9张图片

4.3、优化和添加主机

登陆和配置用户:修改管理员密码

Centos7 安装部署Zabbix及邮件告警_第10张图片

添加监控主机(配置-->主机-->创建主机):

Step1:

image.png

Step2:

Centos7 安装部署Zabbix及邮件告警_第11张图片

Step3:

Centos7 安装部署Zabbix及邮件告警_第12张图片

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:

Centos7 安装部署Zabbix及邮件告警_第13张图片

Step2:

image.png

Step3(添加监控项):

image.png

Step4(填完信息再保存):

Centos7 安装部署Zabbix及邮件告警_第14张图片

Step5(添加图形):

image.png

Step6(填完信息再保存):

Centos7 安装部署Zabbix及邮件告警_第15张图片

Step7(添加触发器):

image.png

Step8(填完信息再保存):

Centos7 安装部署Zabbix及邮件告警_第16张图片

Add部分

Centos7 安装部署Zabbix及邮件告警_第17张图片

Step9(添加图形):

image.png

Step10(填完信息再保存):

Centos7 安装部署Zabbix及邮件告警_第18张图片

添加一个动作(Configuration-->Actions)

Step1:

image.png

Step2:

Centos7 安装部署Zabbix及邮件告警_第19张图片

Step3:

Centos7 安装部署Zabbix及邮件告警_第20张图片

Step4(Administration-->Users):

Centos7 安装部署Zabbix及邮件告警_第21张图片

Step5(Administration-->Users-->Admin):

Centos7 安装部署Zabbix及邮件告警_第22张图片

Step6(Administration-->Media types-->Email):注意登录第三方邮件客户端时使用授权码

Centos7 安装部署Zabbix及邮件告警_第23张图片

Step6多开两个终端验证(Reports-->Action log)

Centos7 安装部署Zabbix及邮件告警_第24张图片

小结:

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

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

.........