百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

10分钟快速搭建Zabbix+Grafana可视化监控虚拟环境

bigegpt 2024-08-06 12:01 8 浏览

简介

为了方便了解ESXi主机及虚拟机运行状况,通过Zabbix进行监控,并通过Grafana将zabbix监控到的数据进行可视化展现。

一、zabbix安装

1.安装Zabbix rpm包仓库

# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

2.安装zabbix-server-mysql和zabbix-web-mysql

# yum install -y zabbix-server-mysql zabbix-web-mysql

3.安装并且启动mysql5.6及初始化数据库信息

# rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm 
# yum install -y mysql-community-server 
# systemctl start mysqld
# /sbin/chkconfig mysqld on #开机启动
# mysql_secure_installation #初始化数据库信息

4.创建zabbix数据库,创建zabbix账号

# mysql -uroot -p
...
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

5.导入默认的zabbix数据库信息

# zcat /usr/share/doc/zabbix-server-mysql-3.0.12/create.sql.gz | mysql zabbix -uzabbix -pzabbix

6.修改zabbix_server.conf的配置文件

# grep ^DB /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

7.修改配置文件/etc/httpd/conf.d/zabbix.conf,时区改成 Asia/Shanghai

...
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 always_populate_raw_post_data -1 
php_value date.timezone Asia/Shanghai
...

8.启动apache/zabbix-server服务并设置为开机启动

# systemctl start httpd
# systemctl enable httpd
# netstat -an |grep 80 (本实验修改了默认80端口 --> /etc/httpd/conf/httpd.conf)
# systemctl start zabbix-server
# systemctl enable zabbix-server

9.访问网站,例如:http://IP:端口/zabbix,如下图所示:

10.选择下一步,Check of pre-requisites,如图所示:

11.选择下一步,配置zabbix server detail,如下图所示:

12.选择下一步,配置zabbix server detail,如下图所示:

13.安装完成的界面如下图所示:

注:如上配置可在配置文件 /etc/zabbix/web/zabbix.conf.php 中再次修改。

14.Zabbix·server的默认账号Admin 密码zabbix,如图所示:

15.修改默认密码、语言、主题等

二、配置zabbix监控vCenter

官方参考文档:https://www.zabbix.com/documentation/3.4/zh/manual/vm_monitoring

1.调整虚拟机监控配置

# vi /etc/zabbix/zabbix_server.conf
StartVMwareCollectors=6
VMwareCacheSize=50M
VMwareFrequency=10
VMwarePerfFrequency=60
VMwareTimeout=300
# systemctl restart zabbix-server

注释:

StartVMwareCollectors:vmware 收集器实例的数量。

此值取决于要监控的 VMware 服务的数量。在大多数情况下,这应该是:

servicenum < StartVMwareCollectors < (servicenum * 2)

其中 servicenum 是 VMware 服务的数量。例如:如果您有 1 个 VMware 服务要将 StartVMwareCollectors 设置为 2,那么如果您有 3 个 VMware 服务,请将其设置为 5。请注意,在大多数情况下,此值不应小于 2,不应大于 VMware 数量的 2 倍服务。

VMwareCacheSize:VMwareFrequency=10。

用于存储VMware数据的共享内存大小。

VMwareFrequency:从单个VMware服务收集数据之间的延迟(秒)。

VMwarePerfFrequency:从单个VMware服务检索性能计数器统计信息之间的延迟(秒)。

VMwareTimeout:响应超时时间

2.添加主机

配置/模板中含有官方提供模板,或者zabbix官网下载针对vCenter监控的模板。

官方模板:http://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates

主机页面

主机名称

群组:“VMware vCenter”或者“Virtual machines”

agent代理程序接口:vCenter地址、默认端口10050

模板

链接指示器:输入vm,系统自动匹配含有vm的模板

选中并添加

添加宏

{$URL} - VMware 服务 (vCenter or ESX hypervisor) SDK URL (https://servername/sdk).

{$USERNAME} - VMware 服务用户名

{$PASSWORD} - VMware 服务{$ USERNAME}用户密码

建议:安全起见,在vCenter上添加一个只读用户。

3.监测最新数据

能够监测到最新数据,说明配置生效

配置-主机中可看到自动发现的主机

4.添加图形

在模板中配置添加图形,可通用到此模板下所有已链接到的主机。例如如下:在Hypervisor模板添加图形,用于查看ESXi内存使用量。

如下根据需求修改图形参数:

添加监控项:

至此,此模板中可监控ESXi主机内存使用量的图形添加完成,在监控-图形中选择某一主机查看图形。

三、Grafana安装与配置

1.下载安装

官网下载地址 https://grafana.com/grafana/download

2.启动服务

# service grafana-server start

打开浏览器,输入IP+端口,3000为默认端口

默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆,界面显示如下:

3.添加数据源

默认情况下,Data Sources中不存在zabbix插件,需要安装zabbix插件。

官方插件地址:https://grafana.com/plugins

查看安装方法

安装插件

# grafana-cli plugins install alexanderzobnin-zabbix-app
# service grafana-server start 重启grafana服务

查看插件并Enable

在Home界面可以看到已经安装的APP如下:

Add Data Source

配置DataSource之zabbix

URL:为zabbix的api地址 - zabbix官方说明

4.添加Dashboard仪表盘

5.配置Dashboard

Name、描述、标签、所属文件夹(需要先创建文件夹)

Timezone默认即可,可配置跟随本地浏览器时间及国际标准时间

自动刷新,配置Dashboard可自动刷新的时间,在Dashboard可以选择此处配置的时间

延迟时间配置,根据需求配置

是否隐藏时间选择器等功能

6.添加Panel

Dashboard界面右上角,Add Panel

添加Query

Queries

选择Data Source:zabbix

Query Mode:Metrics

如下例如监控某服务器CPU Usage

Group:可选择zabbix中监控到的主机(Hypervisor)

Host:为Hypervisor子项(服务器在vCenter中的名字:192.168.10.10)

Application:该服务器被监控到的数据,在zabbix中归类为应用集(CPU、Datastore、Memory、Network等)

Item:该应用集所有监控数据(CPU cores、CPU Usage、CPU frequency等)

Visualization

可选择多种数据展现方式:常用Graph、Singlestat、Gauge

Graph常用参数配置:

图形展现为条形、点、折线,以及更改填充透明度、线粗细、梯形等

Hover tooltip:鼠标指在图形,展现所有数据or单个数据,以及如何排序(递增或递减)

数轴配置:

分为左Y轴、右Y轴以及X轴

Unit:基本包含所有国际标准单位

Scale:比例,一般linear线性就可以

Legend图例配置:

图例以表的方式呈现、以及数据包含最小、最大、平均值等

Singlestat常用参数配置:

Stat:配置数据展现为最小、最大、平均、当前值等

前缀、后缀以及字体大小

Unit:修改该数据单位

Decimals:修改数值,小数点位数

可配置背景颜色,以及设置阈值,到达某阈值自动更改颜色

Spark lines:可将折线图同时展现在该面板

Gauge:同时展现该数据仪表盘

General

配置该面板名称、是否透明等

7.导入官网Dashboard

官网Dashboard https://grafana.com/dashboards

例如如下,Dashboard模板,获取ID号

import导入

自动发现此Dashboard模板,导入即可

8.添加变量

DashBoard Setting

添加变量

变量名

类型为Query

Data Source,zabbix

Query的值为*,可列出所有主机,可使用“主机名.*”的形式,列出该主机子集

可使用正则表达式筛选数据等

根据需要,选择需要查看的虚拟机

以上为简单配置zabbix+grafana监控虚拟化环境。

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...