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報警設定。
安裝 Zabbix Server
在伺服器10.128.17.136上安裝
1.安裝mysql
\# yum -y install mysql mysql-server mysql-devel
1 2 |
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
3 4 5 6 |
将資料庫檔案導入到 zabbix 資料庫中
\# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create
\# mysql -uroot -p123456 zabbix < schema.sql(登陸的使用者名和密碼)
\# mysql -uroot -p123456 zabbix < p_w_picpaths.sql
\# mysql -uroot -p123456 zabbix < data.sql
7 8 |
編輯 zabbix-server 配置檔案
\# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
(上面賦予的登陸權限的使用者名)
DBPassword=123456
(上面賦予登陸權限的密碼)
\# vi /etc/httpd/conf.d/zabbix.conf
\# 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
9 10 11 12 |
配置完成,重新啟動
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
13 14 |
注意!源碼安裝的盆友需要注意看配置檔案
/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
- 主題為
和trigger
,意味着告警觸發和恢複都會同步到resolve
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"}
15 16 17 18 19 20 21 22 23 24 25 26 | 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
,或者到
使用者 -> 具體使用者
下配置短信提醒規則。或參考提醒設定