前言
通常在3par ssmc或者命令行才能完全查看各项数据,比如硬件状态,在zabbix中如何详细并集中监控查看3par的各项系统软硬件数据或者状态呢?3par 利用snmp协议搜集数据貌似不可行,但是在zabbix官网推出了一个基于SMI-S接口结合python搜集数据的方案。
1.SMI-S介绍
- 定义:SMI-S(Storage Management Initiative Specification)是由SNIA(全球网络存储工业协会)主导,众多存储厂商参与开发的标准管理接口。
- 目标:在存储网络中的存储设备和管理软件间提供标准化通信,实现厂商无关性,提高管理效率,降低管理成本。
- 功能:支持异构多供应商环境下的SAN管理,提供统一的管理界面,使用户能轻松集成和管理多厂商产品,提升灵活性、可管理性和可靠性。
- 意义:为网络存储行业定义全新、开放的开发模式,使存储厂商专注附加值功能,加速产品开发。同时,降低终端用户选择厂商的复杂性,提高资源利用率。
SMI-S在存储管理中扮演着重要角色,它为用户提供了更多的方案选择,并简化了存储网络的管理过程。
2.开启SMI-S
ssh 3par存储
2.1 查看状态
showcim
2.2 启动
startcim
3.安装python
python环境需要为v3以上,本地rhel7.8默认只有v2版本。生产环境未联网,离线安装,本次安装v3.8.20。
3.1 下载离线包
https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tgz
3.2 安装
1.创建安装目录
mkdir -p /home/python
2.解压
tar -zxvf Python-3.8.20.tgz
3.配置,安装目录
cd Python-3.8.20
./configure --prefix=/home/python/python38
4.安装依赖包等
yum makecache
yum install -y net-tools
yum install openssl openssl-devel -y
yum install compat-openssl10
yum install libffi-devel
yum install -y net-tools
yum install libffi-devel
yum install bzip2-devel
yum install sqlite-devel
sudo yum install cmake
sudo yum groupinstall 'Development Tools'
5.安装
make && make install
6.查看
/home/python/python38/bin/python3 --version
Python 3.8.20
7.配置环境变量
cd
vi .bash_profile
PATH=$PATH:$HOME/bin:/home/python/python38/bin
4.下载模板及脚本,并自定义
4.1 下载地址
https://github.com/aklyuk/zabbix-hp-3par
4.2 python脚本拷贝至zabbix目录,并添加权限:
cp hp_3par_get_state_wbem.py /usr/lib/zabbix/externalscripts/
chmod 777 hp_3par_get_state_wbem.py
chown zabbix.zabbix hp_3par_get_state_wbem.py
4.3 修改hp_3par_get_state_wbem.py
#!/usr/bin/python3
替换为
#!/home/python/python38/bin/python3
4.4 文件转换格式
dos2unix hp_3par_get_state_wbem.py
后面执行可能会报如下错误:
-bash: ./hp_3par_get_state_wbem.py: /home/python/python38/bin/python3^M: bad interpreter: No such file or directory
5.导入模板并手动添加主机
5.1 zabbix网页导入4.1处的模板,并配置宏
5.2 手动添加主机
6.执行脚本测试
5.1 代码
./hp_3par_get_state_wbem.py --hp_ip=xxx.xxx.xxx.xxx --hp_port=5989 --hp_user=username_on_storagedevice --hp_password='xxxxxxxxxxxx' --storage_name=storage_name_in_zabbix_web_interface --discovery
更改其中变量值,返回值为0为正确。
此处执行肯定会有报错,提示缺少可用插件等。
5.2 安装插件
针对上面的缺少插件等问题,对于连网环境指令即可安装,对于没有网络的环境,就需要手动下载安装,而且对于依赖又产生的依赖更多,需要耐心一个一个安装,而且在安装各个包的过程会有版本限制。
https://pypi.org/
https://pypi.tuna.tsinghua.edu.cn/simple/bcrypt/
上面这两个网站可以搜索对应的压缩包,第二个网站的话直接改最后面单词即可搜索。
列一下我本次安装包:
简单总结一下本次安装:
下载如上压缩包,上传至目录并解压至当前目录:
/home/python/python38/lib/python3.8/site-packages
依赖关系从左至右,从下到上安装。
举例安装指令:python3.8 ./setup.py install
5.3 安装zabbix_sender
选择对应版本,下载路径:
http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/
安装
rpm -ivh /root/zabbix-sender-5.0.4-1.el7.x86_64.rpm
5.4 执行脚本
返回值为0为正常
5.5 修改log权限
执行如上脚本会生产log文件,
chmod 777 /tmp/hp_3par_state.log