实际需求:
公司已经有了100台服务器,现在需要使用zabbix全部监控起来。
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加100台机器
方法1:使用克隆的方式
方法2:自动注册和自动发现
方法3:调用zabbix api接口 curl 、python
开发自己的运维平台兼容zabbix的通道
服务监控,url监控等特殊监控:自定义监控
5.2.1 api接口使用(curl)
curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"
curl -i -X POST -H 'Content-Type:application/json' -d'
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "6a450a8fc3dce71fd310cfe338746578"
}' "http://10.0.0.61/zabbix/api_jsonrpc.php"
5.3 具体实施规划
5.3.1 硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)
snmp监控
5.3.2 应用服务监控
监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
方法1:监控873端口net.tcp.port[,873]
方法2:模拟推送拉取文件
监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key
监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
方法1:端口(通过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测
监控URL地址来更精确的监控我们的网站运行正常;
使用zabbix自带的监控Web监测 进行监控
监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp
ntp 端口udp 123
监控Nginx的7种连接状态。
自定义监控
5.3.3 监控服务通用方法
1. 监控端口 netstat ss lsof ==》 wc -l
2. 监控进程 ps -ef|grep 进程|wc -l 试运行一下
3. 模拟客户端的使用方式监控服务端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
5.4 实施全网监控
安装客户端脚本,for centos6
#!/bin/bash
#设置解析
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
#安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum clean all
yum clean all
#安装zabbix客户端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix-agent start
#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<
5.4.1 使用自动发现规则
添加自动发现规则
创建发现动作
查看自动发现的机器。
5.4.2 监控备份服务器
利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板
在服务端进行测试
[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]"
1
# 1为端口在监听 0为端口未监听
创建nfs监控模板
使用 proc.num[,,,] 键值,检测nfs进程的数量
在服务端进行测试
[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]"
5
[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,]
8
将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。
使用系统自带模板 net.tcp.port[,port] 利用自带的监控端口键值进行监控
添加新的mysql监控项端口
[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]"
1
#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
5.4.5 监控web服务器
创建监控模板 监控 nginx服务与 80 端口
proc.num[<name>,<user>,<state>,<cmdline>] 进程数。返回整数
net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"
2
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"
1
将模板关联到主机
创建监测页面
echo ok >> /application/nginx/html/www/check.html
测试监控面页
[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done
ok
ok
ok
创建web监测模板
创建应用集
创建web场景
创建图形
讲模版关联到主机
检测结果
5.4.7 监控反向代理服务器
创建自定义key
[root@lb01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf
UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l
在服务端测试
[root@m01 ~]# zabbix_get -s 172.16.1.5 -p 10050 -k "keep-ip"
1
[root@m01 ~]# zabbix_get -s 172.16.1.6 -p 10050 -k "keep-ip"
0
在web界面添加模板
将模板关联到主机
5.4.8 监控Nginx的7种连接状态
nginx服务器显示status
……
location /status {
stub_status on;
access_log off;
}
……
[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done
Active connections: 1
server accepts handled requests
73 73 69
Reading: 0 Writing: 1 Waiting: 0
Active connections: 1
server accepts handled requests
134 134 127
Reading: 0 Writing: 1 Waiting: 0
Active connections: 1
server accepts handled requests
7 7 7
Reading: 0 Writing: 1 Waiting: 0
在nginx服务器上添加key
cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'
UserParameter=nginx_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}'
UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}'
UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}'
UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}'
UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}'
UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}'
UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}'
EOF
服务端测试
[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_waiting"
0
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting"
0
[root@m01 ~]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_waiting"
0
在zabbix-web上添加
监控项
添加图形
将模板关联到主机
查看添加的图形
zabbix 安装配置基础篇 https://blog.csdn.net/qq_40025218/article/details/81778754
zabbix 自定义监控报警篇 https://blog.csdn.net/qq_40025218/article/details/81779410
zabbix 监控全网服务篇 https://blog.csdn.net/qq_40025218/article/details/81781453
zabbix 配置自动发现自动注册篇 https://blog.csdn.net/qq_40025218/article/details/81806473
zabbix 分布式监控与SNMP监控篇https://blog.csdn.net/qq_40025218/article/details/81806737
作者:惨绿少年
转载于https://www.cnblogs.com/clsn/p/7885990.html