zabbix監控tomcat/mysql、shell入門

來源:https://blog.csdn.net/Powerful_Fy前端

zabbix監控Tomcat

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圖標變綠即表示配置成功:

在這裏插入圖片描述

zabbix監控MySQL

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是一種腳本語言,能夠使用邏輯判斷、循環等語法,能夠自定義函數,是系統命令的集合

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的軟鏈接文件)

date命令的用法

年月日:

[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

shell腳本中變量的用法

使用變量的狀況:

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
相關文章
相關標籤/搜索