zabbix监控分布式监控/监控Tomcat

1.分布式监控

1.有多机房是需要用到proxy
1. 网络不通
2. 网络延迟
2.当监控的主机较多时,也可以用proxy来缓解压力
1.安装proxy 数据库

# yum install zabbix-proxy-mysql mariadb-server -y


# systemctl start mariadb
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';

# zcat /usr/share/doc/zabbix-proxy-mysql-4.0.14/schema.sql.gz  | mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy

2.配置zabbix-proxy
[root@web02 ~]# grep “1” /etc/zabbix/zabbix_proxy.conf

Server=10.0.0.71
Hostname=sh_proxy

DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy

3.启动proxy

# systemctl enable zabbix-proxy.service 
# systemctl start zabbix-proxy

4.配置zabbix-agent 不通区域的agent指向不同的proxy

10.0.0.71   <--- 10.0.0.7		<---172.16.1.51
10.0.0.71   <--- 10.0.0.8		<---172.16.1.41

5.登录zabbix-web
1.管理–>agent代理程序
注意:zabbix-server端版本必须与zabbix-proxy端版本一致且server端与proxy 端不能装在同一台服务器上因为他们默认用的端口都是10051

2.监控Tomcat/jvm

1. zabbix监控Tomcat基本原理:

  1. zabbix -server找zabbix-java-gateway获取java数据)

  2. zabbix-java-gateway找java程序获取数据

  3. java程序返回数据给zabbix-java-gateway

  4. zabbix-java-gateway返回数给zabbix-server

  5. zabbix-server进行数据展示
    模拟环境:
    zabbix-server 10.0.0.71 172.16.1.71
    zabbix-gateway 172.16.1.7
    Tomcat 172.16.1.8
    2. 配置jmx监控的步骤:

  6. 安装Zabbix-Java-Gateway

[root@web01 ~]# yum install zabbix-java-gateway -y
  1. 启动Zabbix-Java-Gateway
[root@web01 ~]# systemctl restart zabbix-java-gateway
[root@web01 ~]# systemctl enable zabbix-java-gateway.service 
  1. 配置zabbix-server指向zabbix-java-gateway
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf 
JavaGateway=172.16.1.7
JavaGatewayPort=10052
StartJavaPollers=5

[root@zabbix-server ~]# systemctl restart zabbix-server
  1. 启动tomcat程序,开启jmx协议
[root@web02 soft]# vim /soft/tomcat/bin/catalina.sh     #头部添加即可
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false 
-Djava.rmi.server.hostname=172.16.1.8"   #此处ip地址填写本机ip

5.登录zabbix-web添加一台jmx的主机

3.zabbix API

不通过web页面去对zabbixweb页面进行操作
(https://www.zabbix.com/documentation/4.0/zh/manual)
1.利用zabbix API批量添加主机

  1. 在使用zabbix-api之前,先获取一个token
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://10.0.0.71/zabbix/api_jsonrpc.php
#返回的令牌
{"jsonrpc":"2.0","result":"4c831e081ff77510f9662bb9de0f9144","id":1}
  1. 使用令牌检索一台主机
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "4c831e081ff77510f9662bb9de0f9144"
}' http://10.0.0.71/zabbix/api_jsonrpc.php
  1. 使用token验证身份,并禁用某一台主机

curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.update",
    "params": {
        "hostid": "10283",
        "status": 1
    },
    "auth": "4c831e081ff77510f9662bb9de0f9144",
    "id": 1
}' http://zabbix.oldxu.com/zabbix/api_jsonrpc.php
```sql
4.使用api创建一台主机
curl -s -X POST -H 'Content-Type:application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "10.0.0.1",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "10.0.0.1",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "20"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "auth": "4c831e081ff77510f9662bb9de0f9144",
    "id": 1
}' http://zabbix.oldxu.com/zabbix/api_jsonrpc.php

zabbix优化

  1. Zabbix属于写多读少的业务, 所以需要针对zabbix的MySQL进行拆分.
    1.LAMP -->拆分成LAP + MySQL
    2.MySQL尽量使用SSD固态盘
  2. 将Zabbix-Agent被动监控模式, 调整为主动监控模式.
  3. 使用zabbix-proxy分布式监控, 在大规模监控时用于缓解Zabbix-Server压力
  4. 去掉无用监控项, 增加监控项的取值间隔, 减少历史数据保存周期(由housekeeper进程定时清理)
    5)针对于Zabbix-server进程调优, 谁忙就加大谁的进程数量, 具体取决实际情况, 不是越大越好
    6)针对于Zabbix-server缓存调优, 谁使用的缓存多,就加大它的缓存值(zabbix cache usage图表)
  5. 关注管理->队列, 是否有被延迟执行的监控项

  1. a-Z ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值