掌握zabbix跨网络(跨网段)监控,比如使用线下的zabbix服务器监控阿里云ECS服务器;
掌握zabbix_agent自定义参数中,传递多个参数的方法
●第一步准备实现线下的zabbix服务器监控阿里云ECS服务器
zabbix服务器事先搭建在了centos7.6上。
●第二步准备使用线下的zabbix服务器监控线上阿里云的nginx_status的各种连接数
ecs上事先搭建好nginx站点,并配置好Nginx_status访问策略。
做到能使用公网URL访问得到nginx_status页面。页面效果截图如下:
可以使用telnet命令【telnet 123.123.123.123 10050】来测试线上的zabbix_agent能被正常访问。(123.123.123.123为示例的阿里云ECS服务器ip地址)
特别注意安全组的开放。
依然可以使用类似【telnet 123.123.123.123 10050】的命令去测试
将阿里云ECS服务器添加到线下的zabbix的主机列表中
我的zabbix服务器是使用centos7.6搭建的,便于监控脚本的编写,本次使用shell脚本,它有着高速、便捷、语法简单的特点。
写好脚本之后就用zabbix服务器当成监控端。
比如这样写,但你不能硬抄
chmod +x /data/script/xMonitorNginxStatus.sh● 在合适的地方添加一行内容,如:
UserParameter=xMonitorNginxStatus[*],"/data/script/xMonitorNginxStatus.sh" $1 $2啰嗦:$1为你传的URL网址,$2为nginx_status的状态名(active/accepts/handled/requests/reading/writing/waiting中的任一个)
这样即实现了给自定义脚本传递2个参数
纳尼?这是什么鬼?
因为CURL可能有时候拉取网页的时候会有点慢,如果拉取网页时间超过4秒了,那么zabbix会认为超时失败。
●修改zabbix_agentd.conf的超时参数
找到包含【Timeout=】的那行,把数值调的略大一些就行,比如改成【Timeout=30】
●修改zabbix_server.conf的超时参数
找到包含【Timeout=】的那行,把数值调的略大一些就行,比如改成【Timeout=30】
啰嗦:如果你使用的是yum的安装方式,那么配置文件在/etc/zabbix/目录下。
啰嗦:中括号里两个引号的就是传递给脚本的两个参数。
这个命令的意思是,执行zabbix服务器上的用户参数xMonitorNginxStatus(即自定义脚本/data/script/xMonitorNginxStatus.sh),然后给该脚本传递两个参数,一个是一串网址,一个是writing字符串。
如果这样能正确获取数值,那说明一切都ok了。
8.如何让刚才的自定义监控脚本得到的数据以图形的方式显示到zabbix的web页面上?
在zabbix的web页面上的【配置---主机---zabbix server】添加监控项
然后再去添加个图形就完事了。
有问题?
那监控其他网站的连接状态怎么办?
那就在刚才web页面的键值里,照葫芦画瓢把你的URL写进去就是了
1.zabbix_agent程序默认使用的是10050端口,客户端开放入方向的10050端口
2.线下的zabbix服务器监控线上的服务器,zabbix服务器的出方向的10050要开放
3.自定义参数的脚本传递多个参数的写法:UserParameter=xMonitorNginxStatus[*],"/data/script/xMonitorNginxStatus.sh" $1 $2
--------------------------------------------END 2020年10月22日16:30:09-------------------------------------------------
写技术帖子非常花费时间,如果本帖对你有所帮助,希望你能随意支持一点,给我以更大的创作动力。
鄙视白瞟党
