zabbix监控tomcat, zabbix监控mysql, shell, shell脚本, date命令

zabbix 监控tomcat

  • zabbix server需要增加zabbix-java-gateway服务, 修改该服务的配置文件;
LISTEN_IP="0.0.0.0"                             #监听服务器地址
LISTEN_PORT=10052                               #监听zabbix_java进程的端口,默认是10052
PID_FILE="/tmp/zabbix_java.pid"                 #zabbix_java的pid路径
START_POLLERS=5                                 #zabbix_java的进程数
TIMEOUT=10                                      #zabbix_java的超时时间
  • 修改zabbix server的配置文件;
JavaGateway=10.212.52.14        #Java网关地址,即为Zabbix Server本身地址
JavaGatewayPort=10052           #Java网关监控端口
StartJavaPollers=5              #启动Java监控的进程数
  • tomcat增加JMX模块的使用,会启动一个端口

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等

  • zabbix-java-gateway通过JMX服务的端口获得tomcat运行的相关数据
  • 在zabbix web界面建立监控主机和链接监控模板
  1. 安装zabbix_java_gateway
[root@draft ~]# yum install zabbix-java-gateway
[root@draft ~]# vi /etc/zabbix/zabbix_java_gateway.conf 	#配置文件相关语句的修改;
LISTEN_IP="0.0.0.0"
START_POLLERS=5
[root@draft ~]# vi /etc/zabbix/zabbix_server.conf 		#server配置文件的修改;
JavaGateway=127.0.0.1
port 10052
Start poller 5
[root@draft ~]# systemctl start zabbix-java-gateway
[root@draft ~]# ps aux |grep zabbix_java |wc -l		#进程已启动;
2
[root@draft ~]# netstat -lntp			#端口启用;
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::10052                :::*                    LISTEN      9850/java     
[root@draft ~]# systemctl restart zabbix-server
  1. 需要监控的tomcat主机上启动JMX
[root@second init.d]# vi /usr/local/tomcat/bin/catalina.sh #在第一行下写入以下信息,启动JMX;
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.87.150	#修改成该机器的IP;
-Dcom.sun.management.jmxremote.port=9999	#可指定一个port号码;
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
[root@second init.d]# service tomcat restart
Stoping Tomcat
waiting for processes to exit
Starting tomcat
Tomcat started.
Tomcat is running with pid: 9646
[root@second init.d]# netstat -lntp		#9999端口启用了;
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name       
tcp6       0      0 :::9999                 :::*                    LISTEN      9646/java  
  1. zabbix web界面添加主机和配置
  • Configuration - Hosts - create host - 填写主机名 - 填写JMX interfaces(JMX的IP与端口) - 清除其他interface
    在这里插入图片描述

  • 选择templates - 选择templates(两个java的) - Add - Update
    完成配置

在这里插入图片描述

  • 查看检查数据

在这里插入图片描述

zabbix 监控mysql

  • 监控mysql需要使用zabbix-agent,所以需要修改agent的配置
  • 创建一个mysql用户用于监控mysql
[root@second init.d]# mysql -uroot -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

mysql> grant usage, process, replication client on *.* to 'mon'@'192.168.87.150' identified by 'password';   #授权本机IP访问本机mysql;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> exit                                              

[root@second init.d]# mysql -umon -ppassword -h192.168.87.150   #测试帐号的本地登陆;
  • 配置一个文件让本机zabbix-agent从文件里读取用于监控本机mysql的帐号的密码
[root@second init.d]# mkdir /var/lib/zabbix
[root@second init.d]# vi /var/lib/zabbix/.my.cnf   #内容如下;
[mysql]
host=192.168.87.150
user=mon
password='password'
socket=/tmp/mysql.sock

[mysqladmin]
host=192.168.87.150
user=mon
password='password'
socket=/tmp/mysql.sock

[root@second init.d]# systemctl restart zabbix-agent
  • zabbix-agent使用以下配置文件实现监控
    可留意里面的内容,可以在zabbix-server里调用这些函数
[root@second init.d]# ls /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf      #如有以下语句;

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive  #描述了使用密码文件使用mysqladmin ping命令;
UserParameter=mysql.version,mysql -V

[root@second init.d]# mysqladmin -umon -ppassword -h192.168.87.150 ping	#命令行执行;
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive
[root@second init.d]# mysql -V		#命令行执行;
mysql  Ver 14.14 Distrib 5.7.25, for linux-glibc2.12 (x86_64) using  EditLine wrapper

[root@draft ~]# zabbix_get -s 192.168.87.150 -p 10050 -k mysql.ping   #在zabbix server机上运行;
sh: mysqladmin: 未找到命令		#上面的配置文件调用mysqladmin但是没有在环境变量里找到;
0

[root@second init.d]# ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysqladmin	   #agent机上创建软链接文件;

[root@draft ~]# zabbix_get -s 192.168.87.150 -p 10050 -k mysql.ping    #zabbix server上调用配置文件里的函数;
1		
[root@draft ~]# zabbix_get -s 192.168.87.150 -p 10050 -k mysql.version
mysql  Ver 14.14 Distrib 5.7.25, for linux-glibc2.12 (x86_64) using  EditLine wrapper
[root@draft ~]# zabbix_get -s 192.168.87.150 -p 10050 -k mysql.size
163840
  • 可以在zabbix web界面里添加监控mysql的主机和模板
    Configuration - Hosts - create host - 填写主机名 - 填写Agent interfaces
    在这里插入图片描述

选择templates - 选择templates(两个java的) - Add - Update
完成配置

在这里插入图片描述

查看检查数据

在这里插入图片描述

Shell

  • shell是一种脚本语言
  • 可以使用逻辑判断、循环等语法
  • 可以自定义函数
  • shell是系统命令的集合
  • shell脚本可以实现自动化运维,能大大增加我们的运维效率

shell脚本结构和执行

  • 开头需要加#!/bin/bash
  • 以#开头的行作为解释说明
  • 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  • 执行方法有两种
chmod +x 1.sh; ./1.sh  #*.sh运行需要权限;
bash 1.sh		#bash *.sh不需要权限;
  • 查看脚本执行过程 bash -x 1.sh
  • 查看脚本是否语法错误 bash -n 1.sh

date命令

请查看以下用法

[root@draft ~]# date +%Y-%m-%d		#显示当前年月日;
2019-11-18
[root@draft ~]# date +%Y			#显示当前年;
2019
[root@draft ~]# date +%y			#显示当前年(2位数显示);
19
[root@draft ~]# date +%m		#显示当前月;
11
[root@draft ~]# date +%d			#显示当前日;
18
[root@draft ~]# date +%m%d-%Y	#变换格式;
1118-2019
[root@draft ~]# date +%M			#显示当前分钟数;
22
[root@draft ~]# date +%H			#显示当前小时数;
17
[root@draft ~]# date +%S				#显示当前秒数;
20
[root@draft ~]# date +%F				#显示当前年月日;
2019-11-18
[root@draft ~]# date +%T				#显示当前时分秒;
17:22:27
[root@draft ~]# date +%Ynian%myue%dri	#可增自定义字符串;
2019nian11yue18ri
[root@draft ~]# date +%Y#%m#%d			#修改连接符;
2019#11#18
[root@draft ~]# date +%s			#查看时间戳;seconds since 1970-01-01 00:00:00 UTC;
1574069151
[root@draft ~]# date +%s			
1574069155
[root@draft ~]# date -d @1574063155		#查看时间戳代表的日期;
2019年 11月 18日 星期一 15:45:55 CST
[root@draft ~]# date -d @2574063155    
2051年 07月 27日 星期四 17:32:35 CST
[root@draft ~]# date -d "+1day"				#一天后的时间;
2019年 11月 19日 星期二 17:27:01 CST
[root@draft ~]# date -d "-1day"				#一天前的时间;
2019年 11月 17日 星期日 17:27:08 CST
[root@draft ~]# date -d "-1hour"				#前一个小时时间;
2019年 11月 18日 星期一 16:27:14 CST
[root@draft ~]# date -d "+1hour"				#后一个小时时间;
2019年 11月 18日 星期一 18:27:19 CST
[root@draft ~]# date -d "+1week"			#后一周时间;
2019年 11月 25日 星期一 17:27:37 CST
[root@draft ~]# date  +%w					#当前是周几;
1
[root@draft ~]# date  +%W					#当前是一年的第几周;
46
[root@draft ~]# date -d "-50day" +%W	#50天以前是一年的第几周;
38
[root@draft ~]# date -d "-330day" +%W	#330天以前是一年的第几周;
51
[root@draft ~]# date -d "-330day" +%F		#330天以前的日期;
2018-12-23
[root@draft ~]# date -d "+1min"				#一分钟后的时间;
2019年 11月 18日 星期一 17:30:23 CST
[root@draft ~]# date -d "+30sec"			#30秒后的时间;
2019年 11月 18日 星期一 17:30:09 CST
发布了125 篇原创文章 · 获赞 5 · 访问量 4632

猜你喜欢

转载自blog.csdn.net/tanyyinyu/article/details/103122947