Zabbix的进阶使用

二、进阶使用

2.1. Linux zabbix-agent配置及使用

1)主动式:agent主动向zabbxi_server上报监控数据,需要注意主机名一致、server端的10051端口开放;

2)被动式:zabbix_server去收集被监控的服务器数据,等价于zabbix_get;

[root@agent zabbix-6.0.12]# ./configure --prefix=/home/application/zabbix --enable-agent
[root@agent zabbix-6.0.12]# make install
[root@agent etc]# grep -v -E "^#|^$" ./zabbix_agentd.conf
PidFile=/home/application/zabbix/zabbix_agentd.pid
LogFile=/home/application/zabbix/zabbix_agentd.log
Server=192.168.56.131                             # zabbix_server IP
ServerActive=192.168.56.131
Hostname=www_001                                  # 建议Hostname和网页配置一致
UnsafeUserParameters=1
Include=/home/application/zabbix/etc/zabbix_agent.conf.d/*.conf

[root@harbor application]# zabbix_get -s 192.168.56.133 -k system.uname      # 只能在zabbix的server端使用
Linux www_001 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64

2.2. 监控Windows主机

1)下载windows客户端agent,修改配置文件;

2)启动并注册agent服务:c:\\zabbix\\zabbix_agentd.exe -c c:\\zabbix\\zabbix_agentd.conf --install

LogFile=\xxxxx\xxxxxxzabbix_agentd.log
Server=192.168.56.131
ServerActive=192.168.56.131
Hostname=windows_server

2 Agent

3)自定义Key

# 无参
1)脚本: free -m |grep 'Mem:' |awk '{print $NF}'
2)zabbix_agent配置: /usr/local/zabbix/etc/zabbix_agentd/mem.conf
  UserParameter=mem.available,sh /tmp/memavailable.sh
3)网页配置: 新建模板-新建item

# 有参
1)脚本:
   case "$1" in 
     "available") free -m |grep "Mem:" |awk '{print $NF}';;
     "total") free -m |grep "Mem:" |awk '{print $2}';;
     "used") free -m |grep "Mem:" |awk '{print $3}';;
     "*") echo "not support";;
   esac
2)zabbix_agent配置: /usr/local/zabbix/etc/zabbix_agentd/mem.conf
   UserParameter=mem.check[*],sh /tmp/mem.sh $1
3)网页配置: 新建模板-新建item
4)测试:zabbix_get -s 192.168.56.10 -k mem.check[total]

2.3. 分布式Proxy和自动注册

2.3.1. 架构

服务器 IP 作用
zabbix-server 192.168.56.131 zabbix服务端
zabbix-proxy,mysql 192.168.56.132 zabbix proxy(对server提供监控数据,收集agent的数据),mysql存储监控数据
zabbix-agent 192.168.56.133 zabbix客户端,采集数据

1 High availability

4 Proxy

2.3.2. 搭建及使用

[root@proxy ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@proxy ~]# ./configure --prefix=/home/application/zabbix \
              --enable-proxy --enable-agent --with-mysql --with-net-snmp \
              --with-libcurl --with-libxml2 && make && make install
[root@proxy ~]# chown -R zabbix.zabbix /home/application/zabbix
[root@proxy ~]# cd /home/application/zabbix/etc/zabbix_proxy.conf
Hostname=proxy
Server=192.168.56.131  # 上报给zabbix_server,对应的agent配置汇报给proxy
LogFile=/home/application/zabbix/zabbix_proxy.log
DBHost= xxx
DBUser= xxx
DBName= xxx
DBPassword= xxx
DBPort= xxx
ConfigFrequency=60

# 初始化数据库(DB:zabbix User:zabbix)
mysql> source /home/xy/Package/zabbix/zabbix-6.0.12/database/mysql/schema.sql;
Query OK, 1 row affected (0.01 sec)
# 网页端 创建Proxy,模式active
  1. 网页端配置Proxy;

  2. agent配置只需把Server/ServerActive地址改为Proxy地址即可;
    image

  3. Proxy也可以配置上agent,进行proxy的监控;
    image

2.3.3. 自动发现与自动注册

自动发现:

  1. 先创建proxy,使用ZabbixAgent创建自动发现,使用的自动发现Key建议为:system.uname
  2. 配置Discovery Action,自动配置主机;

image

image


自动注册:

使用自动注册,添加主机的时候主机名使用Agent配置的Hostname;

主机自动注册的流程:

  1. Zabbix客户端需要配置ServerActive;
  2. Zabbix客户端把自己的元数据提供始zabbix服务器或zabbix proxy;
  3. Zabbix客户端元数据配置:HostMetadataItem=system.uname,Hostname同主机名保持一致;
  4. Zabbix网页端配置自动注册,然后添加动作,当收到元数据的时候自动添加主机法接模板等;

image

image

2.4. 监控MySQL

Z投稿|基于Centos7 Zabbix agent2监控MySQL数据库(基于linux)

[# MySQL by Zabbix agent](https://www.cnblogs.com/piaoyang2087/articles/13853107.html)
[root@harbor zabbix_agentd.conf.d]# cat ./userparameter_mysql.conf
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)
UserParameter=mysql.ping[*], HOME=/home/application/zabbix/etc mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], HOME=/home/application/zabbix/etc mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], HOME=/home/application/zabbix/etc mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/home/application/zabbix/etc mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], HOME=/home/application/zabbix/etc mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], HOME=/home/application/zabbix/etc mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], HOME=/home/application/zabbix/etc mysql -h"$1" -P"$2" -sNX -e "show slave status"

[root@harbor etc]# cat ./.my.cnf 
[client]
user='zbx_monitor'
password='zabbixpwd'

image

image

image

posted on 2023-04-16 23:02  anyu967  阅读(70)  评论(0)    收藏  举报