在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
現在,當日志文件中的錯誤數量超過設定的閾值時,您將收到一封告警郵件。您可以根據需要調整腳本中的告警條件和通知方式。