监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项

本文主要是介绍监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

监控概述

  • 对服务的管理,不能仅限于可用性。

  • 还需要服务可以安全、稳定、高效地运行。

  • 监控的目的:早发现、早治疗。

  • 被监控的资源类型:

    • 公开数据:对外开放的,不需要认证即可获取的数据
    • 私有数据:对外不开放,需要认证、权限才能获得的数据

监控命令

# uptime可以查看系统已经运行了多久。最后的3个数字分别是CPU最近1分钟、5分钟、15分钟的平均负载。平均负载的值,不应该大于总核心数。[root@myhost ~]# uptime 09:28:25 up 53 days, 27 min,  0 users,  load average: 0.09, 0.08, 0.03[root@myhost ~]# free -h      # 主要用于查看内存[root@myhost ~]# swapon -s    # 查看swap空间[root@myhost ~]# df -h        # 查看硬盘使用情况[root@myhost ~]# ping -c2 www.baidu.com   # 发2个包,测试网络

zabbix

  • 实施监控的几个方面:

    • 数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)
    • 数据存储:使用mysql数据库
    • 数据展示:通过web页面
  • zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示。

安装zabbix 6.0

  • 安装说明:Download and install Zabbix
  • 中文手册:Zabbix 文档
主机名地址
zabbixserver192.168.88.5/24
web1192.168.88.100/24
web2192.168.88.200/24
  • 安装zabbix
# 1. 拷贝zabbix软件包到pubserver[root@zabbixserver ~]# scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms# 2. 更新yum仓库配置[root@pubserver ~]# createrepo -v /var/ftp/rpms/# 3. 在pubserver上创建ansible工作环境[root@pubserver ~]# mkdir -p zabbix/files[root@pubserver ~]# cd zabbix/[root@pubserver zabbix]# vim ansible.cfg [defaults]inventory = inventoryhost_key_checking = false[root@pubserver zabbix]# vim inventory [zabbix]zabbixserver ansible_host=192.168.88.5[webservers]web1 ansible_host=192.168.88.100web2 ansible_host=192.168.88.200[all:vars]ansible_ssh_user=rootansible_ssh_pass=a# 4. 为各台主机配置yum[root@pubserver zabbix]# vim files/local88.repo [BaseOS]name = BaseOSbaseurl = ftp://192.168.88.240/dvd/BaseOSenabled = 1gpgcheck = 0[AppStream]name = AppStreambaseurl = ftp://192.168.88.240/dvd/AppStreamenabled = 1gpgcheck = 0[rpms]name = rpmsbaseurl = ftp://192.168.88.240/rpmsenabled = 1gpgcheck = 0[root@pubserver zabbix]# vim 01-upload-repo.yml ---- name: config repos.dhosts: alltasks:- name: delete repos.dfile:path: /etc/yum.repos.dstate: absent- name: create repos.dfile:path: /etc/yum.repos.dstate: directorymode: '0755'- name: upload local88copy:src: files/local88.repodest: /etc/yum.repos.d/[root@pubserver zabbix]# ansible-playbook 01-upload-repo.yml # 5. 在zabbixserver上安装相应软件包[root@pubserver zabbix]# vim 02-inst-zabbix.yml---- name: install zabbixhosts: zabbixtasks:- name: install zabbix    # 安装软件包yum:name:- zabbix-server-mysql- zabbix-web-mysql- zabbix-nginx-conf- zabbix-sql-scripts- zabbix-selinux-policy- zabbix-agent- mysql-server- langpacks-zh_CNstate: present[root@pubserver zabbix]# ansible-playbook 02-inst-zabbix.yml# 6. 启动mysqld服务[root@pubserver zabbix]# vim 03-start-mysqld.yml---- name: config mysqldhosts: zabbixtasks:- name: start mysqld      # 启动mysqld服务service:name: mysqldstate: startedenabled: yes[root@pubserver zabbix]# ansible-playbook 03-start-mysqld.yml # 7. 在zabbix上创建连接数据库的用户[root@zabbixserver ~]# mysqlmysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;# 在binlog日志开启的情况下,打开函数生成器mysql> set global log_bin_trust_function_creators = 1;mysql> create user zabbix@localhost identified by 'zabbix';mysql> grant all privileges on zabbix.* to zabbix@localhost;mysql> quit;# 8. 验证数据库配置,如果登陆不到数据库表示上一步配置不正确[root@zabbixserver ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix# 9. 在数据库中创建表并导入数据[root@zabbixserver ~]# cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .[root@zabbixserver ~]# gzip -d server.sql.gz [root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < server.sql# 10. 配置zabbix_server[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.confDBPassword=zabbix# 11. 配置zabbix_agent[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 182 Hostname=zabbixserver# 12. 配置nginx展示zabbix[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf# 打开第2、3行的注释,结果如下所示:server {listen          8080;server_name     example.com;...以下省略...# 13. 启动相关服务[root@pubserver zabbix]# vim 04-start-zabbix.yml ---- name: config zabbixhosts: zabbixtasks:- name: start service    # 循环启动多个服务service:name: "{{item}}"state: startedenabled: yesloop:- zabbix-server- zabbix-agent- nginx- php-fpm[root@pubserver zabbix]# ansible-playbook 04-start-zabbix.yml 

访问zabbixserver的8080端口,进行初始化:

 注意:这里的用户名Admin,A是大写的!密码是小写的zabbix

  • 此时zabbix已经开始在监控自己了,查看默认监控配置

配置zabbix监控web1服务器

在web1上安装agent

# 1. 安装agent[root@pubserver zabbix]# vim 05-inst-agent.yml--- - name: install agenthosts: webserverstasks:- name: install agent    # 安装agentyum:name: zabbix-agentstate: present[root@pubserver zabbix]# ansible-playbook 05-inst-agent.yml # 2. 修改web1配置文件[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf 117 Server=127.0.0.1,192.168.88.5182 Hostname=web1# 3. 起动服务[root@pubserver zabbix]# vim 06-start-agent.yml ---- name: config agenthosts: web1tasks:- name: start agent      # 启动服务service:name: zabbix-agentstate: startedenabled: yes[root@pubserver zabbix]# ansible-playbook 06-start-agent.yml 

在web页面中添加对web1的监控

  • 主机:安装了agent,被监控的主机
  • 主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
  • 模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。

常用监控指标
  • Space utilization:以百分比显示的磁盘利用率
  • Used space:已用磁盘空间
  • Available memory:可用内存
  • CPU idle time:CPU空闲时间。不宜过低。
  • Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
  • Interface eth0: Bits received:网卡接收到的数据量
  • Interface eth0: Bits sent:网卡发送的数据量
  • Number of processes:系统运行的进程数
  • Number of logged in users:已登陆的用户数

自定义监控项

实现监控web1用户数量的监控项

  1. 在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
  2. 在web页面中创建监控项。监控项对应key值。

 

在被控端创建key
  • 创建key的语法
UserParameter=自定义key值,命令# 命令的执行结果,是key的value
  • 创建自定义配置文件。文件名自定义。
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/usercnt.confUserParameter=usercnt,sed -n '$=' /etc/passwd[root@web1 ~]# systemctl restart zabbix-agent.service
  • 验证自定义监控项
# 1. 安装zabbix-get[root@zabbixserver ~]# yum install -y zabbix-get[root@web1 ~]# yum install -y zabbix-get# 2. 获取监控项的值[root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt46[root@zabbixserver ~]# zabbix_get -s 192.168.88.100 -k usercnt46
创建模板
  • 创建模板

  • 创建监控项

 应用模板到主机

 查看结果

 

这篇关于监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/700641

相关文章

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚