来源:https://blog.csdn.net/Powerful_Fy前端
A机器:zabbix服务端(192.168.234.128) B机器:zabbix客户端(192.168.234.125)java
在A机器安装zabbix-java-gateway:mysql
[root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm [root@zabbix ~]# yum -y localinstall zabbix-java-gateway-4.0.14-1.el7.x86_64.rpm
编辑gateway配置文件:linux
[root@zabbix ~]# vi /etc/zabbix/zabbix_java_gateway.conf
去掉LISTEN_IP、LISTEN_PORT(监听端口)、START_POLLERS(进程数)的注释符号#:sql
#LISTEN_IP定义被监控机器的地址,不指定默认监听所有机器shell
编辑server配置文件:centos
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
定义如下3个配置参数:tomcat
启动zabbix-java-gateway服务:bash
[root@zabbix ~]# systemctl start zabbix-java-gateway
重启zabbix-server服务:app
[root@zabbix ~]# systemctl restart zabbix-server
查看监听端口:
[root@zabbix ~]# netstat -lntp |grep java tcp6 0 0 :::10052 :::* LISTEN 8706/java
开启JMX
在B机器编辑tomcat配置文件:
[root@centos ~]# vi /usr/local/tomcat/bin/catalina.sh
添加如下内容:
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.234.125 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
#hostname定义B机器地址,端口9999(默认12345)
重启tomcat:
[root@centos ~]# /usr/local/tomcat/bin/shutdown.sh [root@centos ~]# /usr/local/tomcat/bin/startup.sh
查看监听端口9999:
[root@centos ~]# netstat -lntp |grep 9999 tcp6 0 0 :::9999 :::* LISTEN 25861/java
进入zabbix前端页面添加主机:
#与普通状况添加监控主机不一样,监控B机器的tomcat须要配置JMX接口
模板连接JMX相关的两个模板:
当JMX图标变绿即表示配置成功:
A机器:zabbix服务端(192.168.234.128) B机器:zabbix客户端(192.168.234.125)
zabbix_agent定义mysql监控的配置文件:/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
在B机器登陆mysql建立用户:
mysql> grant usage,process,replication client on *.* to zamysql@'localhost' identified by 'zamysql';
建立配置文件指定的目录:
[root@centos ~]# mkdir /var/lib/zabbix
建立my.cnf文件:
[root@centos ~]# vi /var/lib/zabbix/.my.cnf
#须要注意该文件是隐藏文件
添加如下内容:
[mysql] host=localhost user=zamysql password='zamysql' socket=/tmp/mysql.sock [mysqladmin] host=localhost user=zamysql password='zamysql' socket=/tmp/mysql.sock
在A机器测试:
[root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.ping 1 [root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.version mysql Ver 14.14 Distrib 5.6.43, for linux-glibc2.12 (x86_64) using EditLine wrapper [root@zabbix ~]# zabbix_get -s 192.168.234.125 -p 10050 -k mysql.size 10240
#已成功获取数据
在zabbix前端页面添加主机:
监控模板选择DB mysql:
ZBX标准变为绿色表示成功:
在监测→最新数据页面便可查看mysql监控数据:
shell简介:shell是一种脚本语言,能够使用逻辑判断、循环等语法,能够自定义函数,是系统命令的集合
1.shell脚本开头须要加#!/bin/bash 2.以#开头的行做为注释 3.脚本的名字以.sh结尾,用于区分这是一个shell脚本 4.执行方法有两种: 1)bash test.sh 2)./test.sh
#第二种执行方式须要有执行权限(chmod +x test.sh) 5.查看脚本执行过程:bash -x test.sh 6.查看脚本是否语法错误:bash -n test.sh
#bash能够使用sh命令代替(在/usr/bin目录下,sh是bash的软链接文件)
年月日:
[root@linux ~]# date 2019年 11月 19日 星期二 16:20:04 CST [root@linux ~]# date +%Y-%m-%d 2019-11-19 [root@linux ~]# date +%Y 2019 [root@linux ~]# date +%m 11 [root@linux ~]# date +%d 19 [root@linux ~]# date +%y #表示2019年,忽略20 19 [root@linux ~]# date +%F 2019-11-19
时分秒:
[root@linux ~]# date 2019年 11月 19日 星期二 16:27:46 CST [root@linux ~]# date +%H-%M-%S 16-28-04 [root@linux ~]# date +%T 16:28:09
周:
[root@linux ~]# date +%w #表示星期几 2 [root@linux ~]# date +%W 表示今年的第多少周 46
时间戳:
[root@linux ~]# date +%s #表示1970年1月1日到如今 1574152197 [root@linux ~]# date -d @1534150197 #倒推时间戳 2018年 08月 13日 星期一 16:49:57 CST
补充:
[root@linux ~]# date 2019年 11月 19日 星期二 16:34:37 CST [root@linux ~]# date -d "+3day" #三天后 2019年 11月 22日 星期五 16:34:45 CST [root@linux ~]# date -d "-3day" +%F #三天前 2019-11-16 [root@linux ~]# date -d "-3 month" +%F #三个月前 2019-08-19 [root@linux ~]# date -d "-30 min" +%F_%T #30分钟前 2019-11-19_16:06:16
使用变量的状况:
1.当脚本中使用某个字符串较频繁而且字符串长度很长时就应该使用变量代替 2.使用条件语句时,常使用变量判断大小 if [ $a -gt 1 ]; then ... ; fi 3.引用某个命令的结果时,用变量替代 n=wc -l test.txt 4.写和用户交互的脚本时,变量也是必不可少的 :
[root@linux ~]# read -p "input a number:" n input a number:15 [root@linux ~]# echo $n 15
若是没有自定义变量,能够使用内置变量$REPLY:
[root@linux ~]# read -p "input a number:" input a number:9 [root@linux ~]# echo $REPLY 9
5.内置变量
$1,$2,$3,$# ($1 第一个参数,$2 第二个参数,$#表示参数的和):
#!/bin/bash echo "第一个参数是$1" echo "第二个参数是$2" echo "一共有$#个参数"
结果示例:
[root@linux ~]# ./test.sh a b c 第一个参数是a 第二个参数是b 一共有3个参数
$0表示脚本名(根据执行脚本方式的不一样结果不一样):
#!/bin/bash echo "\$0是:$0"
结果示例:
[root@linux ~]# /root/test.sh $0是:/root/test.sh [root@linux ~]# ./test.sh $0是:./test.sh [root@linux ~]# sh test.sh $0是:test.sh
6.数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]:
[root@linux ~]# a=1 [root@linux ~]# b=2 [root@linux ~]# c=$(($a+$b)) [root@linux ~]# echo $c 3 [root@linux ~]# d=$[$a+$b] [root@linux ~]# echo $d 3