zabbix监控3par存储设备
环境:
pyhton 3 安装
下载脚本及模板文件
下载地址:官方模板
-
源码安装python3
# 下载地址 https://www.python.org/ftp/python/3.9.8/Python-3.9.8.tgz
-
下载python3的依赖关系
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
-
导入源码包并解压
tar -zxvf Python-3.5.10.tgz
-
创建python的安装目录
mkdir -p /usr/local/python
-
移动解压后的Python源码包到python目录
mv Python-3.5.10 /usr/local/software/python
-
进入解压后的目录并且执行
./configure --prefix=/usr/local/python3.9/ --with-openssl='/usr/local/openssl' cd /usr/local/software/python/Python-3.5.10 ./configure --prefix=/usr/local/python3.9/ # 指定安装目为/usr/local/software/python/ --with-openssl=指定安装路径
-
编译 编译安装
make && make install
-
添加linux环境变量 使用root账号
vi /etc/profile 在末尾添加 #python PATH=/usr/local/python3.9/bin:$PATH 保存后 执行 source /etc/profile
-
修改python的链接指向
mv /usr/bin/python /usr/bin/python.bak ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python
安装openssl 1.1.1+版本
# 作为后续安装python指定路径 ./config --prefix=/usr/local/openssl make && make install
-
修改环境变量,无法连接到开发文件
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH # 查看开发环境变量 ldd /usr/local/openssl/bin/openssl
安装3par存储模板及脚本
-
脚本存放位置
/usr/local/zabbix/share/zabbix/externalscripts
-
修改脚本解释器路径
/usr/local/software/python/bin/python3 # 查找语句 python3 -c "import os; print(os.sys.executable)"
-
存放脚本后授权
chmod +x hp_3par_get_state_wbem.py chown zabbix.zabbix hp_3par_get_state_wbem.py
-
用来测试连通性
./hp_3par_get_state_wbem.py --hp_ip=172.20.104.101 --hp_port=5989 --hp_user=3paradm --hp_password='3pardata' --storage_name=storage_name_in_zabbix_web_interface --discovery
-
此时百分之百提示显示缺少依赖关系
# 建议办法 # 缺少的模块通过外在的环境下载 urllib3的版本不能超过1.9,需要兼容1.26.6 版本兼容已经要注意 # 外部网络环境下载依赖包 /usr/local/python3.9/bin/pip3.9 download PyYAML --dest /目录/目录 # 然后打包 传过去 # 在目标机器安装 /usr/local/python3.9/bin/pip3.9 install --no-index --find-links=/path/to/download/folder pywbem 将/path/to/download/folder替换为你拷贝安装包的文件夹路径。 --no-index选项告诉pip不要从外部索引获取安装包,而是使用本地的安装包。 --find-links选项告诉pip从指定的路径查找安装包 # 缺少的两个包 pywbem paramiko 已经保存
-
下载较慢时可修改为国内镜像源
https://bbs.csdn.net/topics/603797528?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169750445316800215013429%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdiscuss.%2522%257D&request_id=169750445316800215013429&biz_id=&utm_medium=distribute.pc_search_result.none-task-community_post-2~discuss~first_rank_ecpm_v1~bbs_rank-1-603797528-null-null.bbs_rank&utm_term=python%E5%AE%89%E8%A3%85%E6%BA%90&spm=1018.2226.3001.4452 # 参考以上链接
-
如果出现版本不兼容,首先最好的办法就是直接升级当前环境的程序
# 下载需要的依赖包,传输到内网环境下载 yum install yum-utils yumdownloader --resolve openssl
-
如果已经升级出现使用的版本还是以前的版本,建议方法,创建一个虚拟环境
pip install virtualenv virtualenv zd source zd/bin/activate
-
在虚拟环境中安装需要的模块和依赖:
pip install --no-index --find-links=python/ pywbem pip install --no-index --find-links=requests/ requests # 实在不行 重新编译吧
-
继续连接,修改这个脚本中的zabbix_sender的路径和配置文件agent的路径
/usr/local/zabbix/sbin/zabbix_sender