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