2019-01-17 简易配置为Nagios配置postfix邮箱发送告警邮件

由于服务器本身没有在公网上配置域名,我们也不需要用这个邮箱来收发邮件,仅仅是在出问题的时候nagios能够发送报警邮件。
因此很简单几步就能做到。
首先安装postfix以及mailutils辅助工具,因为简单,也不用mysql
sudo apt install postfix mailutils
如果ufw或iptables防火墙开启的话,允许25端口
postfix的配置文件是/etc/postfix/main.cf,你可以修改一些配置,更改主机名,域名什么的,这个另外的技术文档有记录。但是为了简易,可以什么都不改。对,就是什么都不改,postfix仍然可以用!用来发个告警邮件也足够了。
测试一下,看看状态是Active的。

root@Nagios_THN:~# systemctl status postfix
 postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset:
   Active: active (exited) since Mon 2019-01-14 23:59:24 GMT; 19min ago
  Process: 8387 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 8387 (code=exited, status=0/SUCCESS)

Jan 14 23:59:24 Nagios_THN systemd[1]: Starting Postfix Mail Transport Agent...
Jan 14 23:59:24 Nagios_THN systemd[1]: Started Postfix Mail Transport Agent.
lines 1-8/8 (END)

测试下发个邮件

root@Nagios_THN:~# mail a.xing@cxxxxx.co.uk
Cc:
Subject: This is a test mail.
Test email

Ctrl+d 发送出去,那边立刻收到了:


屏幕快照 2019-01-15 00.20.58.png

那么再看下Nagios告警邮件是否收的到。
检查下Nagios里的配置:
contacts.cfg里的配置

#定义联系人模板
define contact {
        name                            ax-contact
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r,f,s
        host_notification_options       d,u,r,f,s
        service_notification_commands   ax-notify-service-by-email
        host_notification_commands      ax-notify-host-by-email
        register                        0
}
#定义联系人
define contact {
        contact_name                    axing
        use                             ax-contact
        alias                           A Xing
        email                           a.xing@cxxxxxx.co.uk
        host_notification_options       d,u,r,s
        service_notification_options    w,u,c,r,s
}
#定义联系人组

define contactgroup {
        contactgroup_name               network
        alias                           Network Team
       members                         axing
}

在commands.cfg文件里定义发邮件的动作

define command{
        command_name                    ax-notify-host-by-email
        command_line                    /usr/bin/printf "%b" "Subject: $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$\n\n***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $HOSTSTATE$\nDuration: $HOSTDURATION$\n\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\n&" | /usr/sbin/sendmail -vt $CONTACTEMAIL$
}

define command{
        command_name                    ax-notify-service-by-email
        command_line                    /usr/bin/printf "%b" "Subject: $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$\n\n***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\n" | /usr/sbin/sendmail -vt $CONTACTEMAIL$
}

拿我定义的一台主机为例,定义了电池容量的告警参数:


define host {

    use                     generic-switch                      ; Inherit default values from a template
    host_name               ol01.com.lon                     ; The name we're giving to this switch
    alias                   MA5800 Comber       ; A longer name associated with the switch
    address                 10.XXX.XXX.2                      ; IP address of the switch
    hostgroups              olts,MA5800X7                              ; Host groups this switch is associated with
    parents                 vlan69.com
    _BRC_WARN_LEVEL 95
    _BRC_CRIT_LEVEL 65
    icon_image              olt41.jpg
#    statusmap_image  router.gd2
}

在service.cfg(或者其他什么配置文件里)定义了查询电池容量的告警,这条命令是说,通过调用ax-check_snmp这个命令, -C 指定密码, -I 要查询的参数起个名字, -w 到达阈值发警告消息 -c 到达阈值发cirtcal消息 -o 要查询的OID

define service {
   use                  ax-service
    hostgroup_name               MA5800X7
#    host_name               ol01.xxx.lon
   service_description  MA5800X7 Battery Capacity-1
   check_command        ax-check_snmp!-C public -l olt-BRC -w $_HOSTBRC_WARN_LEVEL$: -c $_HOSTBRC_CRIT_LEVEL$: -o 1.3.6.1.4.1.2011.6.2.1.6.1.1.2.2.0
}

现在电池容量出了问题,收到告警邮件了吗?

转到邮箱去看,果然收到了,邮件看起来是这个样子的:


屏幕快照 2019-01-15 00.52.30.png

能够看到主机名,IP地址,时间,那个参数出问题,告警级别等,简单明了,不用打开邮件就知道是什么告警。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容