Zabbix搭建文档-程序员宅基地

技术标签: java  Linux  运维  数据库  

简介:

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

zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。

zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。

zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。

zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。


组件:

zabbix 由以下几个组件部分构成:

1) Zabbix Server:

负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;

2) Database Storage:

专用于存储所有配置信息,以及由 zabbix 收集的数据;

3) Web interface:

zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;

4) Proxy:

可选组件,常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据 
并统一发往 Server 端;

5) Agent:

部署在被监控主机上,负责收集本地数据并发往 Server 端或 Proxy 端;

注:zabbix node 也是 zabbix server 的一种 。

 
进程:


默认情况下zabbix包含5个程序: zabbix_agentd、 zabbix_get、 zabbix_proxy、 zabbix_sender、zabbix_server,另外一个 zabbix_java_gateway 是可选,这个需要另外安装。

下面来分别介绍下他们各自的作用:

zabbix_agentd

客户端守护进程,此进程收集客户端数据,例如 cpu 负载、内存、硬盘使用情况等。

zabbix_get

zabbix 工具,单独使用的命令,通常在 server 或者proxy端执行获取远程客户端信息的命令。 通常用户排错。 例如在server端获取不到客户端的内存数据, 我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

zabbix 工具,用于发送数据给 server 或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据。

zabbix_server

zabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway 的数据最终都是提交到 server 
备注:当然不是数据都是主动提交给 zabbix_server,也有的是 server 主动去取数据。

zabbix_proxy

zabbix 代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里。

zabbix_java_gateway

zabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是只用于 Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。 它的数据最终会给到server或者proxy。

 
zabbix监控环境中相关术语:
 

主机(host) :

要监控的网络设备,可由 IP 或 DNS 名称指定;

主机组(host group):

主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

监控项(item) :

一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是 zabbix 进行数据收集的核心,相对某个监控对象,每个 item 都由"key"标识;

触发器(trigger) :

一个表达式,用于评估某监控对象的特定 item 内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

事件(event) :

触发一个值得关注的事情,比如触发器状态转变,新的 agent 或重新上 
线的 agent 的自动注册等;

动作(action) :

指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;

报警媒介类型(media) :

发送通知的手段或者通道,如 Email、Jabber 或者 SMS 等;

模板 (template) :

用于快速定义被监控主机的预设条目集合, 通常包含了 item、 trigger、graph、 screen、 application 以及 low-level discovery rule;模板可以直接链接至某个主机;

前端(frontend) :

Zabbix 的 web 接口


zabbix监听端口(socker进程):


zabbix_server --->监听10051

zabbix_agentd --->监听10050

Zabbix常用模版与触发器功能详解 例:


 
(1){Template App Zabbix Agent:agent.version.diff(0)}>0
解释: 如果当前获取的agent客户端的版本号大于前一次的不同,那么触发告警

 
(2){Template App Zabbix Agent:agent.ping.nodata(5m)}=1
解释: 如果ping客户端在5分钟内都没有数据,那么触发告警

 
(3){Template OS AIX:vm.memory.size[available].last(0)}<20M
解释: 如果最后一次获取的空闲内存大小得值小于20M,那么触发告警

 
(4){Template App SSH Service:net.tcp.service[ssh].max(#3)}=0
解释: 如果ssh远程连接连续获取的3次值的最大值都是0,那么触发告警

 
(5){Template ICMP Ping:icmppingloss.min(5m)}>20
解释: 如果连续5分钟里获取的最小值都大于20,那么触发告警

 
(6){Template ICMP Ping:icmppingsec.avg(5m)}>0.15
解释: 如果连续5分钟内的平均值大于0.15,那么触发告警

Zabbix-参考下载链接

清华大学开源软件镜像站

https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/8/x86_64/

正式部署-Zabbix

安装前准备工作

1、安装vim命令:
yum -y install vim*

检查vim是否安装:
rpm -qa|grep vim

2、编辑selinux配置文件
vim /etc/selinux/config

更改其中的值:
SELINUX=disabled

重启系统命令:
reboot

3、新建nginx的repo源
touch /etc/yum.repos.d/nginx.repo


配置nginx.repo文件
vim /etc/yum.repos.d/nginx.repo
(内容):

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

一、安装nginx

1、安装nginx程序
yum -y install nginx
2、启动ngins服务
systemctl start nginx
3、检查nginx运行状态
systemctl status nginx
4、开机启动nginx服务
systemctl enable nginx

二、安装mysql

安装mysql数据库前的装备工作

rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

由于rpm的源默认是mysql8.0版本,需改为mysql5.7版本:

vim /etc/yum.repos.d/mysql-community.repo

修改配置文件中“***注意***==***注意***”标识内容中enabled的属性值:

《文本内容》,如下:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
***注意***==enabled=1==***注意***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
***注意***==enabled=0==***注意***
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

(修改完毕)

正式安装mysql数据库:

一、运行命令:
yum -y install mysql-community-server mysql-community-devel 

附:安装MySql如果报错:
(源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

二、设置 mysql 为开机启动
systemctl enable mysqld

三、启动 mysql
systemctl start mysqld

四、查看 mysql 启动状态
systemctl status mysqld

五、查看 mysql “临时”密码
grep 'temporary password' /var/log/mysqld.log

六、用“临时”密码登录 mysql
mysql -uroot -p

七、更改密码(密码:“Test123”)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 

八、如果密码过于简单则会提示你不符合当前密码策略,执行下面语句
set global validate_password_length=4;
set global validate_password_policy=0;

九、允许远程登录
update mysql.user set Host='%' where HOST='localhost' and User='root';

十、刷新权限
flush privileges;

最后退出

quit;

三、安装zabbix-server

更新zabbix的rpm源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

清理
yum clean all

安装
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf

登陆数据库(密码:“Test123”):
mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

导入数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

更改zabbix-server配置文件中的数据库配置
vim /etc/zabbix/zabbix_server.conf

《文本内容》,如下:

LogFile=/var/log/zabbix/zabbix_server.log    #<===指定zabbix日志文件存放路径
LogFileSize=0         #<===指定日志文件大小及轮询相关,0表示禁用日志自动轮询,如果日志达到了限制,并且rotation失败,老日志文件将会被清空掉,重新生成一个新日志。
PidFile=/var/run/zabbix/zabbix_server.pid  #<===定义PID文件及路径
DBName=zabbix    #<===默认链接数据库的名称(已事先创建好)
DBUser=zabbix    #<===默认使用哪个用户链接数据库(已事先创建)
DBPassword=Test123    #<===用户链接数据库的密码(事先定义)

配置nginx域名:
vim /etc/nginx/conf.d/zabbix.conf
修改配置文件中“***注意***==***注意***”标识内容中的属性值,去掉注释,修改端口:
《文本内容》,如下:
***注意***=   listen          8066;   =***注意***

手动开启,防火墙端口:
firewall-cmd --zone=public --add-port=8066/tcp --permanent

开启端口后,要重启防火墙:
firewall-cmd --reload

开启端口后,查看端口:
firewall-cmd --query-port=8066/tcp

查看所有端口:

firewall-cmd --list-ports

更改时区
vim /etc/php-fpm.d/zabbix.conf

修改配置文件中“***注意***==***注意***”标识内容中enabled的属性值:
《文本内容》,如下:
***注意***=   php_value[date.timezone] = Asia/Shanghai   =***注意***

启动服务并设置开机自启
systemctl start zabbix-server nginx php-fpm
systemctl enable zabbix-server nginx php-fpm

四、安装zabbix-agent

更新zabbix-agent的rpm源
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

清理
yum clean all

安装
yum -y install zabbix-agent

启动服务并设置开机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent

五、安装zabbix-get

更新zabbix-get的rpm源
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

安装
yum install zabbix-get.x86_64

------------------------------------------------

结语:

经过已上三个步骤,zabbix就安装好了。需要经过其它配置,才能完成zabbix的各项功能!

Zabbix server details 页面登陆帐号和密码:
用户名:zabbix
密码:zabbix

Zabbix页面登陆帐号和密码:
Admin
zabbix

------------------------------------------------

重启zabbix相关软件:


1、zabbix_server服务重启

systemctl restart zabbix-server

2、zabbix_agentd客户端重启

systemctl restart zabbix-agent

3、nginx重启

systemctl restart nginx

查看zabbix状态:


1、zabbix_server

systemctl status zabbix-server

2、zabbix_agentd

systemctl status zabbix-agent

3、nginx

systemctl status nginx

------------------------------------------------

zabbix初始帐号和密码:

用户名 Admin 

密码 zabbix

------------------------------------------------

改端口号:

1、前言
zabbix-server的默认端口号是10051。如果存在端口号冲突,需要更改端口号。

以下为更改端口号的步骤。

2、更改配置文件 
通常用安装包,也就是yum方式部署的话,其默认的配置文件是在/etc/zabbix。

vim /etc/zabbix/zabbix_server.conf

### Option: ListenPort
#       Listen port for trapper.
#
# Mandatory: no
# Range: 1024-32767
# Default:
ListenPort=10052

将默认的10051更改为其它端口号,我设置的是10052。

3、更改页面配置
页面配置的文件在/etc/zabbix/web

vim /etc/zabbix/web/zabbix.conf.php

将$ZBX_SERVER_PORT = '10052';更改为设置的端口号即可。

4、重启zabbix-server
service zabbix-server restart 或者systemctl restart zabbix-server

------------------------------------------------

同步时间:


1、安装ntp
yum install -y ntpdate
2、与一个已知的时间服务器同步
ntpdate time.nist.gov

------------------------------------------------

登陆:

测试,zabbix_agent:

在zabbix-server上通过zabbix_get命令验证能否获取到数据

zabbix_get -s 39.105.7.121 -k "vfs.fs.size[c:,total]"

获取zabbix server服务器本机的cpu数据命令:

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jacktree365/article/details/119909172

智能推荐

DNS解析中的A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发等-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏18次。AA记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录NSNS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录SOASOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中标记哪一台是主服务器MXMX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录TXTTXT记录: 可任意填写,可为空。一_a记录

SpringBoot项目引入外部jar包_springboot引入外部jar包-程序员宅基地

文章浏览阅读695次。SpringBoot项目引入外部jar包_springboot引入外部jar包

Java系列(面试必备):HashMap和Hashtable的区别!_java hashtable的优缺点-程序员宅基地

文章浏览阅读3.1k次,点赞19次,收藏84次。Java系列(面试必备):HashMap 和 Hashtable 的 6 个区别!前言今天博主将为大家分享:Java系列(面试必备):HashMap 和 Hashtable 的 6 个区别!不喜勿喷,如有异议欢迎讨论!首先推荐结合博主的这篇文章进行阅读===>Java系列(面试必备):简单的hashCode和equals面试题,有好多坑!HashMap 和 Hashtable 是 J..._java hashtable的优缺点

elasticSearch - es报错:exception [type=search_phase_execution_exception, reason=all shards failed]_elasticsearch exception [type=search_phase_executi-程序员宅基地

文章浏览阅读5.7k次。查询语句中,字段类型使用错误,在es中查询字段类型为int,而查询语句中错误地用成了string。_elasticsearch exception [type=search_phase_execution_exception, reason=all s

WIZnet W5300-TOE MQTT 发布和订阅 (micropython)_w5500 mqtt onenet-程序员宅基地

文章浏览阅读113次。这些部分将指导您完成一系列步骤,从配置开发环境到使用 STM32f429zi (nuleo-f429zi) 和 W5300-TOE 运行以太网示例 基本设置请参阅“入门”指南。_w5500 mqtt onenet

day24.|回溯法01-程序员宅基地

文章浏览阅读381次,点赞5次,收藏7次。1.也可以叫做,它是一种搜索的方式。2.回溯是递归的副产品,只要有递归就会有回溯。回溯与递归相辅相成,只要有递归就有回溯。通常递归函数的下面就是回溯的逻辑。3.,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。(暴力查找)5.回溯法解决的问题:(1)组合问题:N个数里面按一定规则找出k个数的集合;(2)切割问题:一个字符串按一定规则有几种切割方式;(3)子集问题:一个N个数的集合里有多少符合条件的子集;(4)排列问题:N个数按一定规则全排列,有几种排列方式;

随便推点

Error:Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSeq_attempt to invoke virtual method 'void android.wid-程序员宅基地

文章浏览阅读5.2k次。Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference_attempt to invoke virtual method 'void android.widget.textview.settext(java.

BZOJ 4034 HAOI2015 T2 DFS序+线段树_haoi2015 t2-bzoj4034-程序员宅基地

文章浏览阅读2.4k次。题目大意:给定一棵树,每个点有点权,支持下列操作: 1.某个点的点权+a 2.某棵子树所有点权+a 3.查询某个点到根路径上的点权和 这个用入栈出栈序就可以了 入栈为正,出栈为负,那么一个点到根路径上的权值和就是入栈出栈序中[1,入栈位置]的和 而子树在入栈出栈序中是连续的,因此用线段树维护一下就可以了 (似乎只要无脑链剖就可以了?#include #include_haoi2015 t2-bzoj4034

3D数学基础(一)——左手坐标系和右手坐标系_3d左手坐标系-程序员宅基地

文章浏览阅读3.7k次。3D数学基础(一)——左手坐标系和右手坐标系1、左手坐标系左手坐标系的定义伸出左手,让拇指和是指成L型,大拇指向右,食指向前,中指指向前方,这样便定义好了一个左手坐标系,其中拇指为x轴,食指为Y轴,中指为Z轴。图示2、右手坐标系右手坐标系的定义右手坐标系与左手坐标系相反图示3、意义左手坐标系和右手坐标系虽然定义简单,并且可以相互转换,但是在一个场景中定义好坐标系是左手坐标..._3d左手坐标系

Java NIO之Selector_java nio selecter-程序员宅基地

文章浏览阅读278次。一、Java NIO 的核心组件Java NIO的核心组件包括:Channel(通道),Buffer(缓冲区),Selector(选择器),其中Channel和Buffer比较好理解 简单来说 NIO是面向通道和缓冲区的,意思就是:数据总是从通道中读到buffer缓冲区内,或者从buffer写入到通道中。二、Java NIO Selector1. Selector简介选择器..._java nio selecter

1. 一键安装oracle11g数据库_linux安装oracle11g数据库-程序员宅基地

文章浏览阅读2.3k次,点赞4次,收藏20次。Oracle数据库在Linux系统上安装步骤比较多,为了方便Oracle数据库的安装,编写了以下脚本,简化了Oracle数据库的安装。_linux安装oracle11g数据库

TCP/IP协议详解-程序员宅基地

文章浏览阅读60次。1、TCP/IP协议栈四层模型 TCP/IP这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。 网络接口层 模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。 互联层 互联协议将数据包封装成internet数据报,并运行必要的路由算法。 这里有四个互联协议: 网际协议IP...