在CentOS系统中,您可以通过配置rsyslog和创建自定义脚本来实现Syslog日志的告警通知。以下是具体步骤:
sudo yum install rsyslog-mysql
/etc/rsyslog.conf文件,取消以下行的注释:$ModLoad ommysql
CREATE DATABASE Syslog;
GRANT ALL PRIVILEGES ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
USE Syslog;
CREATE TABLE SyslogEvents (
id INT AUTO_INCREMENT PRIMARY KEY,
eventTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
hostName VARCHAR(255),
app_name VARCHAR(255),
procID INT,
msg TEXT
);
/etc/rsyslog.d/50-default.conf文件,添加以下行:*.* action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="your_password")
sudo systemctl restart rsyslog
log_monitor.sh的脚本文件,并添加以下内容(根据您的需求自定义告警条件和通知方式):#!/bin/bash
LOG_FILE="/var/log/messages"
ALERT_EMAIL="your_email@example.com"
THRESHOLD=10
# 检查日志文件中的错误数量
ERROR_COUNT=$(grep -c "error" $LOG_FILE)
# 如果错误数量超过阈值,则发送告警邮件
if [ $ERROR_COUNT -gt $THRESHOLD ]; then
echo "Alert: More than $THRESHOLD errors found in $LOG_FILE" | mail -s "Log Alert" $ALERT_EMAIL
fi
chmod +x log_monitor.sh
crontab -e
在文件末尾添加以下行,以便每5分钟运行一次脚本:
*/5 * * * * /path/to/log_monitor.sh
现在,当日志文件中的错误数量超过设定的阈值时,您将收到一封告警邮件。您可以根据需要调整脚本中的告警条件和通知方式。