Linux監控平臺介紹&zabbix監控介紹&安裝zabbix&忘記Admin密碼如何作

19.1 Linux監控平臺介紹

• 常見開源監控軟件有cacti、nagios、zabbix、smokeping、open-falcon等等php

• cacti、smokeping偏向於基礎監控,成圖很是漂亮mysql

• cacti、nagios、zabbix服務端監控中心,須要php環境支持,其中zabbix和cacti都須要mysql做爲數據存儲,nagios不用存儲歷史數據,注重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫裏,從而能夠成圖linux

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

19.2 zabbix監控介紹

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

• 單server節點能夠支持上萬臺客戶端,雖然支持上萬臺,但監控的項目過多,採集數據的量太大,仍是會致使zabbix效率下降;因此,當服務器大到必定規模的時候,就須要對zabbix進行優化。針對該問題,能夠增長一些代理點,這些代理點充當server,替代server去採集數據,最終獲得分析結果再彙報給主服務端serverweb

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

• 5個組件數據庫

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

二、數據存儲 存放數據,好比mysql瀏覽器

三、web界面 也叫web UI,在web界面下操做配置是zabbix簡單易用的主要緣由

四、zabbix-proxy 可選組件,它能夠代替zabbix-server的功能,減輕server的壓力。有時候,服務器分佈在多個機房裏,每一個機房的服務器之間都是一個單獨的內網,這時候就能夠在某一個局域網裏搭建一個 zabbix-proxy ,用這臺 proxy 去監控局域網裏的機器

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

zabbix監控流程圖

 

19.3/19.4/19.6 安裝zabbix

準備工做

準備兩臺機器,一臺做爲服務端(監控中心),另一臺做爲它的客戶端。

下載zabbix的rpm包

zabbix能夠直接yum安裝,但須要安裝epel擴展源,在epel擴展源裏面安裝的zabbix的版本,最高是2.2版本,比較舊,因此使用官方提供的repo源,實驗中使用的zabbix3.2版本

首先訪問官方下載地址,選擇對應的版本,並提供對應的發行版,下圖所示,複製該連接

兩臺機器均須要下載

wget https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

安裝rpm包

實際上安裝rpm包至關於安裝了一個yum源倉庫

rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm

查看/etc/yum.repos.d/目錄下面會看到增長了一個zabbix.repo

[root@linux-5 ~]# ls /etc/yum.repos.d/
CentOS-Base.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

安裝zabbix

服務端與客戶端安裝的內容不一樣,在服務端是須要安裝這些全部的包,而在客戶端僅僅須要安裝 zabbix-agent 包便可

服務端
yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

客戶端
yum install -y zabbix-agent

zabbix-agent  客戶端軟件;

zabbix-get  服務端用的一個工具,這個工具能夠經過命令行的形式得到客戶端某些監控項目的數據;

zabbix-server-mysql  這個是服務端跟mysql打交道相關的組件;

zabbix-web  webUI ,web界面;

zabbix-web-mysql  web和mysql相關組件;

zabbix 是基於php環境的,也就是說用的是php 的代碼編寫的web界面,也就說這個zabbix 至關於一個站點;

安裝mysql,若是mysql以前沒有安裝的話,可根據lamp那一章的mysql安裝方法安裝mysql

服務端配置

修改MySQL配置文件

vim /etc/my.cnf
在[mysqld]下增長字符集
character_set_server = utf8

若是不設置字符集,那麼zabbix的web界面,設置成中文的話,可能就會出現亂碼

修改完mysql的配置文件後,重啓mysql服務

/etc/init.d/mysqld restart

建立zabbix庫

create database zabbix character set utf8; //建立庫同時指定字符集爲utf-8

建立用戶

grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';

這個用戶是須要讓web(php)代碼鏈接mysql的,監控中心zabbix mysql服務,啓動的前提就是要鏈接mysql;客戶端採集了數據,須要把這些數據傳遞給服務端,那麼服務端怎麼把這些數據寫入到MySQL去,這時就涉及到了mysql 的用戶,涉及到了mysql 的數據庫;用哪個用戶,去寫入那一個庫。

導入原始數據

退出mysql的命令行後,導入原始的數據,若缺乏這些數據,zabbix就沒有辦法工做,就沒有辦法在web界面下展示給咱們

[root@linux-5 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@linux-5 zabbix-server-mysql-3.2.11]#

在/usr/share/doc/zabbix-server-mysql-3.2.11/目錄下有一個create.sql.gz壓縮包,將它解壓,解壓以後生成一個.sql的文件

[root@linux-5 zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@linux-5 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 
[root@linux-5 zabbix-server-mysql-3.2.11]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README

將create.sql文件,導入到zabbix庫裏面去

[root@linux-5 zabbix-server-mysql-3.2.11]# mysql -uroot zabbix < create.sql

啓動zabbix服務

systemctl start zabbix-server

啓動httpd服務

在啓動http服務以前,先查看nginx服務是否啓動,若啓動了nginx,就監聽了80端口,就須要去停掉nginx服務,再去啓動httpd服務

[root@linux-5 zabbix-server-mysql-3.2.11]# ps aux|grep nginx
root       3276  0.0  0.1 120752  2096 ?        Ss   17:21   0:00 nginx: master process /usr/sbin/nginx
nginx      3277  0.0  0.1 121136  3584 ?        S    17:21   0:00 nginx: worker process
root       4811  0.0  0.0 112676   984 pts/0    R+   23:50   0:00 grep --color=auto nginx
[root@linux-5 zabbix-server-mysql-3.2.11]# systemctl stop nginx
[root@linux-5 zabbix-server-mysql-3.2.11]# ps aux|grep nginx
root       4822  0.0  0.0 112676   984 pts/0    R+   23:50   0:00 grep --color=auto nginx
[root@linux-5 zabbix-server-mysql-3.2.11]# systemctl start httpd
[root@linux-5 zabbix-server-mysql-3.2.11]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::80                   :::*                    LISTEN      4829/httpd

若須要開機啓動httpd服務和zabbix服務,則須要將它加入到服務的列表中去,同時須要取消開機啓動Nginx服務

[root@linux-5 zabbix-server-mysql-3.2.11]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@linux-5 zabbix-server-mysql-3.2.11]# 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@linux-5 zabbix-server-mysql-3.2.11]# systemctl disable nginx
[root@linux-5 zabbix-server-mysql-3.2.11]# chkconfig nginx off
注意:正在將請求轉發到「systemctl disable nginx.service」。

檢查zabbix服務的進程與監聽端口

[root@linux-5 zabbix-server-mysql-3.2.11]# ps aux|grep zabbix
zabbix     4802  0.0  0.1 254588  3488 ?        S    7月09   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
root       4965  0.0  0.0 112676   984 pts/0    R+   00:00   0:00 grep --color=auto zabbix
[root@linux-5 zabbix-server-mysql-3.2.11]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      564/rpcbind         
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      857/rpc.mountd      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      811/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1226/master         
tcp        0      0 0.0.0.0:33914           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:54120           0.0.0.0:*               LISTEN      821/rpc.statd       
tcp6       0      0 :::111                  :::*                    LISTEN      564/rpcbind         
tcp6       0      0 :::80                   :::*                    LISTEN      4829/httpd          
tcp6       0      0 :::20048                :::*                    LISTEN      857/rpc.mountd      
tcp6       0      0 :::22                   :::*                    LISTEN      811/sshd            
tcp6       0      0 :::40951                :::*                    LISTEN      821/rpc.statd       
tcp6       0      0 ::1:25                  :::*                    LISTEN      1226/master         
tcp6       0      0 :::44352                :::*                    LISTEN      -                   
tcp6       0      0 :::2049                 :::*                    LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN      4700/mysqld

經過檢查結果能夠發現,雖然服務啓動了,但並無zabbix監聽的端口,所以須要查看錯誤日誌排查問題所在

[root@linux-5 zabbix-server-mysql-3.2.11]# tail /var/log/zabbix/zabbix_server.log

  4802:20180710:000249.473 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  4802:20180710:000249.476 database is down: reconnecting in 10 seconds
  4802:20180710:000259.479 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  4802:20180710:000259.479 database is down: reconnecting in 10 seconds
  4802:20180710:000309.480 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  4802:20180710:000309.480 database is down: reconnecting in 10 seconds
  4802:20180710:000319.480 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  4802:20180710:000319.480 database is down: reconnecting in 10 seconds
  4802:20180710:000329.483 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  4802:20180710:000329.483 database is down: reconnecting in 10 seconds

雖然zabbix服務有進程,但沒有完全的起來,說明不可以鏈接mysql,因此還須要更改zabbix的配置文件。

修改zabbix配置文件

vim /etc/zabbix/zabbix_server.conf

搜索/DBHost
在DBName=zabbix上面增長
DBHost=127.0.0.1

在DBuser下面增長
DBPassword=123456

由於mysql和zabbix裝在同一臺機器上,這裏的 DBHost能夠寫localhost 或者127.0.0.1;若是是在生產環境上,有時候爲了提高zabbix的性能,可能會把MySQL裝在其餘機器上,這時的DBHost,就須要寫mysql的ip,建立的用戶的來源IP也須要寫mysql的ip

重啓zabbix服務

systemctl restart zabbix-server.service

重啓後從新查看服務和進程

[root@linux-5 zabbix-server-mysql-3.2.11]# ps aux|grep zabbix
zabbix     5089  0.1  0.2 254768  4172 ?        S    00:19   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix     5092  0.0  0.1 254768  2516 ?        S    00:19   0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]
zabbix     5093  0.0  0.1 254768  2728 ?        S    00:19   0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.028233 sec, idle 60 sec]
zabbix     5094  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000003 sec, idle 5 sec]
zabbix     5095  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000002 sec, idle 5 sec]
zabbix     5096  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000003 sec, idle 5 sec]
zabbix     5097  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000003 sec, idle 5 sec]
zabbix     5098  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000003 sec, idle 5 sec]
zabbix     5099  0.0  0.2 361712  5252 ?        S    00:19   0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix     5100  0.0  0.1 254768  3624 ?        S    00:19   0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix     5101  0.0  0.1 254768  3624 ?        S    00:19   0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix     5102  0.0  0.1 254768  3624 ?        S    00:19   0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix     5103  0.0  0.1 254768  3624 ?        S    00:19   0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix     5104  0.0  0.1 254768  3624 ?        S    00:19   0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix     5108  0.0  0.1 257340  2656 ?        S    00:19   0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000003 sec, idle 5 sec]
zabbix     5109  0.0  0.1 254768  2860 ?        S    00:19   0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.000335 sec, idle 30 sec]
zabbix     5111  0.0  0.1 254768  2512 ?        S    00:19   0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
zabbix     5112  0.0  0.1 254844  2968 ?        S    00:19   0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000156 sec, 0 maintenances in 0.000000 sec, idle 30 sec]
zabbix     5113  0.0  0.1 254768  2872 ?        S    00:19   0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000488 sec, idle 5 sec]
zabbix     5116  0.0  0.2 359128  5088 ?        S    00:19   0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.001294 sec, idle 60 sec]
zabbix     5117  0.0  0.1 254768  2860 ?        S    00:19   0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix     5118  0.0  0.1 254768  2860 ?        S    00:19   0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000010 sec, idle 1 sec]
zabbix     5119  0.0  0.1 254768  2860 ?        S    00:19   0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000001 sec, idle 1 sec]
zabbix     5120  0.0  0.1 254768  2860 ?        S    00:19   0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000000 sec, idle 1 sec]
zabbix     5125  0.0  0.2 254768  3804 ?        S    00:19   0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000417 sec, idle 3 sec]
zabbix     5126  0.0  0.2 254768  3804 ?        S    00:19   0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000002 sec, idle 5 sec]
zabbix     5134  0.0  0.1 254768  2628 ?        S    00:19   0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000004 sec, idle 1 sec]
zabbix     5135  0.0  0.1 254768  2848 ?        S    00:19   0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000292 sec, idle 5 sec]
root       5146  0.0  0.0 112676   984 pts/0    R+   00:20   0:00 grep --color=auto zabbix
[root@linux-5 zabbix-server-mysql-3.2.11]# netstat -lntp|grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      5089/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      5089/zabbix_server

檢查能夠發現,正常啓動的zabbix有許多子進程,監聽端口爲10051端口

web界面配置

在瀏覽器輸入IP地址(即監控中心的IP地址),http://192.168.88.5/zabbix/去訪問

點擊next

此時安裝嚮導提示設置PHP的時區,須要修改PHP默認配置文件

vim /etc/php.ini

搜索timezone
改成date.timezone = Asia/Shanghai

修改完成後須要重啓Apache服務

systemctl restart httpd

重啓後刷新web界面,發現時區已成功定義

繼續點擊next,填寫相應信息

最終完成安裝

點擊finish後,會彈出zabbix監控中心後臺登陸界面

默認用戶名爲:Admin,默認密碼:zabbix

修改密碼

進入後,首先修改密碼,避免泄露

修改完成後,刷新瀏覽器,發現界面已變爲中文

客戶端配置

安裝zabbix

yum install -y zabbix-agent

由於是客戶端,因此只須要安裝一個包

編輯zabbix的配置文件

客戶端與服務端通訊是經過白名單IP的形式,所以須要在客戶端上配置監控中心的IP

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.88.5         //監控中心IP
# 定義服務端的ip(被動模式)

ServerActive=192.168.88.5   //監控中心IP
#定義服務端的ip(主動模式)
#這個涉及到一個主動和被動模式;若是這裏不填寫服務中心的IP,那麼就只能使用被動模式;這個IP是主動模式時候用的

Hostname=Zabbix server修改成Hostname=lem-02
#這是自定義的主機名,一會還須要在web界面下添加監控客戶端時須要設置一樣的主機名

啓動zabbix服務

systemctl start zabbix-agent.service

查看進程和監聽端口

[root@linux-10 ~]# ps aux|grep zabbix
zabbix     1510  0.0  0.0  80704  1280 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix     1511  0.0  0.0  80704  1348 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     1512  0.0  0.0  80704  1844 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     1513  0.0  0.0  80704  1844 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     1514  0.0  0.0  80704  1844 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     1515  0.0  0.1  80836  2204 ?        S    11:12   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root       1523  0.0  0.0 112720   968 pts/0    R+   11:15   0:00 grep --color=auto zabbix

[root@linux-10 ~]# netstat -lntp|grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      1510/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      1510/zabbix_agentd

從檢查結果能夠發現zabbix服務端監聽的是10051端口,客戶端監聽的端口是10050

19.5 忘記Admin密碼如何作

重置zabbix密碼,就是直接更改數據庫裏的數據便可

進入mysql

[root@linux-5 ~]# mysql -uroot

使用zabbix庫

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

Database changed

查看相關的表

show tables;

之後服務器監控的主機越多,那麼這些表會愈來愈大,因此須要去指定合適的監控策略。例如:數據量須要保存多長時間,那麼在定義這個監控項目的時候就該想到,要保留1個月仍是1年,仍是其餘時間;或者,監控的站點服務量很大的話,一天就要漲好幾個G,那麼你的服務器磁盤能支持保存多長時間。

zabbix用戶的密碼,默認存放的表是users裏面

查看users表

desc users;

須要修改的是passwd表

修改密碼

update users set passwd=md5(‘123456’) where alias=‘Admin’;

修改後就可使用新密碼登陸zabbix了。

相關文章
相關標籤/搜索