fix: права доступа для zabbix-agent на файлы данных

- atomic_write: chmod 644 на файлы (было 600 от mkstemp)
- install.sh: chmod 755 на /var/lib/airflow-monitor
- problems.count: grep вместо python3 (не везде доступен)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maksim Totmin 2026-04-09 10:27:26 +07:00
parent f3e1ad7df3
commit 07b07c9087
3 changed files with 4 additions and 1 deletions

View File

@ -53,6 +53,7 @@ class DataExporter:
)
with os.fdopen(fd, "w", encoding="utf-8") as f:
f.write(content)
os.chmod(tmp_path, 0o644)
os.replace(tmp_path, str(path))
logger.debug(
"File written: %s (%d bytes)",

View File

@ -333,6 +333,8 @@ for dir in "$STATE_DIR" "$LOG_DIR"; do
else
echo " Exists: $dir"
fi
# Ensure zabbix agent can read data files
sudo chmod 755 "$dir"
done
# --- Step 6: Install systemd service ---

View File

@ -17,7 +17,7 @@ UserParameter=airflow.dag.problems,cat /var/lib/airflow-monitor/problems.json 2>
# Количество проблемных DAG-ов (для простых триггеров)
# Zabbix item: type=Zabbix agent, key=airflow.dag.problems.count, type of info=Numeric (unsigned)
UserParameter=airflow.dag.problems.count,python3 -c "import json,sys; print(len(json.load(open('/var/lib/airflow-monitor/problems.json'))))" 2>/dev/null || echo 0
UserParameter=airflow.dag.problems.count,grep -o '"dag_id"' /var/lib/airflow-monitor/problems.json 2>/dev/null | wc -l
# Heartbeat — epoch timestamp последнего успешного цикла
# Zabbix item: type=Zabbix agent, key=airflow.monitor.heartbeat, type of info=Numeric (unsigned)