linux12 - zabbix --zabbix自定义监控03

Posted FikL-09-19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux12 - zabbix --zabbix自定义监控03相关的知识,希望对你有一定的参考价值。

在页面添加zabbix-server的自定义监控模板

zabbix监控
zabbix离线安装

整个流程是

# 1、创建模块

# 2、创建应用集(好比是一个文件夹,里面放入一堆监控项)

# 3、创建监控项,自定义item,你记忆体想监控的内容

# 4、创建触发器,当监控下获取到值的时候,进行和服务器笔记,判断

# 5、创建图形

# 6、将具体的主机he模块链接,关联
# 一个模块可以创建多个模板

[root@zabbix ~]# zabbix_get -s '192.168.15.113' -p 10050 -k 'login.user' #查看登录的用户个数
1

全网监控方案

# 如何自动添加主机监控 监控100台机器,难道手动监控

思路
 # 1、克隆监控模板
 # 2、自动注册和自动发现
 # 3、使用zabbix的API接口,利用curl语言或者python自己编写的脚本
 # API接口 类似于笔记本接口
我们日常使用的各种软件,都是提供API接口,给开发人员进行修改以及获取数据的。

[root@zabbix-server01 ~]# curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc":
"2.0","method":"user.login","params":
{"user":"Admin","password":"zabbix"},"auth": null,"id":0}'
"http://192.168.15.113/zabbix/api_jsonrpc.php"

监控实施方案

  • 硬件监控

  • 应用服务监控

  • 互联网上有大量的监控模板

# rsync 服务监控
  监控服务器873端口是否存活的
  有关端口的监控,使用zabbix自带的key net.tcp.port[,873]
  进行数据推拉,检测效果
# nfs服务监控
  监控服务器111端口是否存活的
  有关端口的监控,使用zabbix自带的key net.tcp.port[,111]
  showmount -e ip |wc -l
 # mysql服务监控
  监控服务器3306端口是否存活的
  有关端口的监控,使用zabbix自带的key net.tcp.port[,3306]
 mysql -uroot -p
 zabbix自动了mysql监控模板,直接添加主机模板和mysql的关联主机即可
 # web服务器监控
 监控服务器380端口是否存活的
 net.tcp.port[,80]
  zabbix自动了web监控模板

监控服务的具体方法

# 端口检测的命令
netstat -lntp
lsof
ss
# 在服务端
[root@zabbix ~]# zabbix_get -s '192.168.15.113' -p 10050 -k 'net.tcp.port[,10050]'
1
# 查询进程信息
ps
#通过客户端连接
web服务器  用curl查询
mysql 用sql语句连接验证
缓存数据库服务,数据读写验证

zabbix自动发现,自动注册

# 1、准备好一台客户端机器
[root@zabbix1 ~]# 
[root@zabbix1 ~]# systemctl is-active zabbix-agent2.service 
active
# 2、验证是否存放
[root@zabbix ~]# zabbix_get -s '192.168.15.113' -p 10050 -k 'agent.ping'
1

什么是自动发现,自动注册

# 自动发现(agent2是被动模式)
zabbix server主动去发现所有的客户端,然后将客户端的信息,登记在服务器的机器上
# 缺点
zabbix sevrer压力会较大
如果定义了一个网段,100-200网段,zabbix server会自动发现这个网段的所有ip数据,耗时比较久,而且压力比较大
# 自动注册(agent2是主动模式)
zabbix agent2主动去发现自己的信息,发给zabbix sever
#缺点
zabbix agent2可能找不到server(配置文件写错了,网络不通)

被动、主动模式区别(站在agent2立场)

被动模式,对于agent2来说,就是server来找agent2拿数据  # 选择/配置/动作里面  Discovery actions 
主动模式,agent2主动把数据发给server   # 选择/配置/动作里面  Autoregistration actions

配置hosts解析

[root@zabbix1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.15.112 zabix1
192.168.15.113 zabbix2

自动注册

# 1、准备机器
192.168.15.112 zabix1
192.168.15.113 zabbix2
#2、修改配置文件
[root@zabbix1 ~]# vim /etc/zabbix/zabbix_agent2.conf 
[root@zabbix1 ~]# egrep -v '^$|^#' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.15.111 #写入服务端配置
ServerActive=192.168.15.111 #写入服务端地址
Hostname=zabbix1  #agent2主机名
HostnameItem=system.hostname #把这行开启
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

分布式监控

# 分布式监控的作用
  分担sever的集中式的压力
  Agent > proxy > server
# 多机房的网络延时问题
上海机房 > proxy > server

部署分布式监控zabbix-proxy

# 1、环境准备
192.168.15.111 zabbix-server 5.0
192.168.15.112 zabbix-proxy  #(zabbix1)
192.168.15.113 zabbix-agent2 #(zabbix2) 
# 2、基本优化完成
 关闭防火墙和selinux
# 3、具体步骤如下
确保之前的自动注册和自动发现关闭
zabbix-server无需变动,正常运行就ok
# 4、配置zabbix-proxy代理服务器,并且部署数据库,用来存储agent发来的数据可以代理到zabbix-server
# 5、安装zabbax5.0源
[root@zabbix1 ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zab
[root@zabbix1 ~]# bix-release-5.0-1.el7.noarch.rpm
[root@zabbix1 ~]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#'
/etc/yum.repos.d/zabbix.repo
 [root@zabbix1 ~]# yum clean all
# 6、安装proxy和数据库
[root@zabbix1 ~]# yum install zabbix-proxy-mysql zabbix-get  mariadb mariadb-server -y
# 7、启动数据库,配置数据库用户,存储zabbix-agent2信息数据
[root@zabbix1 ~]# systemctl enable --now mariadb.service 
# 8、进入数据库
mysql  #进入数据库
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; #创建
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; #授权
MariaDB [(none)]> flush privileges; #刷新
# 9、导入zabbix_proxy数据信息
[root@zabbix1 ~]# rpm -ql zabbix-proxy-mysql   #查询mysql文件
[root@zabbix1 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 
# 10、查看数据库导入
mysql # 进入数据库
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix_proxy;
MariaDB [zabbix_proxy]> show tables;
# 11、修改zabbix-proxy配置文件,连接数据库的信息
[root@zabbix1 ~]# 
[root@zabbix1 ~]# sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf 
[root@zabbix1 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.15.111#' /etc/zabbix/zabbix_proxy.conf
[root@zabbix1 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix1#' /etc/zabbix/zabbix_proxy.conf
# 12、zabbix代理文件
[root@zabbix1 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.15.111
Hostname=zabbix1
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=zabbix
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
# 13、启动代理服务器
[root@zabbix1 ~]# systemctl restart zabbix-proxy.service 

# 14、统一配置本地hosts(所有机器)
[root@zabbix ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.15.111 zabix
192.168.15.112 zabix1
192.168.15.113 zabbix2

zabbix_proxy配置文件

# 1、修改配置文件
[root@zabbix2 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.15.112
ServerActive=192.168.15.112
Hostname=zabbix2
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
# 2、重启服务
[root@zabbix2 ~]# systemctl restart zabbix-agent2.service 

SNMP监控

在这里插入图片描述
在这里插入图片描述

# SNMP 简单网络简单协议
# 1、服务端安装snmp程序 zabbix
[root@zabbix ~]# yum -y install net-snmp net-snmp-utils
# 2、开启snmp配置
[root@zabbix ~]# sed -i.ori '57a view systemview included .i' /etc/snmp/snmpd.conf 
[root@zabbix ~]# systemctl start snmpd.service 
# 3、使用snmp命令
# -v 指定版本    -c指定暗号  sysname snmp的key
[root@zabbix ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zabbix

以上是关于linux12 - zabbix --zabbix自定义监控03的主要内容,如果未能解决你的问题,请参考以下文章

linux12企业实战 -- 56 zabbix常规监控错误汇总

linux12 - zabbix --zabbix客户端02

linux12 - zabbix5.0 -- 客户端配置操作02

linux12企业实战 -- 55 zabbix_server 监控取值

linux12 - zabbix --zabbix自定义监控03

linux12企业实战 -- 16修改zabbix监控的主机名称