文章目录

  • 前言
  • zabbix介绍
    • zabbix组成部分
    • zabbix功能
  • zabbix配置
    • 给zabbix server配置数据库
    • 给zabbix前端配置PHP
    • 启动Zabbix server和agent进程
    • 访问zabbix
  • zabbix监控功能的实现
    • 手动添加主机到监控群
    • zabbix配置自动发现
    • zabbix配置自动注册
    • zabbix API
      • 验证API请求
      • API检索主机
      • API删除主机
      • API创建主机到监控项
    • zabbix配置监控项
      • 1.获得状态信息
      • 2.获取活跃连接数
      • 3.获取接收请求数
  • 后记

前言

在日常的运维工作中,监控是一个很重要的部分,它基本上对于运维来说时时时需要用到的工具。所以我们对于它的应用掌握应十分熟练。
普罗米修斯更适合容器的监控
cpu计量单位:豪核m
200m==0.2个cpu

zabbix介绍

Zabbix 分布式开源监控解决方案。
能够监控众多网络参数和服务器的健康度、完整性。
它使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。使用户可以快速响应服务器问题。
Zabbix 基于存储的数据提供出色的报表和数据可视化功能。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保可以在任何地方访问您监控的网络状态和服务器健康状况。

zabbix组成部分

Server: Zabbix server 是 Zabbix软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库: 所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。
Web 界面: 为了从任何地方和任何平台轻松访问 Zabbix ,提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy: Zabbix proxy 可以代替 Zabbix server采集性能和可用性数据。Zabbix proxy在Zabbix的部署是可选部分;但是proxy的部署可以很好的分担单个Zabbix server的负载。
Agent: Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。

zabbix功能

数据采集: 可用性和性能检查;支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;自定义检查;自定义的时间间隔采集需要的数据; 通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义: 后端数据库定义非常灵活的告警阈值,即触发器
高度可配置化的告警: 可以根据递增计划、接收者、媒介类型自定义发送告警通知;使用宏变量可以使告警通知变得更加高效有用;自动操作包含远程执行命令。
实时图形: 使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能: zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项: 可以组合多个监控项到单个视图中,创建自定义图表; 网络拓扑图; 以仪表盘样式展示自定义聚合图形和幻灯片演示;报表;监控资源的更高层次展示视图(业务视图)。
历史数据存储: 存储在数据库中的数据; 历史配置; 内置数据管理机制(housekeeping)。
配置简单: 将被监控设备添加为主机; 主机一旦添加到数据库中,就会采集数据用于监控; 将模板用于监控设备。
使用模板: 模板中分组检查;模板可以关联模板,继承已关联模板的属性。
网络发现: 自动发现网络设备;Zabbix Agent 发现设备后自动注册;自动发现文件系统、网络接口和 SNMP OIDs 值。
**快捷的 Web 界面:**基于 PHP 的 Web 前端;可以从任何地方访问;您可以定制自己的操作方式;您可以通过审计日志来查看你的操作。
Zabbix API: Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统: 安全的用户身份验证;指定的用户只能查看指定的权限范围内的视图。
功能强大且易于扩展的 Zabbix Agent: 部署于被监控对象上;支持 Linux 和 Windows ;
二进制守护进程: 为了更好的性能和更少的内存占用,采用 C 语言编写; 便于移植。
适应更复杂的环境: 使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。

zabbix配置

环境:
1.rhel7.6:192.168.1.11
2.一个搭建好了的lnmp平台
3.下载相应的包
MySQL已经安装过了,所以不用再安装

登录数据库,创建zabbix库,用户,和授权:

[root@server1 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.30 Source distributionCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
创建库:
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
创建用户:
mysql> create user zabbix@localhost identified by 'zabbix';  ##密码自己设置的密码
Query OK, 0 rows affected (0.01 sec)
授权:
mysql> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.01 sec)

导入初始架构和数据:

[root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:

给zabbix server配置数据库

[root@server1 zabbix]# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

给zabbix前端配置PHP

[root@server1 zabbix]# vim /etc/httpd/conf.d/zabbix.conf
......
php_value date.timezone Asia/Shanghai
......

启动Zabbix server和agent进程

关闭火墙和selinux

systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

查看端口:

[root@server1 zabbix]# netstat -tnlp
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:3306            0.0.0.0:*               LISTEN      10631/mysqld
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      8041/X
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8268/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7819/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      7820/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      8215/master
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      11021/zabbix_agentd
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      12594/zabbix_server
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::80                   :::*                    LISTEN      11019/httpd
tcp6       0      0 :::6000                 :::*                    LISTEN      8041/X
tcp6       0      0 :::22                   :::*                    LISTEN      7819/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      7820/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      8215/master

访问zabbix

这里填服务器名称

登录,同户名为Admin,密码为zabbix
界面如下:
本机不仅时server,还是agent,所以作为agent可以看到

zabbix监控功能的实现

手动添加主机到监控群

环境:
首先,先起两个agent:
agent1:192.168.1.12
agent2:192.168.1.13

1.安装zabbix-agent

[root@agent1 /]# yum install -y zabbix-agent-4.4.1-1.el7.x86_64.rpm
[root@agent2 /]# yum install -y zabbix-agent-4.4.1-1.el7.x86_64.rpm

2.创建主机
可以看到,已经添加成功!但是还没有启用成功。
3.添加监控模板
4.配置zabbix agent

[root@agent1 /]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.11  ##被动模式
ServerActive=192.168.1.11   ##主动模式
Hostname=agent1  ##主机名

5.开启agent

[root@agent1 /]# systemctl start zabbix-agent.service

zabbix配置自动发现

先删除前面的主机
配置自动发现动作:

配置动作:
配置自动发现:
配置自动发现规则:
重启zabbix server:

[root@server1 zabbix]# systemctl restart zabbix-server

刷新后,页面自动添加!

zabbix配置自动注册

自动发现server端主动扫描网段中的所有符合条件的主机
自动注册是客户端自己与server端通信加入集群
实验:
再添加一个agent2:192.168.1.13

1.禁用自动发现:

2.给agent2安装zabbix agent

3.配置并启动zabbix agent

Server=192.168.1.11  ##被动模式
ServerActive=192.168.1.11   ##主动模式
Hostname=agent1  ##主机名

4.创建自动注册的动作
5.配置自动注册的动作和操作

6.重启zabbix

[root@server1 zabbix]# systemctl restart zabbix-server
(这里可能得等一些时间才能可用)

zabbix API

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:创建新的应用程序以使用Zabbix; 将Zabbix与第三方软件集成;自动执行常规任务。
Zabbix API是基于Web的API,作为Web前端的一部分。
该API包含一组独立的方法;客户端和API之间的请求和响应使用JSON格式进行编码。
大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据。
当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。

验证API请求

在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。
在zabbixserver端:

[root@server1 /]# cat zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null
}' http://192.168.1.11/zabbix/api_jsonrpc.php | python -m json.tool

运行:

[root@server1 /]# ./zabbix-api
{"id": 1,"jsonrpc": "2.0","result": "e56583644f8fa50d2d44026d5ddc1ba5"
}

API检索主机

我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。

curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 2,"auth": "e56583644f8fa50d2d44026d5ddc1ba5"
}' http://192.168.1.11/zabbix/api_jsonrpc.php | python -m json.tool

运行结果:

[root@server1 /]# ./zabbix-api
{"id": 2,"jsonrpc": "2.0","result": [{"host": "Zabbix server","hostid": "10084","interfaces": [{"interfaceid": "1","ip": "127.0.0.1"}]},{"host": "agent1","hostid": "10306","interfaces": [{"interfaceid": "3","ip": "192.168.1.12"}]},{"host": "agent2","hostid": "10307","interfaces": [{"interfaceid": "4","ip": "192.168.1.13"}]}]
}

API删除主机

curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{"jsonrpc": "2.0","method": "host.delete","params": ["10307"],"id": 2,"auth": "e56583644f8fa50d2d44026d5ddc1ba5"
}' http://192.168.1.11/zabbix/api_jsonrpc.php | python -m json.tool

执行前:
执行后:

[root@server1 /]# ./zabbix-api
{"id": 2,"jsonrpc": "2.0","result": {"hostids": ["10307"]}
}

API创建主机到监控项

[root@server1 /]# cat zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{"jsonrpc": "2.0","method": "host.create","params": {"host": "agent2",   ##被创建的主机名"interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "192.168.1.13",   ##主机ip"dns": "","port": "10050"}],"groups": [{"groupid": "2"    ##主机群组}],"templates": [{"templateid": "10001"   ##模板id}]},"id": 2,"auth": "e56583644f8fa50d2d44026d5ddc1ba5"   ## 身份验证牌
}' http://192.168.1.11/zabbix/api_jsonrpc.php | python -m json.tool

执行后:

[root@server1 /]# ./zabbix-api
{"id": 2,"jsonrpc": "2.0","result": {"hostids": ["10315"]}
}

如图,主机已经被创建到监控项:

zabbix配置监控项

1.获得状态信息

实验环境:
在agent1中添加监控模板
在agent2中配置nginx:

[root@agent2 /]# yum install -y gcc zlib-devel pcre-devel  #安装必要的二进制包
[root@agent2 /]# tar zxf nginx-1.18.0.tar.gz #解压nginx包

关闭debug:

[root@agent2 /]# vim nginx-1.18.0/auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g"

预编译,编译安装:

[root@agent2 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@agent2 nginx-1.18.0]# make && make install

修改配置:

vim /usr/local/nginx/conf/nginx.conf

location /status {stub_status      on;   ##查看服务状态的参数access_log    off;   ##关闭日志allow         127.0.0.1;  ##只允许监控本机deny     all;
}

检查语法:/usr/local/nginx/sbin/nginx -t

[root@agent2 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

运行:/usr/local/nginx/sbin/nginx

[root@agent2 conf]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests1 1 1
Reading: 0 Writing: 1 Waiting: 0

2.获取活跃连接数

1.在agent2中的用户的自定义配置目录对其进行配置:

[root@agent2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active |awk '{print $3}'

2.重启zabbix服务,获取活跃连接数:

[root@agent2 ~]# systemctl restart zabbix-agent.service
[root@server1 zabbix]# zabbix_get -s 192.168.1.113 -p 10050 -k "nginx.active"
1

3.在图形界面配置agent2的监控项

更改字体:

在下面的目录里面加入你想要显示的字体:
[root@server1 mnt]# cd  /usr/share/zabbix/assets/fonts/
更改配置文件:
[root@server1 fonts]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_FONT_NAME', 'simkai');
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

预览:

3.获取接收请求数

1.在agent2中的用户自定义配置的目录中配置:

[root@agent2 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'[root@agent2 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
75

2.在server中测试:

[root@server1 fonts]# zabbix_get -s 192.168.1.113 -p 10050 -k "nginx.accept"
102

3.去网页配置监控项


我们来增加点访问使图形更加的直观:

[root@server1 fonts]# ab -c 1 -n 1000 http://192.168.1.113/index.html
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.1.113 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requestsServer Software:        nginx/1.18.0
Server Hostname:        192.168.1.113
Server Port:            80Document Path:          /index.html
Document Length:        612 bytesConcurrency Level:      1
Time taken for tests:   3.332 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      845000 bytes
HTML transferred:       612000 bytes
Requests per second:    300.10 [#/sec] (mean)
Time per request:       3.332 [ms] (mean)
Time per request:       3.332 [ms] (mean, across all concurrent requests)
Transfer rate:          247.64 [Kbytes/sec] receivedConnection Times (ms)min  mean[+/-sd] median   max
Connect:        0    1   1.2      1      16
Processing:     0    2   1.6      2      19
Waiting:        0    1   1.4      1      19
Total:          1    3   2.1      3      20Percentage of the requests served within a certain time (ms)50%      366%      375%      380%      390%      495%      698%     1299%     17100%     20 (longest request)

后记

到此为止,我们就实现了zabbix的监控功能(手动监控,自动发现,自动注册,API检索,API删除,API创建,以及自定义配置监控项等)

zabbix监控的快速部署相关推荐

  1. Zabbix监控,详细部署

    文章目录 一.Zabbix监控介绍 1.1 Zabbix监控架构 1.2 Zabbix的优点 1.3 Zabbix的缺点 1.4 Zabbix监控系统监控对象 1.5 Zabbix的监控方式 1. 主 ...

  2. Zabbix监控和分布式部署实施方案

    最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...

  3. Zabbix监控服务安装部署

    准备工作 主机 操作系统 IP地址 主要软件 hostName Zabbix server端 centos7.2 172.20.122.67 zabbix-server4.0 bigdata001 Z ...

  4. zabbix监控部署与设置报警发送邮件

    zabbix监控介绍与部署 zabbix介绍 zabbix组件及功能 zabbix功能与特点 zabbix功能 zabbix特点 zabbix配置文件 部署zabbix zabbix介绍 1.zabb ...

  5. zabbix监控MogDB之采集prometheus数据

    点击蓝字 关注我们 市场上比较的监控方式有两种:zabbix和prometheus架构,对于MogDB/openGauss数据库来说,已经通过grafana + prometheus + openga ...

  6. Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企 ...

  7. 分布式部署Zabbix监控平台

    Zabbix监控的优点 Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位 ...

  8. 开源运维监控open-falcon的快速部署

    在目前流行的三大开源运维监控工具Zabbix.Nagios.Open-Falcon当中,Open-Falcon属于后起之秀,由小米团队提供,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过 ...

  9. zabbix监控suse linux,SuSE 系统之部署 Zabbix 监控服务

    SuSE 系统之部署 Zabbix 监控服务 2.4 安装 Apache2 httpd-2.4.2.tar.gz#tar?-zvxf?httpd-2.4.2.tar.gz?? #./configure ...

  10. 傲云浏览器linux,Centos7安装部署zabbix监控软件

    目录 部署监控服务器 部署监控服务器Zabbix Server Web页面验证设置 部署监控服务器 一.安装LNMP环境 Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL ...

最新文章

  1. unknown builtin op: aten::Tensor
  2. 基于webpack搭建前端工程解决方案探索
  3. 第十八天:规划风险管理和识别风险
  4. 【CSS】font样式简写(转)- 不是很建议简写
  5. 剑指Offer - 面试题45. 把数组排成最小的数(字符串排序)
  6. 2021年中国新经济企业500强发展研究报告
  7. ppt课堂流程图_4个超实用的PPT制作技巧:开学提升备课质量,资深老师都在用
  8. java 多态 优势
  9. IUnknow IDispatch IInspectable QueryInterface
  10. 2021年中国助行靴市场趋势报告、技术动态创新及2027年市场预测
  11. SpingMVC 注解@RequestMapping、@SuppressWarnings、@Scheduled 定时器
  12. Debian5.0自动挂载U盘 - 使用pmount
  13. 下载VCForPython27.msi
  14. 98 服务器系统,流金岁月:重温Windows 98视窗操作系统
  15. 压敏电阻 matlab,输入整流滤波器及钳位保护电路的设计
  16. 苹果蓝牙耳机平替哪个好用?商务通话蓝牙耳机推荐
  17. 日本超高人气聊天软件LINE最全注册攻略来了
  18. 携程Android App插件化和动态加载实践
  19. Android 快速接入腾讯云人脸核身(识别)
  20. Opencv4.5.2 + Opencv_contrib4.5.2 VS2015 Win7下编译过程和注意事项

热门文章

  1. 通过redmon监控管理Redis服务器的安装配置教程
  2. 360Vulcan团队再获微软致谢 协助修复Edge及IE漏洞
  3. 计算机文档怎么字符加宽间距,Word2013设置字符间距,如何设置两个字符之间的距离 -电脑资料...
  4. 太极拳什么时间练习最适宜
  5. ppt怎么压缩,ppt压缩的技巧分享
  6. 智能客服搭建(1) - MRCP Server 搭建
  7. mysql strtolower_自己写的mysql类_PHP教程 - strtolower
  8. 倾向值匹配法的概述和应用+倾向值分析:统计方法与应用
  9. 基于IBM Tivoli TSM系统构建某局备份系统实施方案
  10. 自定义指令,实现默认头像和用户上传头像的切换