zabbix-agent自定义配置监控项
1. 环境准备
本例中安装zabbix
开源软件和zabbix
运行所需的中间件和数据库apache、php
和postgres
,软件版本信息如下:
软件 | 版本 |
---|---|
zabbix | Zabbix6.4.0 |
apache | httpd-2.4.57 |
apr | apr-1.7.4 |
apr-util | 1.6.3 |
php | 8.2.6 |
sqlite-autoconf | 3420000 |
gcc | 11 |
postgres | 14.7 |
zabbix-agent | 6.4.17 |
主机信息如下:
Red Hat Enterprise Linux Server 7.9 (Maipo)
主机名 | 主机地址 | 用途 |
---|---|---|
zib_server | 192.168.101.238 | zabbix的服务器地址 |
pgsql_master | 192.168.101.232 | pgsql的主服务器 |
pgsql_backup | 192.168.101.239 | pgsql的备服务器 |
2. agent的zabbix-agent.cong文件配置
要启用自定义配置,需要修改配置文件。
vi /usr/local/etc/zabbix_agentd.conf
# 修改
UnsafeUserParameters=1
如果提到了 “UnsafeUserParameters”,通常指的是允许用户定义的自定义参数或命令,这些参数可以在 Zabbix Agent 配置中通过 UserParameter
指令定义。这些自定义参数允许用户根据需要执行各种操作或收集特定的监控数据,但同时也增加了安全风险,因为不当配置可能导致安全漏洞或不可预料的系统行为。
为了避免潜在的安全问题,Zabbix Agent 在默认情况下禁用了对于 UserParameter
的使用,即使在配置文件中出现了相关的设置,也不会生效,除非明确地在配置中将其设置为允许 (UnsafeUserParameters=1
)。在启用这些不安全的用户参数时,开发人员和系统管理员必须格外小心,确保仅允许受信任和经过验证的命令和参数,以减少潜在的安全风险。
3. psql环境准备
根据解决zabbix用户无法使用psql命令的问题.md
文档来进行操作。
4. 创建文件夹
创建shell脚本目录,创建zabbix-agent自定义配置项目录。(如果有了不需要创建)
su - root
mkdir -p /usr/local/zabbix/etc/shell_dict
mkdir -p /usr/local/zabbix/etc/zabbix_agent.d
chown zabbix:zabbix /usr/local/zabbix/etc/shell_dict
chown zabbix:zabbix /usr/local/zabbix/etc/shell_dict
5. 创建soltStatus.conf文件
su zabbix
cd /usr/local/zabbix/etc/zabbix_agent.d
vi soltStatus.conf
cat soltStatus.conf
UserParameter=soltStatus[*],"$1"/soltStatus.sh "$2"
6. 创建soltStatus.sh文件
su zabbix
cd /usr/local/zabbix/etc/shell_dict
vi soltStatus.sh
# 创建完成之后重启zabbix_agentd服务
ps aux | grep zabbix_agentd
kill 进程pid
/etc/init.d/zabbix_agentd
shell脚本内容如下:
#!/bin/bash
PGSHELL_CONFDIR="$1"
source $PGSHELL_CONFDIR/zabbix_shell.conf
query="SELECT active FROM pg_replication_slots where slot_name='pgbackup';"
# 执行查询,并获取结果
result=$($PSQL -t -c "${query}" | tr -d '[:space:]')
# 检查结果并输出状态
if [ "$result" == "t" ]; then
# echo "Repl