Zabbix

zabbix的基本信息

监控系统zabbix
版本6.4.20

  • 为了保证集群的健康,我们需要检测服务器的状态,就有了监控系统,专门来监控服务器的状态,当服务器状态出现问题,可以用告警的形式来提示。

  • 服务器上部署的关键的业务组件:nginx,mysql等等,如果出现故障,他也可以提示给用户,可以让尽快的处理问题。
    (监控系统只能发现,不能解决问题。)

  • zabbix是一个基于web页面的(可视化系统),分布式的系统监控和网络监控的企业级的开源监控方案。

zabbix的功能

  1. 监控服务器关键硬件的状态
  2. 可以服务器的关键指标
  3. 可以监控服务器上关键应用的状态。
  4. 可以监控网络设备(路由器,交换机等等)
  5. 关于监控容器(zabbix5开始兼容容器的监控,但是效果不是很好,目前监控容器的主流还是普罗米修斯)

zabbix的组件

  • C/S模式:client server,服务端和客户端,zabbix server和zabbix-agent,c/s模式是一个数据采集的模式,客户端把数据发送给服务端
  • B/S模式:browser/server浏览器和服务端,浏览器访问服务端的内容。b/s提供的是数据的展示和相关的监控项的配置。

zabbix-server:服务端
zabbix-agent:客户端
zabbix-proxy:服务端的代理服务器,可以代替服务端收集客户端的数据,然后转发给服务端。降低服务端直接收集客户端数据带来的系统压力。
zabbix_get:zabbix的命令行工具。

Zabbix的使用与安装

test1:192.168.233.10 zabbix-server
test2:192.168.233.20 zabbix-agent2,zabbix-proxy
test3:192.168.233.20 zabbix-agent2
qq邮箱的smtp不支持zabbix6

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

apt-get update

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y

#安装数据库
apt install mariadb-server -y


mysql_secure_installation

Enter current password for root(enter for none):回车

Switch to unix socket authentication [Y/n]y

Change the root password? [Y/n] y
123456

Remove anonymous users? [Y/n] y


Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n]y

Reload privilege tables now? [Y/n] y

#创建zabbix的库和用户
mysql -u root -p123456
create database zabbix character set utf8mb4 collate utf8mb4_bin;


create user zabbix@localhost identified by 'zabbix';


grant all privileges on zabbix.* to zabbix@localhost;

flush privileges;

#导入
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u root -p123456 zabbix


vim /etc/zabbix/zabbix_server.conf
129 DBPassword=zabbix
#取消注释

systemctl restart zabbix-server zabbix-agent apache2

#服务器
192.168.233.10/zabbix/setup.php

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

#解决乱码
cd /usr/share/zabbix/assets/fonts
#拖入
simkai.ttf

cp /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/include/defines.inc.php.bak

vim /usr/share/zabbix/include/defines.inc.php
89 define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
147 define('ZBX_FONT_NAME', 'simkai');
#graphfont改为simkai

test1主机

vim /etc/zabbix/zabbix_agentd.conf
117 Server=192.168.246.6
171 ServerActive=192.168.246.6
180
#被注释的
181 Hostname=test1

vim /etc/hosts
192.168.246.6 test1
192.168.246.11 test2
192.168.246.12 test3

systemctl restart zabbix-agent.service

在这里插入图片描述

test2主机

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

apt-get update

apt -y install zabbix-agent2

rootatest2:/opt# systemctl status zabbix-agentd.service
Unit zabbix-agentd.service could not be found.

vim /etc/zabbix/zabbix_agent2.conf
#指向服务端
80 Server=192.168.246.6
133 ServerActive=192.168.246.6
143 删除注释的Hostname
144 Hostname=test2

vim /etc/hosts
192.168.246.6 test1
192.168.246.11 test2
192.168.246.12 test3

systemctl restart zabbix-agent2.service
netstat -antp | grep 10050

test1
apt -y install zabbix-get
#命令行工具
root@test1:/opt# zabbix_get -s '192.168.246.11' -p 10050 -k 'agent.ping'
1
#返回1,通信正常

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

Zabbix的监控的原理

模板-----监控项-----触发器-----实现监控(脚本的实现)

配置自定义监控项

#test2命令行
cd /etc/zabbix/zabbix agent2.d
vim user.conf
#添加
UserParameter=login.user,who | wc-l


systemctl restart zabbix-agent2.service

zabbix_get -s '192.168.246.11' -p 10050 -k 'login.user'

页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试完成后添加
在这里插入图片描述

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

在这里插入图片描述

监控的模式

zabbix的主动模式和被动模式
主动和被动模式都是对于客户端而言的。
主动模式:客户端主动将数据发送给server或者是代理
被动模式:服务端或者porxy(代理)主动去找客户端索要数据。----被动模式(默认)
被动模式在成规模的集群(成百上千台的)都是由服务端主动去找,那么服务端的压力会很大。

自动发现

服务端可以自动发现客户端,并且把客户端添加到监控组当中去。
zabbix官网提供的API内部的接口。api和端口之间的区别
端口: 应用和应用之间的通信
api:应用内部的组件进行通信用
内部的token秘钥,首先要获取内部的通信秘钥。

#服务端命令行使用
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "user.login",
  "params": {
    "username": "Admin",
    "password": "zabbix"
  },
  "id": 1
}' http://192.168.246.6/zabbix/api_jsonrpc.php

#秘钥
aea5d00bc484587e22c587a0c7a923c5

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

curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "test2",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "192.168.246.11",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10632"
   }
   ]
},
"auth": "aea5d00bc484587e22c587a0c7a923c5",
"id": 1
}' http://192.168.246.6/zabbix/api_jsonrpc.php | python3 -m json.tool

代理设置

#test2
#安装代理
apt install -y zabbix-proxy-mysql zabbix-get zabbix-sql-scripts

apt install -y mariadb-server

mysql_secure_installation


mysql -u root -p123456
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
exit


cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -u root -p123456 zabbix_proxy

vim /etc/zabbix/zabbix_proxy.conf
3242左右,ip改为主机的ip
194 DBPassword=zabbix
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "test2",
     "proxy_hostid": "10636",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "192.168.246.7",
         "dns": "",
         "port": "10001"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "aea5d00bc484587e22c587a0c7a923c5",
"id": 1
}' http://192.168.246.6/zabbix/api_jsonrpc.php | python3 -m json.tool
vim /etc/zabbix/zabbix agent2.conf
指向代理
systemctl restart zabbix-agent2.service

批量添加主机

shell脚本:

#!/bin/bash
IP="
192.168.246.11
192.168.246.7
"
for i in ${IP}
do
#获取主机名
hostname=$(nslookup ${i} | grep 'name =' | awk '{print $4}'| sed 's/\.//')

curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "'${hostname}'",
     "proxy_hostid": "10636",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "'${i}'",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "aea5d00bc484587e22c587a0c7a923c5",
"id": 1
}' http://192.168.246.6/zabbix/api_jsonrpc.php | python3 -m json.tool
done

在这里插入图片描述

zabbix-snmp监控

snmp: 简单网络管理协议
simple network management protocol
用来监控和管理网络设备的标准协议

apt -y install snmp snmpd

snmp-agent sys-info version all
#snmp1 snmp2 snmp3 all 开启snmp协议之后,支持以上的所有版本。
snmp-agent community write public 
#路由器设备可以被哪些团体进行读写,public:公共组,所有设备都可以读写路由器的配置信息
snmp-agent target-host trap-hostname zabbix address 192.168.233.10 udp-p ort 161 trap-paramsname zabbix
#声明监控的zabbix的server端的ip地址,和snmp的监听端口

路由器配置
在这里插入图片描述
ping 192.168.246.6

#test1
vim /etc/snmp/snmpd.conf

在这里插入图片描述
设备的oid信息,一般都是从设备厂商直接获取
1:表示设备名,查询设备的所有信息
数字越短,能看到的信息就越多

systemctl restart snmpd.service

snmpwalk -c public -v2c 192.168.246.100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值