linux12 - zabbix5.0 -- 自定义监控03

Posted FikL-09-19

tags:

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

zabbix监控模块

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

自定义监控模板流程

# 1、创建模块
# 2、创建应用集(好比是一个文件夹,里面放入一堆监控项)
# 3、创建监控项,自定义item,你记忆体想监控的内容
# 4、创建触发器,当监控下获取到值的时候,进行和服务器比较,判断,是否报警
# 5、创建图形
# 6、将具体的主机和模块链接,关联

#  一个模块可以创建多个模板
[root@zabbix01 ~]# zabbix_get -s '192.168.15.12' -p 10050 -k 'login.user' 
1  #查看登录的用户个数

1、创建模块


2、创建应用集


3、创建监控项

4、创建触发器


5、创建图形

6、关联模板


7、验证结果

# 1、设置登录用户为3个报警
[root@zabbix01 ~]# zabbix_get -s '192.168.15.11' -p 10050 -k 'login.user'
5
# 2、查看报警信息

二、邮件发送报警信息

1、创建报警媒介类型

2、测试报警媒介是否成功

3、查看报警邮件发送信息

# 1、设置登录用户为3个报警
[root@zabbix01 ~]# zabbix_get -s '192.168.15.11' -p 10050 -k 'login.user'
4
# 2、查看报警邮件发送信息


4、解决问题

# 1、登录用户小于3
[root@zabbix01 ~]# zabbix_get -s '192.168.15.11' -p 10050 -k 'login.user'
2
# 2、解决问题

5、聚合图形



三 、全网监控方案

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

1、监控方案

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

[root@zabbix01 ~]# 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.10/zabbix/api_jsonrpc.php"
# 显示ok,代表成功
HTTP/1.1 200 OK

四、监控实施方案

1、硬件监控

2、应用服务监控 (互联网上有大量的监控模板)

1、硬件监控

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

2、监控服务的具体方法

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

3、zabbix自动发现,自动注册

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

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

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

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

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

4、配置hosts解析 (所有机器)

[root@zabbix01 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.15.10 zabbix01
192.168.15.11 zabbix02
192.168.15.12 zabbix03

5、自动发现



# 如果自动发现失败
1、需要安装zabbix-agent2
[root@zabbix01 ~]#  yum -y install zabbix-agent2
2、启动zabbix-agent2
[root@zabbix01 ~]# systemctl restart zabbix-agent

6、自动注册

自动注册之前,需要把自动发现先关闭

1、配置hosts解析 (所有机器)
[root@zabbix02 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.15.10 zabbix01
192.168.15.11 zabbix02
192.168.15.12 zabbix03

2、修改配置文件 (zabbix02、zabbix03两台都执行)
#  1、zabbix02机器
[root@zabbix02 ~]# vim /etc/zabbix/zabbix_agent2.conf 
[root@zabbix02 ~]# 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.10 #写入服务端配置
ServerActive=192.168.15.10 #写入服务端地址
Hostname=zabbix02  # agent2主机名(agent3主机名)
HostnameItem=system.hostname # 把这行开启
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
# 2、重新启动zabbix-agent2.service
[root@zabbix02 ~]# systemctl restart zabbix-agent2.service 

3、验证通信
[root@zabbix01 ~]# zabbix_get -s '192.168.15.12' -p 10050 -k 'agent.ping'
1
[root@zabbix01 ~]# zabbix_get -s '192.168.15.11' -p 10050 -k 'agent.ping'
1

4、查看结果




五、分布式监控

1、分布式监控的作用

1、分担sever的集中式的压力
2、Agent > proxy > server

2、多机房的网络延时问题

上海机房 > proxy > server

六、部署分布式监控zabbix-proxy

0、环境准备

准备机器IP服务名称环境
zabbix01192.168.15.10zabbix-server关闭防火墙和selinux
zabbix02192.168.15.11zzabbix-proxy关闭防火墙和selinux
zabbix03192.168.15.12zabbix-agent关闭防火墙和selinux

1、本地hosts解析文件(所有机器)

[root@zabbix01 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.15.10 zabbix01  # zabbix-server角色
192.168.15.11 zabbix02  # zabbix-proxy角色
192.168.15.12 zabbix03  # zabbix-agent2角色

2、关闭防火墙和selinux(所有机器)

# 1、关闭防火墙
[root@zabbix01 ~]# systemctl stop firewalld
[root@zabbix01 ~]# systemctl disable firewalld
# 2、关闭selinux
[root@zabbix01 ~]# setenforce 0
[root@zabbix01 ~]# vim /etc/selinux/config 
SELINUX=disabled

3、zabbix-proxy代理服务器具体步骤如下

1、确保之前的自动注册和自动发现关闭

2、zabbix-server无需变动,正常运行就ok

3、zabbix-proxy代理服务器关闭zabbix-agent2服务

# 1、配置zabbix-proxy代理服务器,并且部署数据库,用来存储agent发来的数据可以代理到zabbix-server
[root@zabbix02 ~]# systemctl stop zabbix-agent2
# 2、安装zabbax5.0源
[root@zabbix02 ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zab
[root@zabbix02 ~]# bix-release-5.0-1.el7.noarch.rpm
[root@zabbix02 ~]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#'
/etc/yum.repos.d/zabbix.repo
[root@zabbix02 ~]# yum clean all && yum makecache
# 3、安装proxy和数据库
[root@zabbix02 ~]# yum install zabbix-proxy-mysql zabbix-get  mariadb mariadb-server -y
# 4、启动数据库,配置数据库用户,存储zabbix-agent2信息数据
[root@zabbix02 ~]# systemctl enable --now mariadb.service 
# 5、进入数据库
[root@zabbix02 ~]# 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 'Mm2021@mm'; # 授权库
MariaDB [(none)]> flush privileges; # 刷新权限
MariaDB [(none)]> exit   # 退出数据库
# 6、导入zabbix_proxy数据信息
[root@zabbix02 ~]# rpm -ql zabbix-proxy-mysql   #查询mysql文件
[root@zabbix02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.14/schema.sql.gz |mysql -uzabbix -pMm2021@mm zabbix_proxy 
# 7、再次查看数据库导入
[root@zabbix02 ~]mysql # 进入数据库
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix_proxy;
MariaDB [zabbix_proxy]> show tables;

# 8、修改zabbix-proxy配置文件,连接数据库的信息 
[root@zabbix02 ~]# sed -i.ori '162a DBPassword=Mm2021@mm' /etc/zabbix/zabbix_proxy.conf 
[root@zabbix02 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.15.10#' /etc/zabbix/zabbix_proxy.conf
[root@zabbix02 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix02#' /etc/zabbix/zabbix_proxy.conf
# 9、zabbix代理文件
[root@zabbix02 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.15.10
Hostname=zabbix02
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=Mm2021@mm
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@zabbix02 ~]# systemctl restart zabbix-proxy.service 
# 14、查看代理服务器是否启动
[root@zabbix02 ~]# netstat -lntp |grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      16998/zabbix_proxy  
tcp6       0      0 :::10051                :::*                    LISTEN      16998/zabbix_proxy 

4、web页面添加代理


5、zabbix_agent2客户端

# 1、修改配置文件 
[root@zabbix03 ~]# grep  '^[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.11  #代理服务端的IP
ServerActive=192.168.15.11 #代理服务端的IP
Hostname=zabbix03
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
# 2、重启服务
[root@zabbix03 ~]# systemctl restart zabbix-agent2.service 



6、SNMP监控

简单网络简单协议 (SNMP)

1、服务端安装snmp程序 zabbix
[root@zabbix01 ~]# yum -y install net-snmp net-snmp-utils

2、开启snmp配置
[root@zabbix01 ~]# sed -i.ori '57a view systemview included .i' /etc/snmp/snmpd.conf 
[root@zabbix01 ~]# systemctl start snmpd.service

3、使用snmp命令

[root@zabbix01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zabbix01
#  -v       指定版本   
#  -c       指定暗号  
# sysname   snmp的key



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

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

linux(centos8):zabbix配置邮件报警(zabbix5.0)

解决zabbix5.0 web界面中文乱码

ZABBIX5.0 如何新增资产主机并监测

#yyds干货盘点#单台zabbix5.0服务器如何拆分数据库角色

zabbix5.0使用自带模板监控kafka,memcached,Rabbitmq