1. 程式人生 > >2018-4-12 16周2次課 zabbix的安裝

2018-4-12 16周2次課 zabbix的安裝

zabbix

19.1 Linux監控平臺介紹


常見開源監控軟件

·cacti、nagios、zabbix、smokeping、open-falcon等等

·cacti、smokeping偏向於基礎監控,成圖非常漂亮

·cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中zabbix和cacti都需要mysql作為數據存儲,nagios不用存儲歷史數據,註重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫裏,從而可以成圖

·open-falcon為小米公司開發,開源後受到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟件,值得研究

·後續以介紹zabbix為主





19.2 zabbix監控介紹


·C/S架構,基於C++開發,監控中心支持web界面配置和管理

·單server節點可以支持上萬臺客戶端

·最新版本3.4,官方文檔https://www.zabbix.com/manuals

·5個組件:

·zabbix-server 監控中心,接收客戶端上報信息,負責配置、統計、操作數據

·數據存儲 存放數據,比如mysql

·web界面 也叫web UI,在web界面下操作配置是zabbix簡單易用的主要原因

·zabbix-proxy 可選組件,它可以代替zabbix-server的功能,減輕server的壓力

·zabbix-agent 客戶端軟件,負責采集各個監控服務或項目的數據,並上報

·zabbix監控流程圖

技術分享圖片




19.3/19.4/19.6 安裝zabbix


·下載zabbix的rpm包:

官網下載地址 www.zabbix.com/download,選擇需要的版本,找到rpm包地址,wget到本地

技術分享圖片


·下載rpm包,並安裝

[root@localhost ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@localhost ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
警告:zabbix-release-3.2-1.el7.noarch.rpm: 頭V4 RSA/SHA512 Signature, 密鑰 ID a14fe591: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
1:zabbix-release-3.2-1.el7         ################################# [100%]
[root@localhost ~]# cat /etc/yum.repos.d/##yum源中增加了zabbix的源,可直接yum安裝
CentOS7-Base-163.repo  CentOS-Debuginfo.repo  CentOS-Media.repo      CentOS-Vault.repo      epel-testing.repo
CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo    epel.repo              zabbix.repo
[root@localhost ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web
zabbix-web-mysql
(過程略)

zabbix-agent 客戶端軟件

zabbix-get 使用命令行,在服務端上用來獲取客戶端的某些監控項目數據的工具

zabbix-server-mysql 安裝的和mysql相關的一些數據,安裝zabbix時需要導入

zabbix-web web界面

zabbix-web-mysql web和mysql相關的東西

(服務端要安裝所有包,而客戶端只要安裝zabbix-agent)


會連帶安裝httpd和php

如果mysql之前沒有安裝的話,需要根據lamp那一章的mysql安裝方法安裝mysql

(安裝過程詳見:http://blog.51cto.com/11530642/2073264,此處省略


·啟動mysqld,設置字符集(如果不設置,zabbix的web界面設置為中文的話,會有問題)

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# vim /etc/my.cnf

技術分享圖片


·重啟mysqld服務後,進入mysql命令行,創建zabbix庫

[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql -uroot -p123456
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)


·再創建用戶,對庫有讀寫權限,讓web代碼(php代碼)連接mysql

zabbix-server啟動的前提也是需要能連接mysql

mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.00 sec)


·導入數據:

[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@localhost zabbix-server-mysql-3.2.11]# gunzip create.sql.gz##解壓
[root@localhost zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README
[root@localhost zabbix-server-mysql-3.2.11]# mysql -uroot -p123456 zabbix < create.sql
Warning: Using a password on the command line interface can be insecure.


·開啟httpd服務(nginx需要關閉):

[root@localhost zabbix-server-mysql-3.2.11]# cd
[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# /etc/init.d/nginx stop                    ##關閉nginx
Stopping nginx (via systemctl):                            [  確定  ]
[root@localhost ~]# netstat -lntp                             ##nginx已關閉,80端口沒有被監聽

技術分享圖片

[root@localhost ~]# systemctl start httpd                        ##啟動httpd
[root@localhost ~]# !net

技術分享圖片

[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl enable zabbix-server                ##設置開機啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@localhost ~]# systemctl disable nginx                        ##關閉nginx開機啟動
nginx.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig nginx off
[root@localhost ~]# chkconfig nginx off
[root@localhost ~]# ps aux |grep zabbix                            ##zabbix已啟動但是並沒監聽端口
zabbix     2474  0.0  0.3 254580  3484 ?        S    22:18   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
root       2640  0.0  0.0 112676   984 pts/0    R+   22:21   0:00 grep --color=auto zabbix
[root@localhost ~]# netstat -lntp

技術分享圖片



·由於zabbix-server沒有監聽端口,所以去查看日誌

[root@localhost ~]# less /var/log/zabbix/zabbix_server.log
2474:20180412:222009.390 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mys



·修改zabbix-server配置文件:

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

技術分享圖片


DBHost就是服務端的ip,如果是本機可以寫127.0.0.1或者localhost,如果在遠程機器,寫該機器ip

DBName=zabbix 默認就是zabbix

DBUser=zabbix 就是之前grant創建用戶連接的用戶名

DBPassword=123456 同上,是之前授權時用的密碼

如果DBHost寫了遠程機器ip,類似於192.168.65.129,那麽在grant授權時,’zabbix‘@xxx,xxx就要寫webUI,也就是php代碼所在機器的ip(也就是服務端ip) 192.168.65.128,在這裏試驗是本機127.0.0.1



·重啟zabbix-server服務:

[root@localhost ~]# systemctl restart zabbix-server
[root@localhost ~]# ps aux |grep zabbix[object Object]
[root@localhost ~]# netstat -lntp

技術分享圖片

(zabbix-server服務監聽的10051端口)


·配置web界面:

輸入zabbix監控中心的IP地址:http://192.168.65.128/zabbix/setup.php

yum安裝zabbix,默認會安裝httpd以及他的配置文件,因此會省心很多

技術分享圖片

技術分享圖片

查看右側顯示 Fail 的項目,上圖中是timezone沒有設置,可在php.ini中配置


·編輯php默認配置文件

[root@localhost ~]# vim /etc/php.ini

技術分享圖片

·重啟httpd後再刷新網頁:

[root@localhost ~]# systemctl restart httpd

全部顯示OK進入下一步

技術分享圖片

host是php代碼所在機器

port寫0是默認3306端口,如果是其他端口則寫實際端口號

name是數據庫名

user和password是授權時定義的user和password


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

主機名可隨意定義


·最後確認信息是否正確:

技術分享圖片


·最後提示成功

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


·登錄一下,默認用戶名為Admin,密碼為zabbix

技術分享圖片


·進入後臺第一件事情就是修改密碼:

在 Adminstration ——> Users ——> Admin 中

技術分享圖片

點擊Change password

技術分享圖片

重新設置並重復確認

技術分享圖片

更改語言為中文:

技術分享圖片

完成後點Update,刷新頁面之後,界面就成中文了

技術分享圖片





·zabbix客戶端安裝:

[root@localhost ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@localhost ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
警告:zabbix-release-3.2-1.el7.noarch.rpm: 頭V4 RSA/SHA512 Signature, 密鑰 ID a14fe591: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
1:zabbix-release-3.2-1.el7         ################################# [100%]
[root@localhost ~]# yum install -y zabbix-agent##只要安裝zabbix-agent包
(過程略)


·zabbix配置文件更改:

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

(服務端和客戶端連接,客戶端上需要指定服務端ip,設置白名單ip)


Server=192.168.65.128(服務端ip,被動模式)

技術分享圖片

ServerActive=192.168.65.128(服務端ip,主動模式)

技術分享圖片

(Server 和 ServerActive 都要設置,客戶端有可能用主動模式,有可能用被動模式,如果只設置 Server ,那只能用被動模式,只能等待服務端過來取數據,如果需要主動上報數據就要設置後者)


·還要自定義的主機名,一會還需要在web界面下設置同樣的主機名

技術分享圖片

[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# ps aux |grep zabbix
zabbix     1642  0.0  0.1  80664  1264 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix     1643  0.0  0.1  80664  1300 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     1644  0.0  0.1  80664  1844 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     1645  0.0  0.1  80664  1844 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     1646  0.0  0.1  80664  1844 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     1647  0.0  0.2  80796  2196 ?        S    23:52   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root       1649  0.0  0.0 112676   976 pts/0    S+   23:52   0:00 grep --color=auto zabbix
[root@localhost ~]# netstat -lntp

技術分享圖片

(zabbix-server監聽端口為10051,而zabbix-agent監聽端口為10050)





19.5 忘記Admin密碼如何做


進入到數據庫中直接更改數據

[root@localhost ~]# mysql -uroot -p123456


mysql> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> desc users;

技術分享圖片

mysql> update users set passwd=md5('alex123456') where alias='Admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users;

技術分享圖片


·此時再刷新網頁,就可以用新密碼登錄zabbix

技術分享圖片


2018-4-12 16周2次課 zabbix的安裝