snmp监控

SNMP即使网络管理发出一个request请求,设备response响应
在这里插入图片描述
UDP协议上层:
SNMP 161/162
DNS 53 (TCP)
DHCP 67/68

  • SNMPv1
    只有一种安全级别,团体名,类似于密码很容易被截获

  • SNMPv2c
    对发出的报文除了目的ip都进行了加密

  • SNMPv3
    添加安全认证和加密,(路由器而言,不通过认证,不允许你对我监控,对SNMP数据进行加密)支持用户名,密码和community

  • 监控软件snmpb
    可以直接从官网下载,点开树形的mib结构就可以看到对应mib采回的设备信息,配置也很简单,只有2个步骤
    1.设置名字,写下要监控的设备,和端口(默认161)
    在这里插入图片描述
    2.填写设备的community
    在这里插入图片描述
    展开树形结构,点击mib就可以查看对应属性信息
    在这里插入图片描述

zabbix监控

官方文档:https://www.zabbix.com/documentation/

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

Database Storage:用户存储所有配置信息,以及存储由Zabbix Server收集到的数据;

Web Interface: Zabbix的GUI接口,通常与Server运行在同一台主机上;

Zabbix Proxy:常用于分布监控环境中,代理Server收集部分被监控的监控数据并统一发往Server端;(通常大于500台主机需要使用)

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

这里注意用8.0.13创建数据库时

```
	1. create database zabbix character set utf8 collate utf8_bin;
	2. CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';(创建用户名密码zabbix/zabbix访问zabbix数据库)
	3. GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;(授权zabbix访问)
```

绑定数据库和表结构
```
	1.(进入create.sql.gz所在目录 )cd /usr/share/doc/zabbix-server-mysql-3.4.5/ (tab随版本不同改变)
		create.sql.gz:自动创建的表结构
	 
	2.(通过docker创建表结构)zcat create.sql.gz | mysql -h 10.124.209.10 -P 3306 -uroot -proot zabbix
	 -h是当前主机,想在哪个主机上建立zabbix数据库表,一定要进入第一步的表结构
	 
	3.(默认情况是这种)zcat create.sql.gz |mysql -uroot -p zabbix
```

其他配置
①修改配置文件
vi /etc/zabbix/zabbix_server.conf(修改server=1.1.1.1和localhost的区别是localhost是本地访问,ip是饶了一圈回来访问,就不需要zabbix去找映射的socket)

DBHost=localhost         # 数据主机名
DBName=zabbix            # 数据库实例
DBUser=zabbix            # 用户名
DBPassword=zabbix        # 密码

vi /etc/httpd/conf/http.conf里修改前台监听listen的接口,默认是80,会与web端口冲突
改完后要重启:systemctl restart httpd.service

②:偶尔也要查看vi /etc/php.ini
查看状态:systemctl status zabbix-server.service

③:查看log
tail -f /var/log/zabbix/zabbix_server.log

④:重启服务
service httpd restart
service zabbix-agent restart
service zabbix-server restart

⑤:根据文件名查找
find / -name zabbix_server.log

⑥:根据文件查找内容,类似show run
cat /etc/zabbix/zabbix_agentd.conf | grep Hostname

⑦:在linux上查看zabbix版本
在这里插入图片描述

注意,当数据库使用docker启动时,zabbix无法获取数据库的socket,所以需要建立软连接,将socket放到指定位置
ln -s /root/zabbix_mysql/mysqld.sock /var/lib/mysql/mysql.sock
(后边是zabbix默认去找的socket路径,这些路径在zabbix_server.conf有记录)

此时访问如下网址查看可视化界面

安装:http://10.79.148.117/zabbix/setup.php
登陆:http://10.124.209.11/zabbix/index.php(以管理员和用户两种身份)

安装过程中问题总结
1.zabbix启动时间很慢 ps -ef | grep zabbix:杀掉主进程
卡死是因为红色的zabbix起不来,所以无法start,直接kill -9 红色的zabbix

2.每次重启服务器要setenforce 0
3.安装可视化界面时上海的时区默认被注释掉了,需要将注释取消
在这里插入图片描述
安装成功会提示如下界面

在这里插入图片描述
此时进入到登录界面,默认的用户名和密码是Admin/zabbix
在这里插入图片描述
在server上查看snmp功能是否可行:
snmpwalk -v2c -ccisco 10.124.209.94 .1.3.6.1.2.1.1.5(注意不要忘记".",可以不写默认会去所有的mib)

  • zabbix通过脚本实现数据采集

    1. login拿到权限auth
    2. 创建group
    3. 创建host
    4. 根据host-id拿到interface-id
    5. 根据interface-id创建item
    6. 根据item-id获取history

注意事项:

  1. Since Zabbix 4.0.11, the API history.get has been reworked and is more strict. From now times must be an integer
    在这里插入图片描述

  2. 问题描述: skipped: maximum number of running instances reached (1)
    原因:执行的进程数超限
    解决:scheduler.add_job(要执行的程序, ‘interval’, seconds=60 * 5, max_instances=10)

  3. 问题描述:如果请求history的item是数组的形式,返回个数与请求个数不等
    解决:加大时间间隔(time_from,time_till)

若遇到Timeout while connecting to “xxx”
在这里插入图片描述
①:先检查snmpb软件是否可以正常取回信息
②:网络层面:在zabbix所在的server上ping 红色的IP地址,若ping不同肯定无法采集snmp信息,
③:zabbix层面:检查snmp community等信息是否正确
④:设备层面:路由器或交换机是否配置了snmp功能
配置命令:snmp-server community cisco RO

postman调用api

通用url:http://10.124.209.10:81/zabbix/api_jsonrpc.php

  • 获取auth

POST: body:

{
	"jsonrpc":"2.0",
	"method":"user.login",
	"params":{"user":"Admin","password":"zabbix"},
	"auth":null,
	"id":0
	
}
  • 创建host

POST body:

 {
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "192.168.1.1",
        "interfaces": [
            {
            "type": 2, 
        	 "main": 1, 
        	 "useip": 1,  
        	 "ip": "10.75.44.123", 
        	 "dns": "",
             "port": "161"}
        ],
        "groups": [
            {
                "groupid": "28"
            }
        ]
    },
    "auth": "de791973822a27349aa579aaab2380c6",
    "id": 1
}

  • 创建item监控项
    POST body:
# type 4:普通snmp类型,15:calculate类型
{
     "jsonrpc": "2.0",
     "method": "item.create",
     "params": {
                    "name": "bandwidth_GigabitEthernet5",
                    "key_": "key_bandwidth_GigabitEthernet5",
                    "hostid": 10299,
                    "type": 4,
                    "value_type": 3,
                    "interfaceid": 176,
                    "snmp_community": "cisco",
                    "snmp_oid": "1.3.6.1.2.1.31.1.1.1.6.5",
                    "delay": "43200s",
                    "history":"90d",
                },
     "auth": "48705211acc878f0b5eb7fe826405cda",
     "id": 1
 }           
  • 获取snmp数据
    POST body:
# 1:string, 3:int(获取流量)
{
	"jsonrpc":"2.0",
	"method":"history.get",
	"params":{
		"history":"1",
		"itemids":["28613"],
		"hostids": "10263",
		"time_from": time_from,
        "time_till": time_till
	
	},
	"auth":"a6786082887aabf8ca67518a98709bbe",
	"id": 1
}

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值