來源: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