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
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客户端,采集数据 |
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
-
网页端配置Proxy;
-
agent配置只需把Server/ServerActive地址改为Proxy地址即可;
-
Proxy也可以配置上agent,进行proxy的监控;
2.3.3. 自动发现与自动注册
自动发现:
- 先创建proxy,使用ZabbixAgent创建自动发现,使用的自动发现Key建议为:
system.uname
;- 配置Discovery Action,自动配置主机;
自动注册:
使用自动注册,添加主机的时候主机名使用Agent配置的Hostname;
主机自动注册的流程:
- Zabbix客户端需要配置ServerActive;
- Zabbix客户端把自己的元数据提供始zabbix服务器或zabbix proxy;
- Zabbix客户端元数据配置:
HostMetadataItem=system.uname
,Hostname同主机名保持一致;- Zabbix网页端配置自动注册,然后添加动作,当收到元数据的时候自动添加主机法接模板等;
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'
本文来自博客园,作者:anyu967,转载请注明原文链接:https://www.cnblogs.com/anyu967/articles/17324385.html