六十四、Linux監控平臺介紹、zabbix監控介紹、安裝zabbix、忘記Admin密碼如何做
一、Linux監控平臺介紹
cacti、nagios、zabbix、smokeping、open-falcon等等
cacti、smokeping偏向於基礎監控,成圖非常漂亮
cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中zabbix和cacti都需要mysql作為數據存儲,nagios不用存儲歷史數據,註重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫裏,從而可以成圖。
open-falcon為小米公司開發,開源後受到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟件,值得研究。
nagios:更註重於某個監控的現在的狀態,過去歷史不關註。
二、zabbix介紹
C/S架構,基於C++開發,監控中心支持web界面配置和管理
單server節點可以支持上萬臺客戶端
最新版本3.4,官方文檔https://www.zabbix.com/manuals
5個組件
zabbix-server 監控中心,接收客戶端上報信息,負責配置、統計、操作數據,需要一個php的環境。
數據存儲 存放數據,比如mysql,mariadb等。
web界面 也叫web UI,在web界面下操作配置是zabbix簡單易用的主要原因,沒有它就不能在瀏覽器裏去配置。
zabbix-proxy 可選組件,它可以代替zabbix-server的功能,減輕server的壓力
zabbix-agent 客戶端軟件,負責采集各個監控服務或項目的數據,並上報
監控流程圖
解析:
添加主機到監控中心,添加監控的項目,監控項目能和服務端通信了,就會采集數據到到數據庫(mysql),數據采集過程可以是主動或被動,zabbix-server中心需要設置一個告警,zabbix需要配置告警的規則和機制,檢測到數據不正常時告警的方式是發微信還是發郵件,都在server中心配置,存儲的數據是可以用圖形呈現出來的,最終是以web界面展現出來。
三、安裝zabbix
官網下載地址 www.zabbix.com/download
zabbix可以yum安裝,但是需要安裝epel擴展源,epel擴展源裏最高版本只能安裝到2.2,所以我們使用官網提供的對應版本的yum源。
Zabbix服務端安裝
# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
此時在/etc/yum.repos.d/裏可以看到zabbix.repo的文件,這就是安裝的rpm包的文件。
# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
zabbix-get:服務端上的一個工具,可以通過命令行模式獲得客戶端的某些監控項目的數據。
zabbix-server-mysql:和mysql相關的文件數據,在安裝zabbix時要把這些數據導入進去的。
zabbix-web:web界面。
zabbix-web-mysql:web和mysql相關的東西。
這裏會連帶安裝httpd和php。
如果mysql之前沒有安裝的話,需要根據lamp那一章的mysql安裝方法安裝mysql,檢查mysql,把它啟動起來。
# vim /etc/my.cnf //在mysqld下增加一行配置,意思是設置字符集,如果不設置,後面web界面的中文顯示可能就會有問題
character_set_server = utf8
重啟mysqld服務systemctl restart mysql
進入mysql命令行
創建zabbix庫
create database zabbix character set utf8; //指定字符集為utf8
再創建用戶
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';
//這個用戶是需要讓web代碼連接mysql的, zabbix-server啟動的前提也是需要能連接mysql的。
然後quit退出來。
導入數據
# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
# gzip -d create.sql.gz
//解壓完生成了create.sql文件
# mysql -uroot -p12345 zabbix < create.sql
# systemctl start zabbix-server
# systemctl enable zabbix-server
啟動httpd之前要先檢查一下你的nginx啟動沒有,需要停止,因為nginx監聽了80端口,httpd需要監聽80。/etc/init.d/nginx stop
# systemctl start httpd; systemctl enable httpd
# systemctl disable nginx
# chkconfig nginx off
錯誤:此時ps看到有進程,但是netstat沒有監聽zabbix的端口,說明這個zabbix沒有啟動起來,不能連接MySQL。開始排查:
日誌:/var/log/zabbix/zabbix_server.log
# vim /etc/zabbix/zabbix_server.conf //修改或增加
DBHost=127.0.0.1
//在DBHost最後面一行增加,這裏可以寫127.0.0.1,也可以寫localhost,創建用戶時寫的是127.0.0.1,所以這裏也寫這個;因為mysql裝在了這臺機器上,mysql在別的機器上就寫那臺機器的IP。
DBName和DBUser有需要的話也要定義,這裏已經默認是zabbix,所以不改。
DBPassword=aming-zabbix //在DBuser下面增加
# systemctl restart zabbix-server
# netstat -lntp |grep zabbix //查看監聽端口為10051
因為yum安裝zabbix的時候,默認安裝了httpd以及配置文件,全都配置好了,所以可以直接訪問了
瀏覽器訪問http://192.168.93.130/zabbix/ //web界面下面配置zabbix
點下一步,Next step
右側OK的就不用管,有一項是Fail,date.timezone。到PHP的配置文件裏修改
# vim /etc/php.ini
搜索timezone
date.timezone = Asia/shanghai //將這行填好,把前面的分號去掉
# systemctl restart httpd
再進瀏覽器刷新,變成OK了,下一步。
填好信息,端口0代表默認的3306,如果是其他就寫其他的,
用戶名zabbix,密碼aming-zabbix
下一步,自定義一個zabbix server的name,下一步,檢查確認無誤再下一步。
出現:Congratulations! You have successfully installed Zabbix frontend.
意思是已經成功安裝了zabbix前端。
然後下一步,出現登錄界面,默認的用戶名Admin 密碼zabbix。
進入後臺第一件事情就是修改密碼
按照1,2,3的順序點進去後再點擊change password就可以修改密碼了,然後修改語言為Chinese,改好點Update。再次登錄時用新密碼登錄即可。
Zabbix客戶端安裝
在客戶端上也需要下載zabbix的yum源
# wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
# yum install -y zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf //修改如下配置
Server=127.0.0.1修改為Server=192.168.93.130 //定義服務端的ip(被動模式)
ServerActive=127.0.0.1修改為ServerActive=192.168.93.130 //定義服務端的ip(主動模式)
被動模式:只能服務端從客戶端上取數據。
主動模式:客戶端主動上報把數據給服務端。
Hostname=Zabbix server修改為Hostname=yaowei-02 //這是自定義的主機名,一會還需要在web界面下設置同樣的主機名
這兩個IP都要寫,原因在於這個客戶端有可能用主動模式,有可能用被動模式
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
# netstat -lntp |grep zabbix
看到端口是10050,服務端的是10051。
四、忘記Admin密碼如何做
進入mysql命令行,選擇zabbix庫
# mysql -uroot -p
mysql> use zabbix //切換到zabbix庫
mysql> update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;
這樣就更改了Admin用戶的密碼
六十四、Linux監控平臺介紹、zabbix監控介紹、安裝zabbix、忘記Admin密碼如何做