2018-4-12 16周2次課 zabbix的安裝
常見開源監控軟件
·cacti、nagios、zabbix、smokeping、open-falcon等等
·cacti、smokeping偏向於基礎監控,成圖非常漂亮
·cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中zabbix和cacti都需要mysql作為數據存儲,nagios不用存儲歷史數據,註重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫裏,從而可以成圖
·open-falcon為小米公司開發,開源後受到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟件,值得研究
·後續以介紹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監控流程圖
·下載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的安裝