Zabbix 安裝及微信短信提醒


Zabbix簡介

Zabbix 近幾年得到了各大互聯網公司的認可,當然第一點歸功與它強大的監控功能,第二點免費開源也得到了廣大用戶的青睞。Zabbix 能將操作系統中的絕大部分指標進行監控,比如(CPU 負荷,內存使用,網絡狀況,端口監視,日志監視等等等等指標!)。監控指標的廣度是一方面,它強大的功能特點也省去了很多的配置操作。

Zabbix 功能特點:

  • 自動發現服務器和網絡設備

  • 分布式監控網絡,集中式管理(agent 、server 分開)

  • 監控指標模版豐富

  • 可靈活地分配用戶權限

  • 系統各個指標的可視化展示和分析等等

如何讓 Zabbix 更加完美?

雖然 Zabbix 在功能上非常強大,但是它在通知層面也並非十全十美:

  • 它現在的告警方式比較單一,默認支持郵件。
  • 相信很多運維工作者對短信的告警已經再熟悉不過了,甚至已經存在抵觸的心理,但還是期望 Zabbix 可以支持短信。 Zabbix 支持的短信方式需要進行短信網關對接,復雜度較高。
  • 而且短信的告警並非是一個好的方式,雖然發送了告警信息,同樣會存在疏漏的情況,而且這種情況發生的概率並不是很低。

那么有效的告警方式、告警信息的到達率對運維同學具有很大的意義,相信也是小朋友們非常關注的。就算 Zabbix 監控的在全面和准確,但是如果沒有及時的通知並解決,那么就是然並卵。酒再香總要賣出去,如果沒有好的告警平台,總覺得 Zabbix 少了點什么。如果配上一個好的告警平台了,那么就 Perfect 了!分享個工具 OneAlert ,該平台可以通過簡單的方式集成 Zabbix 告警。

  • 如果你是 Zabbix 的忠實粉絲,而且一直在使用它來監控服務器,是否想通過一個告警平台更好的將告警信息及時傳達到您的手中?而且這個平台還可以進行事件的升級和排班等功能。

  • 如果你沒使用過 Zabbix,但是也聽說過它功能的強大之處,為何不一起加入 Zabbix 的大家庭中,來共同感受這個免費開源軟件的魅力,以及帶給我們的價值呢?

那么本文將給您如何快速搭建 Zabbix 監控服務器,如何將 Zabbix 集成到OneAlert告警平台上,實現微信和短信通知。

安裝說明

從0開始安裝Zabbix

如果你從來沒有接觸過 Zabbix ,請按照以下步驟安裝 Zabbix ,下面以 Zabbix 2.4.1+OneAlert 實現監控和微信提醒

  • Zabbix 服務器: 10.128.17.136 CentOS 6.4 64bit
  • 被監控機器: 10.128.17.137 CentOS 6.4 64bit

也可以參考官網安裝

Zabbix 集成在 OneAlert

如果你對 Zabbix 非常熟悉或者機器中已經安裝,請跳過安裝步驟,直接進入OneAlert的報警設置。

安裝 Zabbix Server

在服務器10.128.17.136上安裝

1.安裝mysql

    \# yum -y install mysql mysql-server mysql-devel

MySQL 配置文件/etc/my.cnf中加入default-character-set=utf8

`\# vi /etc/my.cnf ` 加入`default-character-set=utf8 `

    \# service mysqld start

登陸,創建 Root 管理員

    \# mysqladmin -u root password 123456

登陸 MySQL

    \# mysql -uroot -p123456

創建 zabbix 數據庫,並設置登陸權限

    mysql> create database zabbix character set utf8 collate utf8_bin;

`mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>'; `(我設置的密碼為123456)

    mysql> \q

2.安裝 php、Apache

    \ # yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml httpd

啟動 Apache

    \# service httpd start

3. 安裝 Zabbix Server 軟件包

    \# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

    \# yum install zabbix-server-mysql zabbix-web-mysql

    \# yum install zabbix-agent

將數據庫文件導入到 zabbix 數據庫中

    \# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create

    \# mysql -uroot -p123456 zabbix < schema.sql(登陸的用戶名和密碼)

    \# mysql -uroot -p123456 zabbix < images.sql

    \# mysql -uroot -p123456 zabbix < data.sql

編輯 zabbix-server 配置文件

    \# vi /etc/zabbix/zabbix_server.conf

    DBHost=localhost

    DBName=zabbix

DBUser=zabbix(上面賦予的登陸權限的用戶名)

DBPassword=123456(上面賦予登陸權限的密碼)

    \# vi /etc/httpd/conf.d/zabbix.conf 

將配置文件中替換成以下內容

    php_value max_execution_time 300

    php_value memory_limit 128M

    php_value post_max_size 16M

    php_value upload_max_filesize 2M

    php_value max_input_time 300

    php_value date.timezone Asia/Shanghai

配置完成,重新啟動zabbix_server

    \#servcice zabbix-server restart

登陸安裝zabbix http://ip地址/zabbix(http://10.128.17.136/zabbix)

如果此步驟出現問題,請確認/etc/httpd/conf.d/zabbix.conf 中的配置正確

配置操作圖如下所示:

User 和 Password 為上面設置的用戶名和密碼
DBUse r=zabbix(上面賦予的登陸權限的用戶名)
DBPassword =123456(上面賦予登陸權限的密碼)

輸入 Hostname 與否都可以。

Zabbix 安裝完成

安裝 Zabbix Agent

在被監控服務器10.128.17.137上安裝Zabbix Agent

    \#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

    \#yum install zabbix-agent

修改配置/etc/zabbix/zabbix_agentd.conf,將server設置Server=10.128.17.136

    \#service zabbix-agent restart`

Zabbix Agent 安裝完畢后,需要登錄 Zabbix Server加入該機器

好了,Zabbix Agent 安裝完畢。

Zabbix 集成 OneAlert

下載 OneAlert Agent

    \#wget http://cdn.110monitor.com/open/download/alert-agent-4.0.1-RC4.tar.gz

    \#tar xvf alert-agent-4.0.1-RC2.tar.gz

    \#cp -R alert-agent /usr/lib/zabbix/alertscripts

    \#cd /usr/lib/zabbix/alertscripts

    \#chown -R zabbix:zabbix alert-agent

    \#cp alert-agent/plugin/zabbix-plugin/110monitor/ usr/lib/zabbix/alertscripts/

    \#chmod +x /usr/lib/zabbix/alertscripts/110monitor

注意!源碼安裝的盆友需要注意看配置文件/etc/zabbix/zabbix_server.conf

    \# AlertScriptsPath=/zabbix/alertscripts

    AlertScriptsPath=/usr/lib/zabbix/alertscripts

請將 Agent 更新至 AlertScriptsPath 目錄中

alert-agent目錄和110monitor需要放在同一級目錄里面

1.創建 110monitor 通知方式

創建媒體類型 Media types,,“Administrator”->“Media types”->“Create media type”

采用腳本模式script,腳本名為110monitor. 系統會在/usr/lib/zabbix/alertscripts/下查找上面的110monitor指令

2.創建110monitor用戶

創建用戶110monitor並設置通知媒介,登錄 zabbix,“Administrator”->“Users”->“create user”

  • 110monitor 用戶加入到"Zabbix Administrator 組"或者是新建組

  • 媒體類型,添加110monitor,並且設置appkey為發送目標

  • 設置所有權限"Zabbix Super Admin"

新建 110monitor 用戶

設置媒介類型

設置權限

3.創建觸發動作發送通知

創建告警通知策略,"Configurationg"->"Actions"->"Create action"

  • 名稱110monitor

  • 主題為triggerresolve,意味着告警觸發和恢復都會同步到110monitor

  • 設置告警內容,注意冒號「:」前的內容不可變更,冒號「:」后的內容可以自行編輯

        alarmName:{TRIGGER.NAME}
        entityName:{HOSTNAME}
        entityId:{IPADDRESS}
        value:{TRIGGER.VALUE}
        eventId:{EVENT.ID}
        priority:{TRIGGER.SEVERITY}
        alarmContent:{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}

注意!自行配制的通知模板是不行的,需要嚴格按照以上配置。

4.測試驗證

將被監控機器 10.128.17.137 的 Ping 禁用下,驗證一把。請確認該機器加了"Template ICMP Ping"監控模版,禁用 ping 測試是否正常通知

\#echo 1 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all
禁 ping (看是否配置成功,成功就恢復 ping )

\#echo 0 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all 恢復 ping

查看 Agent 日志,出現 sucess 字樣代表成功,如果發送告警通知,則會同步發送微信、移動 app 、短信、郵件

     \#tail -f /usr/lib/zabbix/alertscripts/alert-agent/log/agent.log

正常返回success即表示成功

    15-05-2015 18:16:17,698 CST INFO  [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ...

    15-05-2015 18:16:18,048 CST INFO  [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ...

     15-05-2015 18:16:18,057 CST INFO  [main] [com.upyoo.agent.CommandClient@82] app:04b9832b-    14b4-4c61-343d-5926ff8af672

    15-05-2015 18:16:18,057 CST INFO  [main] [com.upyoo.agent.CommandClient@82]   eventType:trigger

    15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82]     alarmName:10.128.17.137 is unavailable by ICMP

    15-05-2015 18:16:18,059 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityName:10.128.17.137

    15-05-2015 18:16:18,060 CST INFO  [main] [com.upyoo.agent.CommandClient@82] entityId:10.128.17.137

    15-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82] eventId:280

    15-05-2015 18:16:18,061 CST INFO  [main] [com.upyoo.agent.CommandClient@82]  priority:Average

    15-05-2015 18:16:18,062 CST INFO  [main] [com.upyoo.agent.CommandClient@82]   alarmContent:10.128.17.137 ICMP ping:Down (0)

    15-05-2015 18:16:18,067 CST INFO  [main] [com.upyoo.agent.CommandClient@58] start to post url:http://api.110monitor.com/alert/api/event

    15-05-2015 18:16:18,144 CST INFO  [main] [com.upyoo.agent.CommandClient@65] body: {"app":"04b9832b-14b4-4c61-343d-5926ff8af672","alarmContent":"10.128.17.137 ICMP ping:Down(0)","eventId":"280","priority":"3","entityId":"10.128.17.137","alarmName":"10.128.17.137 is  unavailable by ICMP","eventType":"trigger","entityName":"10.128.17.137"}

    15-05-2015 18:16:18,728 CST INFO  [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3690","totalCount":0,"code":"200"}

5.微信告警

添加成功之后,進入 OneAlert 控制台,用微信進行掃碼即可用微信實現報警。

6.電話短信報警

通過設置提醒,可以選擇告警的方式是電話、短信還是微信 APP 告警, OneAlert 提供多種方式和多策略的提醒方式

完成

恭喜你 完成 Zabbix 集成配置,微信即可接收告警提醒,並通過”我的告警“查詢所有未處理告警哦。

注意!注冊完畢后默認僅發送郵件提醒,請關注微信號alert110,或者到用戶 -> 具體用戶下配置短信提醒規則。或參考提醒設置

親,到現在可以拋棄老的 139 郵箱、飛信、短信貓、qq 郵箱等間接短信配置提醒方式。

本文系 OneAPM 工程師編譯整理。想閱讀更多技術文章,請訪問 OneAPM 官方博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM