【11.18】zabbix(末)、shell

本文详细介绍了如何使用Zabbix监控Tomcat和MySQL,包括安装zabbix_java_gateway,配置Tomcat的JMX,设置zabbix-server,以及监控MySQL的步骤。同时,文章也简单介绍了Shell脚本的基本概念,执行方式以及date命令的各种用法,帮助读者掌握系统管理和自动化运维的基础技能。
摘要由CSDN通过智能技术生成

5.24 zabbix 监控 tomcat

  • 监控流程:
    1、安装zabbix_java_gateway
    2、配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
    3、编辑Tomcat配置文件,开启JMX
    4、添加host,指定JMX interface
    5、链接TOMCAT模板

  • 操作步骤:

1、在 zabbix-server 上安装 zabbix-java-gateway

[root@alexis-01 ~]# yum install -y zabbix-java-gateway

2、编辑 zabbix_java_gateway.conf

[root@alexis-01 ~]# vim /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_PORT=10052		//不打开也是默认 10052 端口
START_POLLERS=5		//进程数

3、编辑 /etc/zabbix/zabbix_server.conf

[root@alexis-01 ~]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1			//JavaGateway 所安装的主机 ip,我们这里是本机
JavaGatewayPort=10052		//java 的 port
StartJavaPollers=5

4、启动 zabbix-java-gateway

[root@alexis-01 ~]# systemctl start zabbix-java-gateway

5、重启 zabbix-server 服务

[root@alexis-01 ~]# systemctl restart zabbix-server

6、查看进程和端口

[root@alexis-01 ~]# ps aux|grep gateway
zabbix     8023  1.0  3.6 2267640 36624 ?       Sl   20:28   0:00 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-4.0.9.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.listenPort=10052 -Dzabbix.startPollers=5 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGateway
root       8108  0.0  0.0 112728   988 pts/0    S+   20:29   0:00 grep --color=auto gateway
[root@alexis-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      7223/rpc.mountd     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7156/sshd           
tcp        0      0 0.0.0.0:36919           0.0.0.0:*               LISTEN      7171/rpc.statd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7572/master         
tcp        0      0 0.0.0.0:43225           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      7196/zabbix_agentd  
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      8049/zabbix_server  
tcp6       0      0 :::41833                :::*                    LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN      7479/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      7155/httpd          
tcp6       0      0 :::20048                :::*                    LISTEN      7223/rpc.mountd     
tcp6       0      0 :::22                   :::*                    LISTEN      7156/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      7572/master         
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
tcp6       0      0 :::10050                :::*                    LISTEN      7196/zabbix_agentd  
tcp6       0      0 :::10051                :::*                    LISTEN      8049/zabbix_server  
tcp6       0      0 :::43939                :::*                    LISTEN      7171/rpc.statd      
tcp6       0      0 :::10052                :::*                    LISTEN      8023/java

7、开启 JMX
1)编辑配置文件 /usr/local/tomcat/bin/catalina.sh
在 #!/bin/sh 下增加一段,如果是多个客户端的 JMX 需要设置不同的 ip 和 port

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.194.130
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

2)重启 tomcat

[root@alexis-01 ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@alexis-01 ~]# /usr/local/tomcat/bin/startup.sh

3)查看 9999 端口是否启动

[root@alexis-01 ~]# netstat -lntp|grep 9999
tcp6       0      0 :::9999                 :::*                    LISTEN      9832/java  

8、zabbix web 端添加新 host
1)创建新主机,配置——主机——创建主机
2)更改主机配置:主机名称——群组——移除agent代理程序接口——添加JMX接口——127.0.0.1,端口 9999
在这里插入图片描述
3)链接模板:模板——Template App Apache Tomcat JMX——添加——添加
在这里插入图片描述
4)监测——最新数据——主机切换为arslinux-01_tomcat已经出数据了

5.25 zabbix 监控 mysql

1、授权用户

[root@alexis-01 ~]# mysql -uroot -parslinux
mysql> grant usage,process,replication client on*.* to 'mon'@'localhost' identified by '12345678';
Query OK, 0 rows affected (0.05 sec)

2、查看 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 中 HOME 的位置
HOME=/var/lib/zabbix

3、创建目录 /var/lib/zabbix

[root@arslinux-01 ~]# mkdir /var/lib/zabbix

4、在目录下创建隐藏文件 .my.cnf,添加两段内容

[root@alexis-01 ~]# vim /var/lib/zabbix/.my.cnf
[mysql]
host=localhost
user=mon
password='12345678'
socket=/tmp/mysql.sock

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

5、重启 zabbix-agent 服务(如果没改 zabbix 配置文件无需重启)

[root@alexis-01 ~]# systemctl restart zabbix-agent

6、测试

[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
sh: mysqladmin: 未找到命令
0

7、mysqladmin 的位置

[root@alexis-01 ~]# which mysqladmin
/usr/local/mysql/bin/mysqladmin

由于 PATH 的原因,可以给 mysqladmin 做个软连接到 /usr/bin/ 下

8、做软链接

[root@alexis-01 ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

9、再次测试

[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
1

10、测试下 mysql.version、mysql.size

[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
sh: mysql: 未找到命令
[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
bash: mysql: 未找到命令
[root@alexis-01 ~]# which mysql
/usr/local/mysql/bin/mysql
[root@alexis-01 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/
[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
mysql  Ver 14.14 Distrib 5.6.43, for linux-glibc2.12 (x86_64) using  EditLine wrapper
[root@alexis-01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
10240

11、添加主机和模板
1)配置——主机——创建主机——主机名称——群组——端口
在这里插入图片描述
2)模板——Template DB MySQL——添加
在这里插入图片描述
3)监测——最新数据——主机切换为 arslinux-01_mysql ,过段时间会出现新数据
4)主机可用性也显示 ZBX 可用
在这里插入图片描述

5.26 什么是 shell

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

5.27 shell 脚本结构和执行

  • 开头需要加 #!/bin/bash,不加开头在本机上可以运行,换台机器就不一定能执行。在行首文件头处指定接下来要运行的命令是通过哪一个解释器进行操作的。

  • 以#开头的行作为解释说明,脚本的名字以 .sh 结尾,用于区分这是一个 shell 脚本

  • 执行方法有两种:
    1、/bin/bash 实际上就是 /bin/sh

[root@alexis-01 ~]# ll /bin/sh
lrwxrwxrwx. 1 root root 4 11月  14 05:51 /bin/sh -> bash
[root@alexis-01 ~]# ll /bin/bash
-rwxr-xr-x. 1 root root 964608 11月 16 2019 /bin/bash

2、给文件执行权限,chmod a+x 1.sh 才可以 ./1.sh

[root@alexis-01 shell]# ./1.sh
-bash: ./1.sh: 权限不够
[root@alexis-01 shell]# chmod a+x 1.sh 
[root@alexis-01 shell]# ./1.sh
123
 22:43:46 up  2:39,  1 user,  load average: 0.10, 0.09, 0.13
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.194.1    20:08    2.00s  2:44   0.00s /bin/bash ./1.sh
1.sh

3、如果没有权限,可以 /bin/bash 1.sh

[root@alexis-01 shell]# /bin/bash 1.sh
[root@alexis-01shell]# /bin/bash 1.sh 
123
 22:48:59 up  2:44,  1 user,  load average: 0.01, 0.05, 0.11
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.194.1    20:08    3.00s  2:51   0.00s /bin/bash 1.sh
1.sh

查看脚本执行过程: bash -x 1.sh
查看脚本是否语法错误: bash -n 1.sh

5.28 date 命令

[root@alexis-01 ~]# date
2019年 11月 18日 星期一 21:32:51 CST

date +%Y-%m-%d, date +%y-%m-%d 年月日

[root@alexis-01 ~]# date +%Y-%m-%d
2019-11-18
[root@alexis-01 ~]# date +%y-%m-%d
19-11-18
[root@alexis-01 ~]# date +%Y		//年
2019
[root@alexis-01 ~]# date +%M		//分钟
14
[root@alexis-01 ~]# date +%D
11/18/19
[root@alexis-01 ~]# date +%F		
2019-11-18
[root@alexis-01 ~]# date +%S		//秒
09
[root@alexis-01 ~]# date +%s		//时间戳,距离 1970.01.01.00:00:00 多少秒
1574084027

date +%H:%M:%S = date +%T 时间

[root@alexis-01 ~]# date +%H:%M:%S
21:34:04
[root@alexis-01 ~]# date +%T
21:34:17
[root@alexis-01 ~]# date +%h
11月
[root@alexis-01 ~]# date +%m
11

date +%s 时间戳

[root@alexis-01 ~]# date +%s
1574084103   //距离 1970.01.01.00:00:00 多少秒

date +%w, date +%W 星期

[root@alexis-01 ~]# date +%w		//星期几
1
[root@alexis-01 ~]# date +%W		//几年的第几周
46

cal 日历形式查看日期

[root@alexis-01 ~]# cal
     十一月 2019    
日 一 二 三 四 五 六
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

date -d “-1 day” 一天前

[root@alexis-01 ~]# date -d "-1 day"
2019年 11月 17日 星期日 21:35:53 CST
[root@alexis-01 ~]# date -d "-1 day" +%F
2019-11-17

date -d “+1day” 一天后

[root@alexis-01 ~]# date -d "+1 day" +%F
2019-11-19

date -d “-1 month” 一月前

[root@alexis-01 ~]# date -d "-1 month" +%F
2019-10-18
[root@alexis-01 ~]# date -d "-1 year" +%F
2018-11-18
[root@alexis-01 ~]# date -d "-1 week" +%F
2019-11-11

date -d “-1 min” 一分钟前

[root@alexis-01 ~]# date -d "-1 min" +%T
21:36:43

date -d @1504620492 根据时间戳换算成日期

[root@alexis-01 ~]# date -d @1504620492
2017年 09月 05日 星期二 22:08:12 CST

date +%s -d “2019-09-09 09:09:09” 把具体的日期换算成时间戳

[root@alexis-01 ~]# date +%s -d "2019-09-09 09:09:09"
1567991349
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值