Thứ tư, 27/11/2013 | 00:00 GMT+7

Cách gửi cảnh báo qua e-mail trên VPS CentOS để giám sát hệ thống

Khả năng gửi cảnh báo qua e-mail là điều cần thiết cho việc quản lý hàng ngày của bất kỳ VPS nào. Đối với administrator hệ thống (và cả user ), việc có thể tận dụng khả năng [mới] này không chỉ giúp mọi thứ dễ dàng hơn mà còn cung cấp cho bạn nhiều đồng minh trong cuộc chiến chống lại kẻ trộm hoặc thời gian chết với các trình kích hoạt mà bạn có thể tạo.


Trong bài viết DigitalOcean này, ta sẽ tìm hiểu cách gửi cảnh báo qua e-mail trên CentOS VPS một cách đơn giản và nói về các trình kích hoạt khác nhau mà ta có thể đặt để cài đặt bảo mật tổng thể tốt hơn và duy trì một hệ thống hoạt động trơn tru. Ta sẽ làm điều này bằng cách hiểu những điều cơ bản về e-mail, xem xét các ứng dụng cần thiết cùng với các ví dụ về các kích hoạt cảnh báo e-mail khác nhau mà bạn có thể đặt và logic đằng sau việc xác định các nhu cầu quan trọng để tạo thêm.

Hiểu về thư điện tử


Không bị nản lòng bởi số lần ta sử dụng, sự phức tạp của việc gửi và nhận email hiếm khi được nghĩ đến (cũng như không thực sự nhìn thấy được) do phần lớn sự phức tạp được các công ty tóm tắt dưới dạng các dịch vụ e-mail trực tuyến, đơn giản. Commit chống lại tin nhắn rác càng khiến điều đó trở nên khó khăn hơn, gây tốn kém rất nhiều nỗ lực cho bất kỳ ai chỉ muốn gửi thư điện tử (e-mail).

Thư điện tử (hoặc e-mail) có thể được coi là một phương thức hoặc một loại thông điệp được phân phối dưới dạng điện tử từ bên này sang bên khác. Đây cũng không phải là một quá trình trực tuyến lan truyền trên internet, vì nó có thể xảy ra trên mạng local hoặc trên cùng một máy (tức là VPS của bạn) thông qua (thường là) một công cụ tích hợp sẵn. Tuy nhiên, khi cần gửi e-mail qua internet, rất nhiều thành phần hoạt động, bắt đầu từ các tác nhân chuyển tin .

Đại lý chuyển thông báo (hoặc Đại lý truyền thông báo)


“Tác nhân chuyển tin nhắn” là một ứng dụng thực sự thực hiện việc gửi (e-mail) các tin nhắn được ràng buộc cho (các) user trên cùng một hệ thống hoặc ở nơi khác (tức là qua internet hoặc mạng LAN). Ứng dụng MTA thường được vận chuyển theo mặc định với các bản phân phối Linux khác nhau và chúng được ứng dụng e-mail sử dụng để gửi thư giữa các server , thường sử dụng giao thức SMTP .

Tác nhân User Thư (Ứng dụng Thư điện tử)


Nhiều “tác nhân user thư” có sẵn là các ứng dụng được user (tức là bạn) hoặc các ứng dụng khác sử dụng để gửi và nhận e-mail. Chúng phụ thuộc vào các đại lý chuyển tin nhắn (MTA) để hoạt động. Microsoft Outlook, Mozilla Thunderbird hoặc thậm chí Gmail –mà hoạt động trực tuyến– đều là những ví dụ phù hợp cho tác nhân user thư.

Giao thức truyền thư đơn giản (SMTP)


Để truyền thông điệp giữa các server , một ngôn ngữ chung (nghĩa là một giao thức) cần được cài đặt để chúng có thể giao tiếp với nhau. Được tạo ra và tiêu chuẩn hóa cách đây nhiều thập kỷ, SMTP đã trở thành cách để gửi tin nhắn. MTA, sử dụng giao thức SMTP, thực hiện việc gửi e-mail.

Đơn giản chỉ cần gửi e-mail bằng mailx gia truyền


Ngày nay, kiến trúc được giải thích ở trên chỉ bao gồm một phần bản chất phức tạp của việc trao đổi e-mail. Để một hệ thống "thích hợp" hoạt động, còn rất nhiều việc cần phải làm và thậm chí điều đó, thật không may, không đảm bảo khả năng gửi của e-mail – đến hộp thư đến và folder spam.

Tuy nhiên, trong bài viết của ta , ta sẽ tập trung vào sự đơn giản cực độ. Ta mong muốn giúp bạn cài đặt và vận hành chỉ trong vài phút , để bạn có thể tập trung vào công việc thực tế của bạn , quản trị hệ thống và nhận thông báo trong hộp thư đến của bạn.

Ta sẽ làm việc với Heirloom mailx , một Tác nhân User Thư tuyệt vời có nguồn root từ Berkeley Mail . Nó cung cấp hỗ trợ bổ sung cho một số giao thức bao gồm (nhưng không giới hạn) IMAP, POP3 và tất nhiên là cả SMTP. Nó sẽ là công cụ ta sử dụng để nhận cảnh báo và cảnh báo hệ thống.

Lưu ý: Xem qua các tài liệu hoặc diễn đàn trực tuyến, bạn có thể thấy một ứng dụng tương tự được gọi là nail . Hai dự án giống nhau và đinh được kết hợp vào mailx . Do đó, nếu bạn thấy các lệnh e-mail sử dụng “nail”, bạn chỉ cần thay thế nó bằng “mail” hoặc “mailx” để thực thi chúng. Ngoài ra, bạn có thể tạo một điểm softlink đến ứng dụng mailx . Bạn có thể tìm hiểu thêm về lịch sử của thư, Thư, mailx và nail bằng cách truy cập lịch sử mailx . Để tạo softlink , vui lòng tiếp tục đọc.

Cài đặt mailx


Hãy bắt đầu với việc cập nhật hệ thống của ta .

Xin lưu ý: Nếu bạn đang sử dụng môi trường production , ổn định, bạn có thể cần bỏ qua bước này vì nó có thể ảnh hưởng đến các ứng dụng đang chạy của bạn.

Để cập nhật hệ thống của bạn, hãy chạy như sau:

$ yum -y update 

Bắt đầu với mailx khá đơn giản. Ta sẽ sử dụng trình quản lý gói yum để download và cài đặt nó.

Trên máy CentOS / RHEL của bạn, hãy thực hiện như sau:

$ yum install -y mailx 

Và đó là nó! Bây giờ ta có thể bắt đầu gửi e-mail bằng lệnh “mail” (hoặc mailx).


Các softlink ( softlink ) là các file bao gồm một tham chiếu đến một file hiện có khác.

Một số tập lệnh và ứng dụng giám sát có thể sử dụng “email” thay vì “mail” hoặc “mailx” để gửi e-mail. Nếu bạn thấy mình trong trường hợp này, bạn có thể tạo một softlink , trỏ (tham chiếu) đến mailx.

Dưới đây, ta đang tạo một softlink cho “mail” để thực thi “mailx”.

Để tạo một softlink , hãy chạy như sau (thay thế /bin/email bằng tên liên kết bắt buộc):

$ ln -s /bin/mailx /bin/email 

Cách đặt Server SMTP bên ngoài để chuyển tiếp thư điện tử


Việc sử dụng giải pháp tinh gọn này, như đã đề cập ở trên, có thể nghĩa là một số e-mail của bạn có thể lọt vào folder spam. Vì bạn đang hướng tới một ứng dụng đơn giản cho các cảnh báo, đây không phải là vấn đề. Tuy nhiên, nếu bạn muốn tăng tốc độ gửi (tức là đến hộp thư đến của bạn), bạn có thể chọn chuyển tiếp thư của bạn thông qua các server SMTP bên ngoài (tức là của nhà cung cấp e-mail của bạn hoặc bởi các dịch vụ e-mail thương mại).

Để cài đặt server SMTP [cấu hình] cho “mailx” sử dụng, ta cần chỉnh sửa nội dung của file /etc/mail.rc nơi tìm thấy cài đặt [nhất định] của ứng dụng. Ta sẽ mở file này bằng editor văn bản “nano” và thêm cài đặt của ta lên trên cùng.

Mở “mail.rc” bằng “nano”:

$ nano /etc/mail.rc 

Dưới đây, bạn có thể tìm thấy một cài đặt SMTP mẫu, mà bạn cần phải sửa đổi để phù hợp với nhà cung cấp của bạn trước khi thêm vào đầu “mail.rc”. Các dòng bắt đầu bằng dấu # được comment là –mạch, chúng không có hiệu lực– và bao gồm cấu trúc. Dòng sau là dòng bạn cần thay thế cho phù hợp để trùng với chi tiết server SMTP của bạn.

Thí dụ:

# set smtp=smtp://smtp.server.tld:port_number set smtp=smtp://smtp.example.com:543 # tell mailx that it needs to authorise set smtp-auth=login # set the user for SMTP # set smtp-auth-user=user@domain.tld set smtp-auth-user=user.name@example.com # set the password for authorisation set smtp-auth-password=enter-password-here-1234 

Nhấn “CTRL + X” và xác nhận “Y” để lưu và thoát.

Kể từ bây giờ, tất cả các thư được gửi sẽ được chuyển tiếp bằng cách sử dụng cấu hình bạn vừa đặt.

Mẹo: Bạn có thể cân nhắc sử dụng các server của Gmail hoặc cung cấp cho các server SMTP của dịch vụ thư chuyên nghiệp dễ sử dụng như MANDRILL cho phép bạn gửi hàng ngàn thư miễn phí mỗi tháng.

Gửi e-mail bằng mail (hoặc mailx )


Mặc dù bạn có thể tương tác trực tiếp với MTA sendmail, việc cài đặt các ưu đãi “mailx”, trong số nhiều thứ khác, vô số các tùy chọn đơn giản và khả thi để cấu hình [trong tương lai] khi cần thiết.

Dưới đây là một số tùy chọn có sẵn của Heirloom mailx :

  • -a tệp Cho phép bạn đính kèm file đã cho vào e-mail
  • -b address Gửi các bản sao carbon mù tới danh sách địa chỉ e-mail được phân tách bằng dấu phẩy
  • -c address Gửi bản sao tới danh sách user
  • -q tệp Đặt nội dung thư từ file đã cho
  • -r from address Đặt địa chỉ from của e-mail sẽ được gửi đi
  • -s chủ đề Đặt chủ đề e-mail

Để có danh sách đầy đủ các tùy chọn, vui lòng truy cập tài liệu liên quan bằng cách nhấp vào đây .

Ví dụ sử dụng:

Gửi một tin nhắn đơn giản:

 echo "Your message" | mail -s "Message Subject" email@address 

Gửi tin nhắn có file đính kèm:

 echo "Message" | mail -s "Subject" -a /loc/to/attachment.txt email@address 

Đọc nội dung thư từ một file :

 echo | mail -s "Subject" -r from@address -q /loc/to/body.txt email@address 

Lưu ý: Trừ khi bạn đặt server SMTP bên ngoài, các e-mail của bạn, như đã giải thích ở trên, có khả năng bị rơi vào folder spam, bạn cần chuyển hướng thủ công đến hộp thư đến của bạn để tiếp tục nhận chúng ở đó.

Để có tài liệu mailx Gia truyền đầy đủ, hãy xem xét truy cập trang web chính thức của nó tại http://heirloom.sourceforge.net/mailx.html .

Cài đặt cảnh báo để giám sát hệ thống, cảnh báo và cảnh báo bảo mật


Khi ta đã có mọi thứ sẵn sàng, bây giờ ta có thể xem xét một số ví dụ khác nhau về các cảnh báo mà ta có thể yêu cầu server của bạn phát hành và gửi email.

Giám sát cổng và socket


Để tìm hiểu thêm về giám sát cổng và socket , vui lòng tham khảo bài viết sau đây, nơi bạn có thể tìm hiểu về chủ đề này và nhanh chóng cài đặt Linux Socket Monitor cho tác vụ, sẽ sử dụng “mailx” để thông báo cho bạn khi một cổng / socket mới được mở.

Cách cài đặt Linux Socket Monitor (LSM) trên CentOS 6.4 trên Thư viện Cộng đồng DigitalOcean

Các tùy chọn giám sát khác sử dụng Bash Scripts:


Nếu bạn có nhu cầu cụ thể (tức là theo dõi bộ nhớ thấp, dung lượng đĩa, thông tin đăng nhập, v.v.), bây giờ bạn có thể tìm kiếm các tập lệnh bash khác nhau để thực hiện tác vụ –và có hàng nghìn thứ bạn có thể tìm thấy!

Bash Scripts là gì?


Bash Scripts (hoặc shell script, chương trình bash) là các ứng dụng nhỏ được sử dụng để thực hiện các việc nhanh chóng. Chúng rất dễ tạo và sử dụng, đó là lý do tại sao chúng được ưa chuộng và trở thành công cụ tuyệt vời để quản trị hệ thống.

Khi bạn tìm thấy một file (cho tác vụ bạn cần), bạn cần tạo một file trống để lưu dưới dạng tập lệnh bash có thể thực thi.

Thí dụ:

Bạn muốn nhận được thông báo qua email khi dung lượng ổ đĩa của bạn sắp hết. Đối với điều này, hãy thực hiện tìm kiếm nhanh trên Google, chẳng hạn như “Gửi thông báo qua email khi dung lượng đĩa của bạn sắp hết”. Trong số các kết quả khác nhau, bạn sẽ thấy một kết quả từ Linux Jornal. Nhấp vào URL và bạn sẽ thấy tập lệnh bash được ghi lại trên trang.

Tạo một file văn bản mới bằng nano cho tập lệnh bash:

$ nano monitor_disk_space.sh 

Copy paste nội dung từ URL:

#!/bin/bash CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g') THRESHOLD=90  if [ "$CURRENT" -gt "$THRESHOLD" ] ; then     mail -s 'Disk Space Alert' mailid@domainname.com << EOF Your root partition remaining free space is critically low. Used: $CURRENT% EOF fi 

Lưu ý: Xin đừng quên thay thế mailid@domainname.com bằng địa chỉ e-mail của bạn. Ngoài ra, hãy nhớ rằng bạn cũng có thể sửa đổi dòng tiêu đề.

Nhấn “CTRL + X” và xác nhận bằng “Y” để lưu và thoát khỏi file .

Đến đây bạn đã tạo một chương trình bash nhỏ có tên là monitor_disk_space.sh mà bạn có thể đặt tên nó tùy thích.

Ta cần tiếp tục thông báo với hệ điều hành của bạn rằng file này là file thực thi.

Cấp quyền thực thi cho tệp bằng cách sử dụng “chmod”:

$ chmod +x monitor_disk_space.sh 

Bạn có thể thử chạy file bằng cách thực thi nó: ./monitor_disk_space.sh

Giả sử rằng ta muốn chương trình nhỏ này hoạt động giống như một màn hình hệ thống, ta cần sử dụng công cụ tiện ích cron để lên lịch nó chạy trong những khoảng thời gian nhất định.

Vui lòng đọc bài viết sau về Cách sử dụng Cron để tự động hóa công việc trên VPS để tìm hiểu về cách lên lịch cron cho các việc nhất định.

Và ta đã hoàn tất việc tạo tập lệnh giám sát đầu tiên của bạn !

Ví dụ 2:

Nếu bạn muốn theo dõi việc sử dụng dung lượng [đĩa] và nhận email khi vượt qua một ngưỡng nhất định, bạn có thể tham khảo ví dụ tuyệt vời này từ Linix.com .

Hãy bắt đầu với việc tạo một file script shell trống:

$ nano monitor_space_usage.sh 

Copy paste nội dung của tập lệnh tự giải thích này:

#!/bin/bash  LIMIT='80' #Here we declare variable LIMIT with max of used spave  DIR='/var' #Here we declare variable DIR with name of directory  MAILTO='monitor@gmail.com' #Here we declare variable MAILTO with email address  SUBJECT="$DIR disk usage" #Here we declare variable SUBJECT with subject of email  MAILX='mailx' #Here we declare variable MAILX with mailx command that will send email  which $MAILX > /dev/null 2>&1 #Here we check if mailx command exist  if ! [ $? -eq 0 ] #We check exit status of previous command if exit status not 0 this mean that mailx is not installed on system then           echo "Please install $MAILX" #Here we warn user that mailx not installed           exit 1 #Here we will exit from script fi  cd $DIR #To check real used size, we need to navigate to folder  USED=`df . | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1`     #This line will get used space of partition where we currently, this will use df command, and get used space in %, and after cut % from value.  if [ $USED -gt $LIMIT ] #If used space is bigger than LIMIT  then       du -sh ${DIR}/* | $MAILX -s "$SUBJECT" "$MAILTO" #This will print space usage by each directory inside directory $DIR, and after MAILX will send email with SUBJECT to MAILTO fi 

Sau khi đảm bảo bạn đã sửa đổi nó để phù hợp với nhu cầu của bạn (và đặt địa chỉ e-mail của bạn làm người nhận bằng cách sửa đổi biến MAILTO), bạn có thể lưu nó bằng cách nhấn “CTRL + X” và xác nhận bằng “Y”.

Đặt lại file là tệp thực thi và bạn đã sẵn sàng công cụ giám sát hệ thống Linux thứ hai của bạn .

Để cấp quyền thực thi file , hãy chạy như sau:

$ chmod +x monitor_space_usage.sh 

Ghi chú:

Để biết thêm các tập lệnh shell về giám sát, bạn có thể truy cập http://bash.cyberciti.biz/shell/monitoring/http://linoxide.com/category/linux-shell-script/ .

Để biết thêm về các tập lệnh shell nói chung, hãy truy cập http://www.linoxide.com/guide/scripts-pdf.html .

<div class = “author”> Gửi bởi: <a
href = “https://twitter.com/ostezer”> OS Tezer </div>


Tags:

Các tin liên quan

Cách cài đặt MediaWiki trên Centos 6.4
2013-11-13
Cách cài đặt CouchDB từ Nguồn trên VPS CentOS 6 x64
2013-11-11
Cách cấu hình vsftpd để sử dụng SSL / TLS trên VPS CentOS
2013-10-28
Cách cài đặt và bảo mật phpMyAdmin trên VPS CentOS 6.4
2013-10-09
Cách cài đặt Git trên VPS CentOS 6.4
2013-10-08
Cách thiết lập và sử dụng kho lưu trữ Yum trên VPS CentOS 6
2013-10-01
Cách cài đặt Diaspora trên VPS CentOS 6 x86
2013-09-13
Cách cài đặt Discourse trên VPS CentOS 6.4 x64
2013-09-11
Cách cài đặt ejabberd trên VPS CentOS 5 và CentOS 6
2013-09-04
Cách đặt chính sách mật khẩu trên VPS CentOS 6
2013-09-03