1. 程式人生 > >企業級分布式監控Zabbix部署+安裝排錯解決本地無法登錄問題+測試郵件報警

企業級分布式監控Zabbix部署+安裝排錯解決本地無法登錄問題+測試郵件報警

pat 事件 ip地址 DBName 上海 中國 centos 7 proxy start

---------------------概述----------------------

Zabbix是一個高度集成的企業級開源網絡監控解決方案,與Caci、 Nagios類似,提供分布式監控以及集中的Web管理界面。被監控對象只要支持SNMP協議或者運行Zabbix_agents代理程序即可,Zabbix的官方網址為http://www.zabbix.com/ 軟件可以自由下載使用。
補充:
SNMP協議
:簡單網絡管理協議(SNMP),由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關註的情況。該協議是互聯網工程工作小組(IETF,Internet Engineering Task Force)定義的internet協議簇的一部分。SNMP的目標是管理互聯網Internet上眾多廠家生產的軟硬件平臺,因此SNMP受Internet標準網絡管理框架的影響也很大。SNMP已經出到第三個版本的協議,其功能較以前已經大大地加強和改進了。

-

Zabbix具備常見商業監控軟件所具備的功能

  • 主機性能監控
  • 網絡設備性能監控
  • 數據庫性能監控
  • ftp等通用協議的監控
  • 能夠利用靈活的可定制警告機制
  • 允許用戶對事件發送基於 E-mail的警告,可以保證相關維護人員對問題做出快速響應
  • 可以利用存儲數據提供傑出的報表及實時的圖形化數據處理,實現對 Linux、 Windows主機的7×24小時集中監控
  • 監控的項目可包括CPU、內存、磁盤、網卡流量、服務可用性等各種資源。

-

Zabbix監控組件主要由三大組件,分別是ZabbixServer端、Zabbix Proxy、Agent客戶端,其中ZabbixServer端包括:WEB GUI、Database、Zabbix_Server


技術分享圖片
Zabbix通過C/S模型來收集數據,通過B/S模型模式在web端展示和進行配置。
? ? Agent被監控端:主機設備通過安裝agent收集數據並發送給server端,網絡設備通過SNMP收集數據並發送給server端。
?
Server監控端:通過收集SNMP和agent發送來的數據,將數據寫入到後臺數據庫中(例如:mysql,oracle),在通過web展示出來。
? 技術分享圖片

------------LAMP環境部署Zabbix-------------

實驗安裝環境:

主機 操作系統 IP地址 主要軟件
Zabbix服務器 Centos 7 192.168.100.128 Zabbix軟件包
Linux客戶機 Centos 7 192.168.100.130 Zabbix軟件包

Zabbix軟件包:
百度網盤鏈接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密碼:mny1

#Zabbix服務器 和客戶機 關閉防火墻
[root@zabbix ~]# systemctl stop firewalld.service
[root@zabbix ~]# setenforce 0   (一定要關,否則Zabbix起不來)

--------安裝LAMP---------

1.yum安裝環境包

[root@zabbix ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

2.配置HTTP

[root@zabbix ~]# vi /etc/httpd/conf/httpd.conf

技術分享圖片
技術分享圖片

3.設置PHP時區

[root@zabbix ~]# vi /etc/php.ini

date.timezone = PRC    //設置中國時區=PRC

技術分享圖片

4.打開HTTP和數據庫服務

[root@zabbix ~]# systemctl start httpd.service
[root@zabbix ~]# systemctl start mariadb.service
[root@zabbix ~]# netstat -ntap | egrep ‘(80|3306)‘

技術分享圖片

5.安裝配置數據庫

[root@zabbix ~]# mysql_secure_installation 

技術分享圖片
技術分享圖片

6.進入數據庫給Zabbix創建提供數據庫

[root@zabbix ~]# mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;     #創建一個數據庫給zabbix所使用

GRANT all privileges ON *.* TO ‘zabbix‘@‘%‘ IDENTIFIED BY ‘admin123‘;     #提升權限,所有庫所有表都給zabbix用戶進行操作,密碼是admin123

flush privileges;             #刷新一下

技術分享圖片

7.測試PHP

[root@zabbix ~]# vi /var/www/html/index.php                       #創建一個文件,測試下PHP基本信息

<?php
phpinfo();
?>

#編寫完成後保存退出,輸入Zabbix服務器地址測試PHP

技術分享圖片

8.測試PHP是否能連接數據庫

[root@zabbix ~]# vi /var/www/html/index.php     #重新創建測試文件,測試是否能連接mysql數據庫 

<?php
$link=mysql_connect(‘192.168.100.128‘,‘zabbix‘,‘admin123‘);
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>

#編寫完成後保存退出,輸入Zabbix服務器地址測試PHP ( 如果連接數據庫成功則輸出Success!! )

技術分享圖片

----------------以下開始部署zabbix Server-----------

1.yum安裝環境包以及Zabbix Sever

[root@zabbix ~]# yum install php-bcmath php-mbstring -y
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm                      //會自動生成yum源文件,但需要保證系統可以上網

技術分享圖片

[root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql -y

2.生成Zabbix的數據庫

[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix //生成數據庫文件,註意密碼不要輸成root的。

技術分享圖片

3.修改Zabbix Server的配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf 

技術分享圖片

4.查看下配置文件是否配置正確

[root@zabbix ~]# grep -n ‘^‘[a-Z] /etc/zabbix/zabbix_server.conf 

38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=admin123                            //修改本行
347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
465:Timeout=4
507:AlertScriptsPath=/usr/lib/zabbix/alertscripts
517:ExternalScripts=/usr/lib/zabbix/externalscripts
553:LogSlowQueries=3000

5.修改Apache的時區

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf //修改時區

php_value date.timezone Asia/Shanghai             //修改為上海時區

技術分享圖片

6.修正圖表中文亂碼

[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php //修正圖表中文亂碼

:%s /graphfont/kaiti/g               //進行全部字體替換。從微軟系統下復制相應的字體文件到 /usr/share/zabbix/fonts 目錄中註意字體名稱要對應配置文件,且註意大小寫

技術分享圖片

7.安裝掛載Zabbix軟件包

Zabbix軟件包:
百度網盤鏈接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密碼:mny1

[root@zabbix ~]# yum install lrzsz -y  
[root@zabbix ~]# rz

#裝好之後直接使用命令 rz 可以在windows 和Linux之間傳文件,文件掛載在當前目錄下。
[root@zabbix ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/

技術分享圖片

8.啟動各項服務

[root@zabbix ~]# systemctl enable zabbix-server       //設置開機自啟動
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# netstat -anpt | grep zabbix          //監聽在10051端口上

PS: 這裏可能會出現問題,比如:

-------------解決本地無法登錄問題(可忽略)---------------------------

[root@zabbix ~]# mysql -uroot -p     //root身份登錄數據庫

select user,host from mysql.user;   //有空用戶名稱占用導致本地無法登錄遠程可登錄
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
|        | cacti     |
| root   | cacti     |
|        | localhost |
| root   | localhost |
+--------+-----------+

drop user ‘‘@localhost;

drop user ‘‘@cacti;

flush privileges;

完成後再重新啟動Zabbix。

9.重啟HTTP服務,登錄Zabbix

[root@zabbix ~]# systemctl restart httpd.service

http://192.168.100.128/zabbix/                               //安裝後登錄 用戶名Admin 密碼:zabbix

技術分享圖片
技術分享圖片
技術分享圖片技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

-----------配置代理端-就是被控服務器----如果服務器也需要被自己監控也需要安裝--zabbix-agent--

1.關閉防火墻

[root@zabbix ~]# systemctl stop firewalld.service
[root@zabbix ~]# systemctl disable firewalld.service 
[root@zabbix ~]# setenforce 0

2.安裝Zabbix的yum源

[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm

3.安裝Zabbix agent

[root@zabbix ~]# yum install -y zabbix-agent

4.修改Zabbix agent配置

[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf

技術分享圖片
技術分享圖片

[root@zabbix ~]# grep -n ‘^‘[a-Z] /etc/zabbix/zabbix_agentd.conf                   //更改配置內容如下:

13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.100.128
139:ServerActive=192.168.100.128
150:Hostname=test
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

技術分享圖片

5.開啟Zabbix agent

[root@zabbix ~]# systemctl enable zabbix-agent.service
[root@zabbix ~]# systemctl restart zabbix-agent.service
[root@zabbix ~]# netstat -anpt | grep 10050         //監聽在10050端口

技術分享圖片

--------------增加被控主機--在WEB平臺上做---------

配置-主機-創建主機:

主機頁面根據需求配置
模板頁需要鏈接模板,根據需要鏈接相應的模板
0K

技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

打開主頁面,查看到兩個錯誤,一個是被監控端沒有安裝HTTP服務,一個是主機無法解析客戶端主機名。

技術分享圖片

問題分析:
                   從問題上來看,是主機在ping客戶端時解析不了主機名
解決辦法:
                                    在/etc/hosts當中添加一條記錄
                          192.168.100.130    zabbix.server

保存後問題解決了,再也沒有那麽多報警郵件。

--------配置測試郵件報警功能---服務器上配置---------

1.yum安裝mailx並配置

[root@zabbix ~]# yum install mailx -y
[root@zabbix ~]# vim /etc/mail.rc                   //註意網易郵箱需要開啟客戶端授權碼進行第三方登錄

----文件末尾新增---
set [email protected]
set smtp=smtp.qq.com                     //郵箱域名
set [email protected]
set smtp-auth-password=第三方授權碼
set smtp-auth=login

QQ郵箱生成第三方授權碼操作:
https://jingyan.baidu.com/article/4b07be3cb2f74148b380f3e4.html

2.測試發信正常

[root@zabbix ~]# echo "hello world" | mail -s "testmail" [email protected]             //測試發信正常

技術分享圖片
技術分享圖片

3.編寫發郵件腳本

[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix ~]# vi mailx.sh                     //編寫發郵件腳本
#!/bin/bash
#send mail

messages=`echo $3 | tr ‘\r\n‘ ‘\n‘`
subject=`echo $2 | tr ‘\r\n‘ ‘\n‘`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mail.log 2>&1

技術分享圖片

4.創建並提升Zabbix權限

[root@zabbix ~]# touch /tmp/mail.log 
[root@zabbix ~]# chown -R zabbix.zabbix  /tmp/mail.log 
[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh
[root@zabbix ~]# chown -R zabbix.zabbix /usr/lib/zabbix/

5.測試發郵件腳本

[root@zabbix ~]# ./mail.sh [email protected] "yunjisuan" "zabbix test"          //測試發郵件腳本是否可以正常工作

技術分享圖片

企業級分布式監控Zabbix部署+安裝排錯解決本地無法登錄問題+測試郵件報警