一、自动化监控利器-Zabbix
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的理由
Zabbix是一个自由开发源代码的产品,用户可以对源代码进行任意修改和二次开发。Zabbix采用GNU General Public License (GPL) Version2开源协议;
安装和配置简单,用户仅仅需要一些简单的学习,即可完成监控的搭建工作;
搭建环境简单,基于开源软件构建平台,仅需要Linux、Apache/Nginx、MySQL/PostgreSQL/Oracle、PHP即可,无须专用操作系统支持,也无须专用硬件;
Zabbix-Agent完全支持Linux、UNIX、Windows、AIX、BSD和Solaris的监控,Server和Agent都采用C语言编码,对系统的资源占用非常小,数据采集的性能和速度非常快;
将数据采集持久存储到数据库,便于对监控数据的二次分析;
非常丰富的扩展能力,很轻松地自定义监控项和实现数据采集,几乎能监控所有的数据。例如:可以监控网站的访问次数,监控UPS和天气温度等;
开源社区的运作模式,有各种论坛、邮件列表、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的更多相关文章
- 自动化监控利器-Zabbix
转自: http://www.xuliangwei.com/xubusi/117.html 1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是 ...
- 自动化监控利器-Zabbix深入配置和使用
1. 配置流程 Zabbix完整的监控配置流程可以简单描述为: Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触 ...
- 监控利器---Zabbix(一)
开源监控软件对比 Cacti(英文含义仙人掌) 是一套基于PHP.MySQL.SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,简化RRDt ...
- zabbix实现百台服务器的自动化监控--技术流ken
前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...
- 第5章Zabbix自动化监控
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...
- 自动化利器-Zabbix
1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是非常复杂的. 多种应用构成负载的IT业务系统,保证这些资源的正常运转,是一个公司IT部门的职责. ...
- zabbix的日常监控-自动化监控(十一)
自动化监控: 1.自动注册 1.1.zabbix agent自动添加 2.主动发现 2.1.自动发现Discover 2.2.zabbix api 自动发现与自动注册,哪一个更好? 共同的特点均可以添 ...
- 自动化监控软件之zabbix安装
自动化监控系统 cacti : 基于snmp(简单的网络管理协议)协议的监控软件,强大的绘图软件 缺点: 自带的监控模板比较少,不能默认 自带监控报警功能(只能自己去官网下载模板) Nagios: 插 ...
- Zabbix 5.0:通过LLD方式自动化监控阿里云RDS
Blog:博客园 个人 之前做了RDS监控,由于 RDS 实例梳理增多,手动添加的方式已经不够效率,故改为LLD(Low-level discovery)方式做监控. 什么是LLD LLD(Low-l ...
随机推荐
- 【阿菜用工具】利用 Web3.js 在 ganache 上部署以及调用智能合约
合约部署 要部署的合约 pragma solidity ^0.4.23; contract test { uint256 value; function setValue(uint256 _value ...
- C#制作网盘搜索工具(简单的爬虫)
最近学习C#编程,在网上发现一篇winform下制作百度网盘搜索器的文章,故而下载源码学习一二.无奈原博所用的网址失效,故而自己改写了网址和相关源代码,也进行了实现.因为初学,接触的知识较多,为免忘记 ...
- 嵌套div的onClick事件问题
嵌套div的onClick事件问题我在下面的代码中的外层div中加了onClick事件,这样当鼠标点击这个div的时候就会跳转了.但是我在图片上加了一些其他效果,所以当鼠标点击中间的img时不能触发跳 ...
- jquery版本更新后无live函数的处理.TypeError: $(...).live is not a function
jquery live函数语法 jquery版本更新, 发现一个问题: jq自带的live没有了.控制台下会有如下的提示:火狐: TypeError: $(...).live is not a fun ...
- Qt学习-ListView的拖拽
最近在学习Qt 里面的QML, 使用DropArea和MouseArea实现了ListView的拖拽. 想起了当年用Delphi, 差不多一样的东西, 不过那是2000了. Delphi也是不争气啊, ...
- 走心的中级Android工程师跳槽经验分享
这些经验是我最近四个月,从准备面试到找到合适工作的汗水和泪水,希望对你们能有帮助! define 跳槽 跳槽前要思考的问题 钱不到位怎么办 心委屈怎么办 离职前的思考 确定要走时需要做的准备 行情怎么 ...
- VIM的命令历史
例如有一段文本,将所有CTRL替换为ctrl,将所有A替换为a,也就是执行了:%s/CTRL/ctrl/g和:%s/A/a/g两条命令,然后进行了很多其他编辑,最后关闭VIM. 后来又有一段文本,也需 ...
- putty编译过程
在Win7上用Visual Studio编译putty源代码. 安装vs2005,只安装c++和.net framework sdk即可: 将putty-src.zip解压到e:\MyDoc\VSPr ...
- STM32启动代码分析及其汇编学习-ARM
STM32 启动代码 Author By YuCloud 边看启动文件边学汇编 汇编 see ARM: Assembler User Guide see: https://blog.csdn.net/ ...
- Sqli-Labs less1-4
首先,记录一下基础知识,可能不全: 几个常用的函数: 1.version() --Mysql版本 2.user() --数据库用户名 3.database() --数据库名 4.@@datad ...