1、Linux監控平臺介紹
這幾款軟件都是須要PHP環境支持,使用Apache PHP或者NGINX的PHP均可以,nagios不須要使用mysql,cacti和zabbix是須要使用mysql的
2、zabbix監控介紹
zabbix監控流程圖
3、安裝zabbix
須要準備兩臺機器,一臺做爲zabbix-server服務端,一臺做爲zabbix-agent客戶端
[root@linux-01 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-02 ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-01 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm //實際上就是安裝了一個yum源倉庫
[root@linux-02 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
[root@linux-01 ~]# cat /etc/yum.repos.d/zabbix.repo //這個其實就是剛纔安裝的rpm包
zabbix-server服務端須要安裝一下這些包
[root@linux-01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql //yum安裝這些包
若是mysql以前沒有安裝過,須要yum安裝或者編譯安裝mysql,安裝請參考lamp那一章
[root@linux-01 ~]# ps aux |grep mysql //檢查mysql有沒有啓動
[root@linux-01 ~]# systemctl start mysql
若是遇到啓動報錯,須要查看mysql錯誤日誌
[root@linux-01 ~]# less /data/mysql/linux-01.err //查看error,定位問題
[root@linux-01 ~]# ls -l /data/mysql/ //錯誤緣由有多是/data/mysql/ 屬組屬主不是mysql:mysql
[root@linux-01 ~]# vim /etc/my.cnf //編輯配置文件,增長配置
在[mysqld]第一行添加 character_set_server = utf8 ,爲了更好的支持web中文界面
[root@linux-01 ~]# systemctl restart mysql //重啓mysql
[root@linux-01 ~]# mysql -uroot -p123456 //登陸mysql命令行,建立zabbix庫
mysql> create database zabbix character set utf8; //指定編碼爲utf8
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix'; //再建立一個用戶,是讓PHP代碼鏈接mysql,還有zabbix-server啓動的前提是可以鏈接mysql,客戶端採集了數據,它須要把數據傳遞給服務端,服務端須要把數據寫入到mysql裏面,涉及到它須要使用哪個用戶查詢、寫入到哪個庫,在庫裏面有相關的表,因此須要設定一個用戶,這個用戶對庫有讀寫發權限
mysql> quit
導入原始數據,沒有這些數據,zabbix沒有辦法工做,沒辦法在web界面下展示
[root@linux-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/ //zabbix自帶數據的目錄
[root@linux-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@linux-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz //解壓create.sql.gz包
[root@linux-01 zabbix-server-mysql-3.2.11]# ls //生成create.sql文件
AUTHORS ChangeLog COPYING create.sql NEWS README
[root@linux-01 zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql //導入到zabbix庫裏面
[root@linux-01 ~]# systemctl start zabbix-server //啓動zabbix-server服務
接下來須要啓動httpd服務,啓動前先檢查有沒有啓動nginx服務
[root@linux-01 ~]# ps aux |grep nginx //若是啓動nginx服務先關閉nginx服務
[root@linux-01 ~]# systemctl start httpd //啓動httpd服務
[root@linux-01 ~]# systemctl enable httpd //開機啓動須要加入到服務列表
[root@linux-01 ~]# systemctl enable zabbix-server //zabbix-server加入開機啓動服務列表
[root@linux-01 ~]# systemctl disable nginx //禁止nginx開機啓動
[root@linux-01 ~]# chkconfig nginx off
[root@linux-01 ~]# ps aux |grep zabbix //查看服務端進程有沒有起來
[root@linux-01 ~]# netstat -lntp //進程有了,可是沒有監聽10051端口
[root@linux-01 ~]# less /var/log/zabbix/zabbix_server.log //查看錯誤日誌
2980:20180709:080458.256 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@linux-01 ~]# vim /etc/zabbix/zabbix_server.conf //修改或增長
DBHost=127.0.0.1 //注意:若是以前建立zabbix用戶是受權的是127.0.0.1,這裏就寫127.0.0.1,若是受權寫的是localhost,那麼這裏定義DBHost=localhost;生產環境中,爲了提高zabbix中心的效率,能夠把mysql安裝到另外一臺機器上,那麼這裏就須要寫mysql服務器的IP地址了,以前建立zabbix用戶受權的時候也是受權mysql服務器的IP地址,必定要記住這一點!
DBPassword=aming-zabbix //在DBuser下面增長,數據庫密碼就是以前受權mysql用戶時建立的密碼
[root@linux-01 ~]# systemctl restart zabbix-server //重啓zabbix-server服務,由於以前已經啓動過zabbix-server服務了,因此這裏須要重啓
[root@linux-01 ~]# ps aux |grep zabbix //正常的話它須要啓動不少子進程
[root@linux-01 ~]# netstat -lntp //查看下是否正常監聽了10051端口
配置WEB頁面
[root@linux-01 ~]# vi /etc/php.ini //配置web頁面前先修改PHP的配置文件的時區
須要將;date.timezone = 修改成 date.timezone = Asia/Shanghai
[root@linux-01 ~]# systemctl restart httpd //重啓Apache服務
打開瀏覽器訪問:http://ip/zabbix ,在web界面下配置zabbix
點擊Next step,查看下圖所有爲OK
點擊Next step
Database host寫127.0.0.1,Database port默認0就表示3306端口,Database name寫zabbix,User寫zabbix,Password寫aming-zabbix,這個密碼是以前受權zabbix用戶時建立的密碼
點擊Next step
Name是定義zabbix-server的主機名,能夠自定義,我這裏定義爲aming-01
點擊Next step,查看下以前填寫的信息
點擊Next step,看到以下界面表示配置web界面成功
點擊Finish,進入登陸界面
默認登陸帳號爲Admin ,默認密碼爲zabbix
點擊Signin in,登陸到web頁面
登陸到web界面的第一件事情是必定要修改管理員用戶Admin的密碼,否則會很是危險
修改完密碼以後修改界面爲中文界面
Zabbix客戶端安裝
[root@linux-02 ~]# yum install -y zabbix-agent //yum安裝zabbix-agent
[root@linux-02 ~]# vi /etc/zabbix/zabbix_agentd.conf //配置zabbix_agentd.conf 配置文件
修改Server=127.0.0.1爲Server=192.168.238.128 ,這個IP是zabbix-server端的IP
修改ServerActive=127.0.0.1爲ServerActive=192.168.238.128,這個IP也是監控中心的IP,這個涉及到主動模式和被動模式,客戶端有可能用主動模式,也有可能用被動模式
被動模式:若是隻配置Server=192.168.238.128 ,只能使用被動模式,只能等待服務端來取數據;
主動模式:Server=192.168.238.128和ServerActive=192.168.238.128都配置了,客戶端就能夠主動上報數據給服務端
修改Hostname=Zabbix server爲 Hostname=linux-02 ,這裏定義Hostname不能隨便定義,在web界面加監控主機的時候,它就不識別主機名,若是在監控中心隨便定義一個名字,那麼在客戶端上就識別不到,在服務端的日誌裏面能夠看到隨便定義的主機名它不知道,它卻是不影響監控,
[root@linux-02 ~]# systemctl start zabbix-agent //啓動zabbix-agent服務
[root@linux-02 ~]# ps aux |grep zabbix //能夠看下服務有沒有起來
[root@linux-02 ~]# netstat -lntp //能夠查看到監聽的端口是10050
[root@linux-02 ~]# systenctl enable zabbix-agent //開機啓動php
4、忘記Admin密碼如何作
[root@linux-01 ~]# mysql -uroot -p123456 //進入到數據庫
mysql> use zabbix; //使用zabbix庫
mysql> show tables; //查看zabbix庫裏面的表,裏面的表不少,都是zabbix相關的表,若是後續監控的主機很是多的話,這個表會愈來愈大,須要提早制定合適的監控規則、策略,好比數據量須要保留多長時間,那麼在定義監控項目的時候,好比保留一個月或者一年,若是監控的量很是大,那麼一天磁盤可能會長几個G,磁盤是否支持,這些問題都須要想到,
mysql> desc users; //密碼存放在users表裏面,能夠查看下users表裏面都有哪些字段,其實密碼文件就存放在passwd裏面,忘記密碼修改passwd
mysql> update users set passwd=md5(‘newpasswd’) where alias=‘Admin’; //修改一個新密碼
mysql> select * from users;
mysql> quit
這時候就可使用新密碼去登陸web界面了mysql