栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

熟悉zabbix的原理及架构和基本使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

熟悉zabbix的原理及架构和基本使用

目录

一、原理及架构

1、什么是zabbix

2、结构体系

3、原理图

4、通信过程

二、安装和使用

1、安装zabbix的相关软件

2、安装配置初始数据库

3、修改配置文件

4、启动Zabbix server和agent进程,并为它们设置开机自启

5、关闭防火墙和selinux

6、测试

7、添加监控主机

三、添加监控项

1、编写采集数据的脚本

2、编写自定义的用户参数文件

3、测试

一、原理及架构

1、什么是zabbix

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

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

2、结构体系

zabbix主要由以下几个软件组成:

server: Zabbix server 是 agents 向其报告可用性和完整性信息和统计信息的中心组件。server 是存储所有配置、统计和操作数据的中央存储库

数据存储库:Zabbix 收集的所有配置信息以及数据都存储在数据库中。

web界面:为了从任何地方和任何平台轻松访问,Zabbix 提供了基于 Web 的界面。该接口是 Zabbix server 的一部分,通常(但不一定)与 server 运行在同一台设备上。

Proxy: Zabbix proxy 可以代替 Zabbix server 收集性能和可用性数据。对于分散单个 Zabbix server 的负载非常有用。(分布式)

agent:Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序,并将收集到的数据报告给 Zabbix server。

3、原理图

 

4、通信过程

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy

第一部分:获取active items

  • Agent打开tcp连接
  • Agent请求items检测列表
  • server返回items列表,Agent处理响应
  • 关闭tcp连接,Agent开始收集数据

第二部分:提交数据(主动检测)

  • Agent建立tcp连接
  • Agent提交items列表收集的数据
  • server处理,并返回响应状态
  • 关闭tcp连接

二、安装和使用

1、安装zabbix的相关软件
#下载zabbix的仓库源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm


#安装zabbix server和zabbix agent
yum install zabbix-server-mysql zabbix-agent


#下载前端web和数据库,这里我选择web软件是Apache
yum install centos-release-scl
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

编辑配置文件

#修改仓库文件,启用前端的源
vim /etc/yum.repos.d/zabbix.repo

[zabbix-frontend]
...
enabled=1
...

2、安装配置初始数据库
#安装mariadb数据库
yum install mariadb mariadb-server -y


#设置开机自启动
service mariadb start
systemctl enable  mariadb.service

#登录MySQL数据库
mysql -uroot -p

#创建zabbix数据库
create database zabbix character set utf8 collate utf8_bin;

#创建用户zabbix@localhost 密码是123456,并授权
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;


#查看当前MySQL有哪些库
show databases;

#退出mysql ,导入初始数据库,会在zabbix库新建很多表
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

#切换用户查看是否导入成功
use zabbix
show tables;

3、修改配置文件

修改zabbix-server的配置文件

#修改连接到数据库的用户名和密码
vim /etc/zabbix/zabbix_server.conf

DBPassword=password

为zabbix前端配置PHP

#修改时区,改为上海
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai

4、启动Zabbix server和agent进程,并为它们设置开机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

5、关闭防火墙和selinux
#关闭防火墙并设置开机不启动
service firewalld stop
systemctl disable firewalld

#关闭selinux
setenforce 0
vim /etc/sysconfig/selinux 
SELINUX=disabled

6、测试

浏览器访问本机ip地址: http://192.168.8.26/zabbix

用户名:admin

密码:zabbix

服务器端使用zabbix_get命令测试:yum install zabbix_get -y

zabbix_get -s 192.168.8.26 -p 10050 -k "system.cpu.load[all,avg1]"
 

7、添加监控主机

1、被监控主机上安装zabbix-agent

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum install zabbix-agent -y  #安装
service zabbix-agent  restart  #启动zabbix-agent服务
Redirecting to /bin/systemctl restart zabbix-agent.service

2、修改配置文件,授权zabbix-server可以过来拉取数据

vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.8.26        #允许的ip地址,过来拿数据
ServerActive=192.168.8.26

#重启服务
service zabbix-agent restart

3、关闭防火墙和selinux

4、测试

zabbix_get -s 192.168.8.26 -p 10050 -k "system.cpu.load[all,avg1]"

三、添加监控项

自定义监控项,监控nginx的状态

1、编写采集数据的脚本

进入zabbix-agent的配置目录:/etc/zabbix/zabbix_agent.d

cd  /etc/zabbix/zabbix_agentd.d

编写一个监控脚本,内容如下:vim nginx_data.sh

#!/bin/bash

HOST="192.168.8.121"
PORT="80"
    case $1 in
        active)
           /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Active/{print $NF}'
            ;;
        reading)
           /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Reading/{print $2}'
	   ;;
        writing)
           /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Writing/{print $4}'
            ;;
        waiting)
           /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Waiting/{print $6}'
            ;;
        accepts)
           /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3 {print $1}'
            ;;
        ping)
             /sbin/pidof nginx | wc -l
            ;;
        handled)
            /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null|  awk 'NR==3{print $2}'
            ;;
        requests)
             /usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3{print $3}'
            ;;
esac

2、编写自定义的用户参数文件
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_data.sh $1

授予可执行权限

chmod +x nginx_data.sh

然后在刷新服务

service zabbix-agent restart

3、测试

在zabbix-server上运行,如下图表示数据获取成功

zabbix_get -k sc.nginx.status[active]  -s 192.168.8.121
1
zabbix_get -k sc.nginx.status[requests]  -s 192.168.0.191
117

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/826962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号