天天看点

Zabbix用Sendmail介质SMTP发送报警

Zabbix报警大部分使用的是脚本报警,这次我们用SMTP方式发送报警。

在zabbix上设置好了EMail账号还不行,还要在系统里装发送邮件的服务,我们这里用SendMail.

环境:

CentOS Linux release 7.1.1503 (Core) 

1.检查系统是否安装SendMail。

<code>#rpm -qa | grep Sendmail</code>

返回值为空,说明没有安装过。

2.用yum list sedmail看看都需要安装哪些包

<code>#yum list sedmail</code>

3.安装Sendmail及相关软件。

<code># yum install sendmail dovecot sendmail-cf sendmail-devel sendmail-doc mailx</code>

4.修改Sendmail配置文件说明。

<code>[root@tpwb ~]</code><code># cat /etc/mail/sendmail.mc </code>

<code>....... </code>

<code>include(`</code><code>/usr/share/sendmail-cf/m4/cf</code><code>.m4')dnl   (将sendmail-cf</code><code>/m4/cf</code><code>.m4包含进来) </code>

<code>VERSIONID(`setup </code><code>for</code> <code>Red Hat Linux')dnl (定义版本信息) </code>

<code>OSTYPE(`linux')dnl (选择包含操作系统指定属性的文件) </code>

<code>........ </code>

<code>define(`confDEF_USER_ID</code><code>',``8:12'</code><code>')dnl (指定使用的用户ID为8,组ID为12) </code>

<code>dnl define(`confAUTO_REBUILD')dnl </code>

<code>define(`confTO_CONNECT</code><code>', `1m'</code><code>)dnl   (设置等待连接的最大时间为1分钟) </code>

<code>define(`confTRY_NULL_MX_LIST',</code><code>true</code><code>)dnl (若MX记录指向本机,则sendmail直接连接到远程主机) </code>

<code>define(`confDONT_PROBE_INTERFACES',</code><code>true</code><code>)dnl (sendmial不会自动将服务器的网络接口视为有效地址) </code>

<code>define(`PROCMAIL_MAILER_PATH</code><code>',`/usr/bin/procmail'</code><code>)dnl(设置procmail的存放路径) </code>

<code>define(`ALIAS_FILE</code><code>', `/etc/aliases'</code><code>)dnl (设置邮件别名存放路径) </code>

<code>define(`STATUS_FILE</code><code>', `/var/log/mail/statistics'</code><code>)dnl </code>

<code>define(`UUCP_MAILER_MAX</code><code>', `2000000'</code><code>)dnl (设置处理信息的最大限制为2M) </code>

<code>define(`confUSERDB_SPEC</code><code>', `/etc/mail/userdb.db'</code><code>)dnl (设置用户数据库文件路径) </code>

<code>define(`confPRIVACY_FLAGS</code><code>', `authwarnings,novrfy,noexpn,restrictqrun'</code><code>)dnl (设置限制某些邮件命令的标志) </code>

<code>define(`confAUTH_OPTIONS</code><code>', `A'</code><code>)dnl 仅在授权成功时。将AUTH参数加到邮件的消息头中 </code>

<code>FEATURE(`no_default_msa</code><code>',`dnl'</code><code>)dnl (允许MSA被DAMEMON_OPTION覆盖的默认设置) </code>

<code>FEATURE(`smrsh</code><code>',`/usr/sbin/smrsh'</code><code>)dnl (设置邮件发送器smrsh的存放路径) </code>

<code>FEATURE(`mailertable</code><code>',`hash -o /etc/mail/mailertable.db'</code><code>)dnl (设置邮件发送器数据库的存放路径) </code>

<code>FEATURE(`virtusertable</code><code>',`hash -o /etc/mail/virtusertable.db'</code><code>)dnl (设置虚拟邮件域数据库的存放路径) </code>

<code>FEATURE(redirect)dnl (支持.redirect虚拟域) </code>

<code>FEATURE(always_add_domain)dnl (增加主机名到所有本地发送的邮件) </code>

<code>FEATURE(use_cw_file)dnl (装载</code><code>/etc/mail/local-host-names</code><code>文件中定义的主机名) </code>

<code>FEATURE(use_ct_file)dnl  (装载可信任用户名单) </code>

<code>FEATURE(local_procmail,`</code><code>',`procmail -t -Y -a $h -d $u'</code><code>)dnl (使用procmail作为本地邮件发送者) </code>

<code>FEATURE(`access_db</code><code>',`hash -T -o /etc/mail/access.db'</code><code>)dnl (从</code><code>/etc/mail/access</code><code>.db装载可以中继的域) </code>

<code>FEATURE(`blacklist_recipients')dnl (根据访问数据库的值过滤外来邮件) </code>

<code>EXPOSED_USER(`root')dnl (禁止伪装发送者地址中出现root用户) </code>

<code>DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl (指定sendmail作为MTA运行时的参数) </code>

<code>FEATURE(`accept_unresolvable_domains')dnl 设置可以接受不能由NDS主机所发送的邮件 </code>

<code>LOCAL_DOMAIN(`localhost.localdomain')dnl 设置本地域 </code>

<code>MAILER(smtp)dnl (指定sendmail所有SMTP发送者,包括smtp,esmtp,smtp8,和replay) </code>

<code>MAILER(procmail)dnl (指定使用procmail作为本地邮件的发送者)</code>

5.sendmail.cf不容易看懂的,所以要用m4(宏配置)生成配置文件/etc/mail/sendmail.cf

<code># m4 /etc/mail/sendmail.mc &gt; /etc/mail/sendmail.cf</code>

未完,待续。。。

参考链接:

http://www.ttlsa.com/zabbix/zabbix-action-media/

http://blog.sina.com.cn/s/blog_89b8586f0101a9xn.html

本文转自 piazini 51CTO博客,原文链接:http://blog.51cto.com/wutou/1939118