侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

监控概念及Zabbix部署

Administrator
2024-05-28 / 0 评论 / 0 点赞 / 13 阅读 / 0 字

监控概念及Zabbix部署

1 监控概述

对于监控系统在企业架构中不是新的技术,但却是必不可少的重要组成部分,所谓无监控,不运维!

监控系统可以帮助运维、开发、测试等人员及时的发现服务器出现的故障,并及时的发送告警通知。

对于监控软件所应该具备的功能如下:

  • 指标数据采集(抓取)

  • 指标数据存储

  • 指标数据可视化

  • 故障告警功能

2 监控对象介绍

系统层监控

系统监控:CPU利用率、内存利用率、磁盘IO速度、进程数量、内核完整性等...

网络监控:网络设备进出口流量、工作负载、网络延迟、丢包率等...

中间件监控

消息中间件:kafka、RocketMQ、RabbitMQ等...

Web服务容器:Nginx、Tomcat、httpd、docker、kubernetes等...

数据库及缓存系统:MySQL、PostgreSQL、MongoDB、Redis、ElasticSearch等...

存储系统:Ceph

应用层监控

用于衡量应用程序代码的状态和性能

业务层监控

例如电商网站销售量、转化率等

业务接口:登录数、注册数、订单量、支付数量等

3 Linux系统常用监控命令

以下命令是对系统的CPU、内存、硬盘、网络进行监控的命令

free #查看内存利用率

df #查看正在使用分区利用率

top # 查看系统健康状态(类似windows的任务管理器)

htop #与top相同,查看系统健康状态(系统不自带,在epel源提供)

uptime #查看cpu利用率

iftop #用于显示本机网络流量情况及相互通信的流量集合(默认系统不自带,需安装主包:iftop,依 赖包:flex byacc libpcap ncurses ncurses-devel libpcap-devel )

iostat # iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监 视 (默认系统不自带,需安装:sysstat)

iotop #与iostat类似, 用来监视磁盘I/O使用状况(默认系统不自带,需安装:iotop)

vmstat # 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、 CPU活动进行监控 (默认系统不自带,需安装:sysstat)

netstat/ss # 用于显示各种网络相关信息,如网络连接,路由表,接口状态连接等

nethogs # 用来按进程或程序实时统计网络带宽使用率(默认系统不自带,epel源安装:nethogs)

ipmi #用于对服务器硬件进行监控(默认系统不自带,需安装:ipmitool)

4 常用的监控软件介绍

  • Nagios:本身只能做实时的数据监控,无法实现数据的持久化保存,致命缺点无法查询历史数据

  • Cacti:最初应用在机房做流量方面的监控,致命缺点没有故障告警功能

  • Ganglia:跟Cactii类似,致命缺点没有故障告警功能

  • Open-Falcon:小米公司开源的一款监控软件,目前还是比较冷门,很多中间件不支持监控(例如:httpd、Tomcat)

  • Zabbix:2012年诞生的一款分布式监控系统,功能完善(例如:数据存储、数据可视化、故障告警等)目前主要应用在传统的物理服务器、虚拟机、路由交换领域的监控

  • Promethues:2016年崛起的一款监控系统,功能完善(例如:数据存储、数据可视化、故障告警等)目前主要应用在云平台、容器等领域的监控

付费的监控软件:

监控宝:https://www.jiankongbao.com/ 博瑞:https://www.bonree.com/


5 Zabbix介绍

Zabbix 是C语言编写的企业级开源免费的分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。

Zabbix 使用灵活的报警通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。

Zabbix 可通过存储的数据提供出色的报告和数据可视化功能。

官网地址:https://www.zabbix.com/

6 Zabbix组件

  • zabbix agent:部署在被监控主机上,负责采集被监控主机上的数据,并将采集到的数据发送给zabbix server

  • zabbix server:负责接收agent发送的数据,统计数据、管理数据

  • zabbix database:用于存储所有zabbix的配置信息以及监控数据

  • zabbix web:管理员通过web界面管理、配置以及查看相关监控信息

  • zabbix-proxy:分布式监控,用来分担zabbix server的压力

7 zabbix的版本介绍

  • zabbix稳定版:LTS代表稳定版,官方提供技术支持时间长达5年时间(免费)

  • zabbix标准版:不带LTS标签,官方提供技术支持时间7个月(免费)

查询地址:https://www.zabbix.com/cn/life_cycle_and_release_policy

8 Zabbix5.0安装步骤

8.1 配置zabbix的存储库

#安装zabbix5.0存储库
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm -y

#安装zabbix软件包
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent -y

#可选配置:如果官方仓库无法连接,可将仓库地址改为清华大学,下边是清华大学仓库地址
[root@zabbix-server ~]# vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0

#下载CentOS的SCL仓库(SCL是红帽提供的软件集合仓库)
[root@zabbix-server ~]# yum -y install centos-release-scl

#启用zabbix-frontend存储库
root@zabbix-server ~]# vim /etc/yum.repos.d/zabbix.repo
...
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1   #启用仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

#安装Zabbix前端软件包
#zabbix-web-mysql-scl      用于连接数据库
#zabbix-apache-conf-scl    用于连接apache
[root@zabbix-server ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
 
#安装数据库软件
[root@zabbix-server ~]# yum -y install mariadb-server

#启动数据库服务
[root@zabbix-server ~]# systemctl start mariadb

#设置随机自启
[root@zabbix-server ~]# systemctl enable mariadb

#进入数据库
[root@zabbix-server ~]# mysql

#创建存储数据的库,并支持中文(库名:zabbix)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

#授权连接数据库的用户,并设置密码(用户名:zabbix)
MariaDB [(none)]> create user zabbix@localhost identified by '123456';

#数据库授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;

#查看所有库
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.01 sec)

#进入zabbix库
MariaDB [(none)]> use zabbix;
Database changed

#查看当前库下表
MariaDB [zabbix]> show tables;
Empty set (0.00 sec)  #空

#在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: password  #输入zabbix用户密码

#为Zabbix服务器配置数据库
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
...
100 DBName=zabbix  	#存储监控数据的库名
116 DBUser=zabbix  	#连接数据库的用户
124 DBPassword=123456  #设置zabbix用户密码

#为Zabbix配置正确的时区
[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
...
 php_value[date.timezone] = Asia/Shanghai  #亚洲/上海

#启动所有服务
root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

#设置服务随机自启
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

#查看zabbix服务占用端口信息
[root@zabbix-server ~]# ss -anptul | grep zabbix
tcp    LISTEN     0      128       *:10051  #zabbix-server端口
tcp    LISTEN     0      128       *:10050  #zabbix-anent端口

8.2 zabbix服务参数介绍

  • zabbix server服务名:zabbix-server 端口:10051

  • zabbix agent服务名:zabbix-agent 端口:10050

  • zabbix server主配置文件:/etc/zabbix/zabbix_server.conf

  • zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf

  • zabbix企业微信报警脚本路径:/usr/lib/zabbix/alertscripts

  • zabbix自定义监控项路径:/etc/zabbix/zabbix_agentd.d

  • zabbix日志文件路径:/var/log/zabbix/

8.3 欢迎页面

从浏览器上打开Zabbix前端访问URL. 如果你是从packages方式安装Zabbix, URL是:

您看到的第一个Web前端安装向导页面如下.

8.4 先决条件检查

请确保先满足所有软件先决条件. 这里的Check of pre-requisites必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改

先决条件 最小满

要求 描述

PHP version

7.2.0

PHP memory_limit option

128MB

在配置文件php.ini: memory_limit = 128M

PHP post_max_size option

16MB

在配置文件php.ini: post_max_size = 16M

PHP upload_max_filesize option

2MB

在配置文件php.ini: upload_max_filesize = 2M

PHP max_execution_time option

300 秒 ( 0 和 -1 值 被允许) 在配置文件

php.ini: max_execution_time = 300

PHP max_input_time option

300 秒 (0 和 -1 值 被允许) 在配置文件

php.ini: max_input_time = 300

PHP session.auto_start option

必须关闭 在配置

件 php.ini: session.auto_start = 0

Database support

其中之一: MySQL, Oracle, PostgreSQL. 以下必

安装其中一个模块: mysql, oci8, pgsql

bcmath

php-bcmath

mbstring

php-mbstring

PHP mbstring.func_overload option

必须关闭 在配置

件 php.ini: mbstring.func_overload = 0

sockets

php-net-socket. 需要用户脚本支持.

gd

2.0.28

php-gd. PHP GD 扩展性必须支持PNG格式的图片 (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir).

libxml

2.6.15

php-xml

xmlwriter

php-xmlwriter

xmlreader

php-xmlreader

ctype

php-ctype

session

php-session

gettext

php-gettext 从 Zabbix 2.2.1版本开始, PHP gettext 扩展性不是安装Zabbix的强制性要求. 如果没有安装gettext, 前端也能够正常运行, 然而, 翻译将不可用.

8.5 配置数据库连接

输入连接数据库所需的详细信息. Zabbix数据库必须先建立好.

8.6 Zabbix server服务器详情

请输入Zabbix服务器详情,可选的输入Zabbix服务器的名字, 然而, 如果输入并提交了, Zabbix服务器的名字将会显示在菜单和页面的标题.

8.7 安装前总结

8.8 完成安装

如果webserver用户对conf/目录有写访问权,配置文件将自动保存,并且可以立即进入下一步

8.9 web界面登录

Zabbix前端已经安装完成! 超级用户名是 Admin, 密码 zabbix

为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。

在下次成功登陆后,将会在界面上显示登录尝试失败的IP地址

8.10 增加用户

可以在 管理(Administration) 用户(Users)下查看用户信息。

点击  创建用户(Create user以增加用户。

在添加用户的表单中,请确保将新增的用户添加到了一个已有的用户组,比如'Zabbix administrators'。

所有必填项都以红色星标标记。默认情况下,没有为新增的用户定义媒介(media,即通知发送方式) 。如需要创建,可以到 媒介(Media)标签下,然后点击  增加Add)在这个对话框中,为用户输入一个Email地址。

你可以为媒介指定一个时间活动周期,(访问时间周期说明页面,查看该字段格式的描述)。默认情况下,媒介一直是活动的。你也可以通过自定义触发器严重等级来激活媒介,默认所有的等级都保持开启。

选择用户身份(如果需要该用户接收告警通知,需要超级管理员类型点击 新增Add),然后在用户属性表单中点击 新增Add)。新的用户将出现在用户清单中。

8.11 添加权限

默认情况下,新用户没有访问主机的权限。 若要授予用户权限,请单击“组”列中的用户组(在本例中为"administrators"组)。 在“组属性”表单中,转到“权限”选项卡。

此用户是要有只读访问Linux Server组的权限, 设置权限级别,然后添加到权限列表中。在“用户组属性”表单中,单击“更新。

重要提醒:在Zabbix中,主机的访问权限被分配给用户组而不是单独的用户。

权限设置完成了! 您可以尝试使用新用户的凭据登录。

8.12 Zabbix专业术语概述

这部分统一解释,一些Zabbix常用术语的含义。

主机(host)

你想要监控的联网设备,有IP/DNS。

主机组(host group)

主机的逻辑组;可能包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。

监控项(item)

你想要接收的主机的特定数据,一个度量/指标数据。

值预处理(value preprocessing)

转化/预处理接收到的指标数据* 存入数据库之前。

触发器(trigger)

一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

当接收到的数据高于阈值时,触发器从"OK"变成"Problem"状态。当接收到的数据低于阈值时,触发器保留/返回"OK"的状态。

事件(event)

一次发生的需要注意的事情,例如触发器状态改变、发现/监控代理自动注册

事件标签(event tag)

提前设置的事件标记*可以被用于事件关联,权限细化设置等。

事件关联(event correlation)

自动灵活的、精确的关联问题和解决方案

比如说,你可以定义触发器A告警的异常可以由触发器B解决,触发器B可能采用完全不同的数据采集方式。

异常(problems) - 一个处在"异常"状态的触发器

异常更新(problem update)

Zabbix提供的问题管理选项,例如添加评论、确认异常、改变问题级别或者手动关闭等。

动作(action)

预先定义的应对事件的操作

一个动作由操作(例如发出通知)和条件(*什么时间*进行操作)组成

升级(escalation)

一个在动作内执行操作的自定义方式; 发送通知/执行远程命令的顺序安排。

媒介(media)

发送告警通知的方式;传送途径

通知(notification)

关于事件的信心,将通过选设定的媒介途径发送给用户。

远程命令(remote command)

一个预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。

模版(template)

一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合

模版的应用使得主机上的监控任务部署快捷方便;也可以使监控任务的批量修改更加简单。模版是直接关联到每台单独的主机上。

应用(application)

一组监控项组成的逻辑分组

Web场景(web scenario)

检查网站可浏览性的一个或多个HTTP请求

前端(frontend)

- Zabbix提供的web界面

Zabbix API

Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务

Zabbix server

Zabbix监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等

Zabbix agent

部署在监控对象上的,能够主动监控本地资源和应用的程序

Zabbix proxy

一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序

加密(encryption)

支持Zabbix组建之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get 程序)* 使用TLS(Transport Layer Security )协议

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区