1. 监控的作用

1.1 为何需要监控系统

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详细的数据用于追查定位问题;

为了及时掌握基础环境和业务应用系统的可用性,需要获取各个组件的运行状态,如CPU的利用率、系统的复制、服务的运行、端口的连通、带宽流量、网站访问状态码等信息。而这一切都离不开监控系统;

1.2 监控系统的实现

一个监控系统的组成大体可以分为两部分:数据采集部分(客户端)和数据存储分析报警部分(服务器端),这两部分构成了监控系统的基本模型;

数据采集的工作模式可以分为被动模式(服务端到客户端采集数据)和主动模式(客户端主动上报数据到服务器端)。通常,大多数监控系统应该能同时支持这两种模式。被动模式对服务器的开销较大,适合小规模的监控环境:主动模式对服务器的开销较小,适合大规模的监控环境;

1.3 常用的监控软件

MRTG:是一套可用来绘制网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发;

Cacti:(英文含义为仙人掌)是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具;

Smokeping:Smokeping主要用于监视网络性能,包括常规的ping、www服务器性能、DNS查询性能、SSH性能等;

Nagios:Nagios是一个企业级的个系统,可监控服务的运行状态和网络信息等,并能监视所指定的本地或远程主机参数以及服务,同时提供异常告警通知功能等;

Zabbix:Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的;

2. Zabbix简介

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案;

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题;

Zabbix适合中小型企业、大中型企业的用户使用。单个Server节点可以支持上万台设备,每秒可以处理1.5万次请求,理论上可以支持5万台设备;

2.1 选择Zabbix的理由

  1. Zabbix是一个自由开发源代码的产品,用户可以对源代码进行任意修改和二次开发。Zabbix采用GNU General Public License (GPL) Version2开源协议;

  2. 安装和配置简单,用户仅仅需要一些简单的学习,即可完成监控的搭建工作;

  3. 搭建环境简单,基于开源软件构建平台,仅需要Linux、Apache/Nginx、MySQL/PostgreSQL/Oracle、PHP即可,无须专用操作系统支持,也无须专用硬件;

  4. Zabbix-Agent完全支持Linux、UNIX、Windows、AIX、BSD和Solaris的监控,Server和Agent都采用C语言编码,对系统的资源占用非常小,数据采集的性能和速度非常快;

  5. 将数据采集持久存储到数据库,便于对监控数据的二次分析;

  6. 非常丰富的扩展能力,很轻松地自定义监控项和实现数据采集,几乎能监控所有的数据。例如:可以监控网站的访问次数,监控UPS和天气温度等;

  7. 开源社区的运作模式,有各种论坛、邮件列表、IM及时沟通等,发现问题及时解决;

2.2 Zabbix的功能特性

Zabbix有常见的商业监控软件所具备的功能,如主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制、分布式、可扩展能力、API等;

  • 数据收集
  • 灵活的触发器
  • 高度可定制的告警
  • 实时的绘图功能
  • Web监控能力
  • 多种可视化的展示
  • 历史数据的存储
  • 配置非常容易
  • 使用模板
  • 快速的访问接口
  • API功能
  • 系统权限
  • 大型环境的支持

3. Zabbix安装与部署

3.1 配置Zabbix-server

[root@zabbix-server ~]# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm  # 安装Zabbix官方源

[root@zabbix-server ~]# yum install -y  zabbix-server-mysql zabbix-web-mysql zabbix-agent  mariadb-server  # 安装服务端,由于服务端也是需要监控的,故而一并安装Zabbix-agent

1. 创建Zabbix数据库

# 1.启动mariadb数据库,并加入开机自启
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. # 2.登录数据库
[root@zabbix-server ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 3.配置数据库信息
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; # 这一步一定不能少,不然会报错
Query OK, 1 row affected (0.01 sec) MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit
Bye # 4.导入数据
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.33/
[root@zabbix-server zabbix-server-mysql-4.0.33]# zcat create.sql.gz | mysql -uroot zabbix

2. 启动Zabbix

# 修改配置文件,让Zabbix连接数据库
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix #基本上就要修改这一项 # 启动服务,并加入开机自启
[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service. # 检测10051端口是否起来---->这里要注意,关闭防火墙和selinux服务,不然Zabbix起不来
[root@zabbix-server ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 9272/zabbix_server
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2217/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1037/sshd

3. 修改 vim /etc/httpd/conf.d/zabbix.conf 前端时区

[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
# Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted <IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga # 修改这个位置为:php_value date.timezone Asia/shanghai
</IfModule>
....

4. 启动httpd服务,并加入开机自启

[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

5. 打开web页面测试Zabbix是否安装成功

进入到zabbix web页面

到此,zabbix服务端就安装完毕了!

3.2 配置Zabbix-client

配置zabbix-client,就不用那么麻烦了,我们直接在第三方的镜像源安装

https://mirrors.aliyun.com/zabbix/zabbix/

选择自己对应得版本就可以了

1. 下载安装包

# 这里推荐用rpm安装,因为我们下载的就是一个rpm包
[root@web-01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.33-1.el7.x86_64.rpm

2. 配置zabbix

# 先查看一下zabbix-agent 的配置文件
[root@web-01 ~]# rpm -qc zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf # zabbix-agent 的配置文件位置
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf # 修改配置文件:这里只要改一个位置就可以了
[root@web-01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.134 # 这里改成zabbix-server端的ip地址 # 启动zabbix-agent服务,并加入开机自启
[root@web-01 ~]# systemctl start zabbix-agent
[root@web-01 ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service. # 检测agent服务端口是否启动,监听的端口为10050
[root@web-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1080/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1257/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1437/zabbix_agentd
tcp6 0 0 :::22 :::* LISTEN 1080/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1257/master
tcp6 0 0 :::10050 :::* LISTEN

3.3 如何监控服务?

1. 首先登录服务的zabbix web界面

2. 添加一个主机

给被监控主机添加一个模板

一、自动化监控利器-Zabbix的更多相关文章

  1. 自动化监控利器-Zabbix

    转自: http://www.xuliangwei.com/xubusi/117.html   1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是 ...

  2. 自动化监控利器-Zabbix深入配置和使用

    1.  配置流程 Zabbix完整的监控配置流程可以简单描述为: Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触 ...

  3. 监控利器---Zabbix(一)

    开源监控软件对比 Cacti(英文含义仙人掌) 是一套基于PHP.MySQL.SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,简化RRDt ...

  4. zabbix实现百台服务器的自动化监控--技术流ken

    前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...

  5. 第5章Zabbix自动化监控

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...

  6. 自动化利器-Zabbix

    1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是非常复杂的. 多种应用构成负载的IT业务系统,保证这些资源的正常运转,是一个公司IT部门的职责. ...

  7. zabbix的日常监控-自动化监控(十一)

    自动化监控: 1.自动注册 1.1.zabbix agent自动添加 2.主动发现 2.1.自动发现Discover 2.2.zabbix api 自动发现与自动注册,哪一个更好? 共同的特点均可以添 ...

  8. 自动化监控软件之zabbix安装

    自动化监控系统 cacti : 基于snmp(简单的网络管理协议)协议的监控软件,强大的绘图软件 缺点: 自带的监控模板比较少,不能默认 自带监控报警功能(只能自己去官网下载模板) Nagios: 插 ...

  9. Zabbix 5.0:通过LLD方式自动化监控阿里云RDS

    Blog:博客园 个人 之前做了RDS监控,由于 RDS 实例梳理增多,手动添加的方式已经不够效率,故改为LLD(Low-level discovery)方式做监控. 什么是LLD LLD(Low-l ...

随机推荐

  1. Chrome添加 测试设备 手机iPhone x系列手机

    一.F12,点击下图中的Edit,添加设备 二.添加名为iPhone XR的设备,设备配置如下 三.其中User agent string如下 Mozilla/5.0 (iPhone; CPU iPh ...

  2. Unity3D学习笔记3——Unity Shader的初步使用

    目录 1. 概述 2. 详论 2.1. 创建材质 2.2. 着色器 2.2.1. 名称 2.2.2. 属性 2.2.3. SubShader 2.2.3.1. 标签(Tags) 2.2.3.2. 渲染 ...

  3. C#曲线分析平台的制作(五,Sqldependency+Signalr+windows 服务 学习资料总结)

    在前篇博客中,利用interval()函数,进行ajax轮询初步的实现的对数据的实时显示.但是在工业级别实时显示中,这并非是一种最好的解决方案.随着Html5 websocket的发展,这种全双工的通 ...

  4. 声明提前(hoist)

    程序执行前,都会先找到var声明的变量和function声明的函数. 一.var声明的变量 程序 结果 console.log(a); var a=10; console.log(a); //unde ...

  5. 桌面小部件AppWidgetProvider简单分析

    1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息 ...

  6. C++水仙花 (如:153 = 1*1*1 + 5*5*5 + 3*3*3)

    1 #include <iostream> 2 #include <ctime> 3 using namespace std; 4 5 int main() 6 { 7 int ...

  7. 就这?分布式 ID 发号器实战

    分布式 ID 需要满足的条件: 全局唯一:这是最基本的要求,必须保证 ID 是全局唯一的. 高性能:低延时,不能因为一个小小的 ID 生成,影响整个业务响应速度. 高可用:无限接近于100%的可用性. ...

  8. 代码重构与单元测试——使用“以查询取代临时变量”再次对Statement()方法进行重构(七)

    代码重构与单元测试(一) 代码重构与单元测试--测试项目(二) 代码重构与单元测试--"提取方法"重构(三) 代码重构与单元测试--重构1的单元测试(四) 代码重构与单元测试--对 ...

  9. linux copy_id

    ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh ...

  10. rancher恢复kubecfg配置文件

    docker run安装的单容器Rancher Server # 进入容器 docker exec -ti <容器ID> bash # 集群ID,可通过浏览器地址栏查询 cluster_i ...