具体内容:
所有集群节点(所有虚拟机)都监控上;
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务;
7. 监控Nginx的7种连接状态;
8. 监控tomcat状态;
9. 监控memcached状态:get命中率。
一、 硬件、系统、网络监控
问题1:所有集群节点(所有虚拟机)都监控上;
答:
1.编写安装脚本
#!/bin/bash
function rhel6(){
#安装zabbix源、aliyu YUM源
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 -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.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<<EOF
/etc/init.d/zabbix-agent start
EOF
}
function rhel7(){
#安装zabbix源、aliyu YUM源
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 -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.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
systemctl restart zabbix-agent.service
systemctl enable zabbix-agent.service
}
main(){
#提取linux内核版本
i=`awk -F ‘[ -.]’ ‘{print $3}’ /proc/version`
#Centos 6 和 Centos 7 ss命令输出格式不一样
n=`ss -lntup|grep zabbix|awk -F ‘[ :*]+’ ‘NR==1{print $5}’`
if [ $n = 10050 ];then
echo “已经安装zabbix-agent”
else
if [ $i = 3 ];then
echo “===== Centos 7 安装zabbix-agent =====”
rhel7
elif [ $i = 2 ];then
echo “===== Centos 6 安装zabbix-agent =====”
rhel6
fi
fi
}
main
2.设置自动发现




二、应用服务监控
问题1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
答:1)监控873端口
1 创建一个监控服务端口的模板


2 添加一个应用集

3 新建一个监控项

4 添加触发器

5 关联主机

6 测试

2)监控进程
1. 创建一个监控服务端口的模板

2. 添加一个应用集

3. 新建一个监控项

4. 添加触发器

5. 关联主机

6. 测试

问题2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
答:有两种方法,1)监控端口111;2)监控进程,zabbix模板创建和关联同上,在服务端进行测试如下
[root@zabbix ~]# zabbix_get -s 172.16.1.31 -p 10050 -k “proc.num[nfsd]”
8
[root@zabbix ~]# zabbix_get -s 172.16.1.31 -p 10050 -k “net.tcp.listen[111]”
1
问题3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
答:有三种方法,1)监控端口111;2)监控进程;3)使用mysql自带模板,方法1和方法2同上,方法3使用mysql模板方法如下:
1. 修改/etc/my.cnf文件创建无密码登录
[root@MySQL ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
user=root
password=123456
2. 关联主机

3. 测试


问题4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
答:有三种方法,1)监控端口111;2)监控进程;3)监控页面是否正常,方法1和方法2同上,方法3监控页面方法如下:
1. 创建测试页面
[root@web01 ~]# vim /usr/share/nginx/html/test.html
sung welcome
2. 创建测试脚本
[root@web01 ~]# vim /server/scripts/nginx_check.sh
#!/bin/bash
char=`curl -s http://172.16.1.7/test.html`
[ “$char” == “sung welcome” ] && echo 1 ||echo 0
~
3. 写模板文件
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx_check,/bin/sh /server/scripts/nginx_check.sh
4. 重启程序
[root@web02 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent:
5. 测试
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k “nginx_check”
1
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k “nginx_check”
1
问题5. 监控URL地址来更精确的监控我们的网站运行正常;
1. 配置-主机-web监测

2. 创建web场景



3. 测试


问题6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务;
答:有三种方法,1)监控端口;2)监控进程;监控反向代理服务器还可以监控VIP是否正常,方法1和方法2同上,监控VIP方法如下:
1. 创建自定义key
[root@lb01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf
UserParameter=keep-ip,ip a |grep 192.168.179.3|wc -l
2. 在服务端测试
[root@zabbix ~]# zabbix_get -s 172.16.1.5 -p 10050 -k “keep-ip”
1
[root@zabbix ~]# zabbix_get -s 172.16.1.6 -p 10050 -k “keep-ip”
0
问题7. 监控Nginx的7种连接状态;
答:
1. 添加location /status

2. 服务端测试
[root@zabbix fonts]# for ip in 7 8 ;do curl 172.16.1.$ip/status ;done
Active connections: 1
server accepts handled requests
21 21 21
Reading: 0 Writing: 1 Waiting: 0
Active connections: 1
server accepts handled requests
24 24 25
Reading: 0 Writing: 1 Waiting: 0
3. 在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
4. 服务端测试
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k “nginx_waiting”
0
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k “nginx_waiting”
0
5. 创建监控项

6. 测试


问题8. 监控tomcat状态;
答:有三种方法,1)监控端口;2)监控进程;3)使用JMX模板,方法 3如下:
1. Tomcat开启远程监控功能
vim /application/tomcat/bin/catalina.sh
CATALINA_OPTS=”$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=172.16.1.9″
2. 重启Tomcat
[root@web03 ~]# pkill java
[root@web03 ~]# /application/tomcat/bin/startup.sh
3. 在zabbix-server 操作,编辑/etc/zabbix/zabbix_server.conf
# JavaGateway的服务器IP地址
JavaGateway=127.0.0.1
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5
4. 在zabbix-server 操做,yum -y install zabbix-java-gateway
5. 在zabbix-server 操做,systemctl restart zabbix-server.service zabbix-java-gateway.service
6. 在web 操做



问题9. 监控memcached状态:get命中率。
1. 创建自定义key
cat > /etc/zabbix/zabbix_agentd.d/userparameter_memcached.conf <<‘EOF’
UserParameter=memcached_stats,(echo stats; sleep 1) | telnet 172.16.1.21 11211 2>&1 | awk ‘/STAT accepting_conns / {print$NF}’
UserParameter=memcached_get,(echo stats; sleep 1) | telnet 172.16.1.21 11211 2>&1 | awk ‘/STAT get_hits / {print$NF}’
EOF
2. 服务端测试
[root@zabbix ~]# zabbix_get -s 172.16.1.21 -p 10050 -k ‘memcached_stats’
1
[root@zabbix ~]# zabbix_get -s 172.16.1.21 -p 10050 -k ‘memcached_get’
9
3. 创建监控项

4. 测试

