64.監控平臺介紹 安裝zabbix 忘記admin密碼

19.1 Linux監控平臺介紹php

19.2 zabbix監控介紹mysql

19.3/19.4/19.6 安裝zabbixlinux

19.5 忘記Admin密碼如何作ios

 

 

 

 

 

 

19.1 Linux監控平臺介紹:nginx

 

 

 

常見開源監控軟件web

~1.cacti、nagios、zabbix、smokeping、open-falcon等等sql

~2.cacti、smokeping偏向於基礎監控,成圖很是漂亮數據庫

好比監控網絡的設備,也更適合apache

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

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

架構思想值得咱們研究

~5.後續以介紹zabbix爲主

nagios與zabbix相比,nagios更注重某一個監控的狀態。好比某一個監控是正常仍是不正常,一目瞭然,他僅僅關心這個狀態。不去關心歷史,過去十分鐘或一小時,這個監控的項目是怎麼樣的,他不關心

而zabbix會把每一時刻的項目都要抓到一個數值過來。那這個數值存在了數據庫裏。也就能夠說咱們能夠用這些歷史的數值去畫圖,造成一個圖表。nagios不支持mysql的支持,因此他不能成圖,他要想畫圖要一個插件的支持。cacti也須要支持mysql的支持,能夠畫圖

對於這幾款監控軟件,都是支持php環境的支持。用Apache或nginx均可以

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

19.2 zabbix監控介紹:

 

 

 

 

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

也是要有一個服務端去客戶端抓數據。那怎麼抓的呢,必需要在客戶端有一個服務啓動着,這個服務是負責採集數據的。這個數據是能夠主動的上報給服務端,也能夠上服務端鏈接客戶端抓數據。那也就意味着客戶端分兩種模式,一個是主動模式,一個是被動模式。

~2.單server節點能夠支持上萬臺客戶端

他的併發量仍是蠻大的。他的瓶頸可能在於你採集數據的量,雖然支持上萬臺客戶端,可是上萬臺客戶端採集的數據太多的話,也會致使效率下降。因此當你服務器的規模大到必定程度的時候,zabbix就要作一些優化了。好比增長一些代理點,這些代理點充當server的角色,替代server去採集數據,而後在採集數據在彙報給server

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

~4.5個組件

zabbix的架構裏包括了5個組件。

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

~6.數據存儲 存放數據,好比mysql

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

~8.zabbix-proxy 可選組件,它能夠代替zabbix-server的功能,減輕server的壓力

在機器量不少的時候,能夠選擇使用它

有時候你的服務器可能分佈在多個機房裏。每一個機房的服務器之間是單獨的內網,那這個時候就能夠在某一個局域網裏搭建一個zabbix-proxy,用這臺proxy去監控這個局域網內的機器

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

每一臺客戶端都要安裝這個

 

zabbix監控流程圖:

若是想要監控一個服務器,那先要添加主機到監控中心去,讓他們二者先通訊。而後還要添加監控的項目。可以和服務端通訊了,就會採集數據,就會上報到數據中心去(就是是mysql裏面),就會到zabbix-server裏面,採集過程也能夠是主動也能夠是被動。而後zabbix-server須要配置一個告警規則,就是你採集的數據有沒有達到告警的條件,若是達到了就告警,若是沒有到達就只是存儲。還要配置告警的機制,就是說判斷了數據不正常,須要告警了,那怎麼告警,是發郵件仍是發短信,通知給誰呢,都須要在服務端,server中心配置。那全部的配置都是在web界面(UI)裏面去配置的。並且這些存儲的數據是能夠用圖形呈現的,也是經過web界面展示給咱們

 

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

 

19.3/19.4/19.6 安裝zabbix:

 

 

 

如下實驗準備兩臺機器,一臺服務端,也就是監控中心。另外一臺客戶端

~1.

官網下載地址 www.zabbix.com/download

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

~2.

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

~3.

yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

zabbix-agent客戶端軟件

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

zabbix-server-msql須要安裝一些與mysql相關的文件。好比這裏面的.sql的數據。安裝完以後須要把這個數據導入進去的

zabbix-web是咱們的web UI就是web界面

zabbix-web-mysql咱們的web確定要和mysql打交道。因此還要安裝web與mysql相關的文件。這個是在服務端安裝的,客戶端僅僅安裝zabbix-agent就能夠了

~4.

會連帶安裝httpd和php

~5.

若是mysql以前沒有安裝的話,須要根據lamp那一章的mysql安裝方法安裝mysql。也能夠yum安裝mysql

~6.

vim /etc/my.cnf //須要增長配置

character_set_server = utf8 #[mysql]最上面插入便可(即設定中文字符集)

~7.

重啓mysqld服務後,進入mysql命令行,建立zabbix庫

create database zabbix character set utf8;

~8.

再建立用戶。這個用戶是須要讓web代碼(php代碼)鏈接mysql的。

還有就是監控中心(zabbix-server),這個服務啓動的前提也是可以鏈接mysql。你的客戶端採集了數據,並傳遞給服務端,那服務端怎麼樣吧這些數據寫入到mysql裏面去,這就涉及到這個mysql的用戶和數據庫。他用哪一個用戶去寫入查詢,在這個庫裏面有相關的表。因此咱們要前提要設定一個用戶,這個用戶須要對這個庫有讀寫的權限

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

這個密碼(aming-zabbix)要記住。等下在~11.步驟配置文件的時候會用到

這裏設置的127.0.0.1是來源IP。若是不在同一臺機器上,就要寫web UI(PHP代碼)所在的機器IP。跟~11.步驟是對應起來的

~9.

導入數據。導入原始的數據,否則zabbix無法在web界面下展示給咱們

cd /usr/share/doc/zabbix-server-mysql-3.2.11 #自帶的數據就在這個目錄下。!!輸入的時候tab補全,避免版本號不同

gzip -d create.sql.gz #解壓這個原始的數據

mysql -uroot -pxxx zabbix < create.sql #把這個原始的數據導入到mysql的zabbix庫裏

~10.

systemctl start httpd; systemctl enable httpd #要停掉一樣監聽80端口的nginx

~11.

vim /etc/zabbix/zabbix_server.conf //修改或增長#進程在可是沒有監聽80端口因此要修改配置文件。搜索/DBHost:

DBHost=127.0.0.1 //在DBName=zabbix上面增長 #生產環境中爲提升監控中心的效率,能夠把mysql服務放到另一臺機器上。若是是另一臺機器。那IP確定要寫單獨的一個IP了。而不是127.0.0.1。即來源IP,跟~8.步驟是對應起來的

DBPassword=aming-zabbix //在DBuser下面增長 #~8.步驟mysql設置的時候設定的

~12.

systemctl start zabbix-server

systemctl enable zabbix-server

netstat -lntp |grep zabbix //查看監聽端口

~13.

瀏覽器訪問http://ip/zabbix/ web界面下面配置zabbix

#修改時區:

vim /etc/php.ini #php默認的配置文件

[Date]

; Defines the default timezone used by the date functions

; http://php.net/date.timezone

date.timezone = Asia/Shanghai #去掉註釋,改成上海時區

systemctl restart httpd #再次重啓apache

按照步驟安裝web界面

~14.

進入zabix界面

默認用戶名Admin 密碼zabbix

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

 

 

 

實例:

首先去官網下載rpm包

 

01 02都要下載.

[root@axinlinux-01 ~]# wget https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

[root@axinlinux-02 ~]# wget https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

[root@axinlinux-01 ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm #其實是安裝了一個yum源倉庫。能夠看一下

[root@axinlinux-02 ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

[root@axinlinux-01 ~]# cat /etc/yum.repos.d/ #多了一個zabbix.repo。這個就是咱們剛剛安裝的rpm包所安裝的一個文件

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

那麼有了這個源以後,就能夠直接yum安裝zabbix了。可是要安裝這些包

[root@axinlinux-01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql 0102所須要yum的一些包

[root@axinlinux-02 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

[root@axinlinux-01 ~]# ps aux |grep mysql #檢查是否啓動mysql

[root@axinlinux-01 ~]# vim /etc/my.cnf

[mysqld]

character_set_server = utf8

[root@axinlinux-01 ~]# systemctl restart mysql

[root@axinlinux-01 ~]# mysql -uroot -pwangxin789

MySQL [(none)]> create database zabbix character set utf8;

Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';

Query OK, 0 rows affected (0.08 sec)

[root@axinlinux-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/ #cd進zabbix原始數據的路徑

[root@axinlinux-01 zabbix-server-mysql-3.2.11]# ls

AUTHORS ChangeLog COPYING create.sql.gz NEWS README #就是這個create.sql.gz

[root@axinlinux-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz #解壓他

[root@axinlinux-01 zabbix-server-mysql-3.2.11]# ls

AUTHORS ChangeLog COPYING create.sql NEWS README

[root@axinlinux-01 zabbix-server-mysql-3.2.11]# mysql -uroot -pwangxin789 zabbix < create.sql

#咱們把這個zabbix的原始數導入到mysql的zabbix庫裏。中間須要些時間

[root@axinlinux-01 ~]# systemctl start zabbix-server #啓動zabbix

[root@axinlinux-01 ~]# systemctl start httpd^C #啓動httpd以前要看一下nginx是否啓動,由於他也是監聽80端口

[root@axinlinux-01 ~]# ps aux |grep nginx

[root@axinlinux-01 ~]# /etc/init.d/nginx stop #關掉nginx

Stopping nginx (via systemctl): [ 肯定 ]

[root@axinlinux-01 ~]# !ps #檢查nginx是否關閉

[root@axinlinux-01 ~]# netstat -lntp #看一下80端口是否監聽,沒有的話咱們才能夠開啓httpd

[root@axinlinux-01 ~]# systemctl start httpd #開啓htpd

[root@axinlinux-01 ~]# !netstat #檢查是否監聽了80端口

netstat -lntp

tcp6 0 0 :::80 :::* LISTEN 3878/httpd #已監聽

[root@axinlinux-01 ~]# systemctl enable httpd #httpd加入到啓動列表裏面去

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@axinlinux-01 ~]# systemctl enable zabbix-server #zabbix-server加入到啓動列表裏面去

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.

[root@axinlinux-01 ~]# systemctl disable nginx #不要忘記把nginx停掉

nginx.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig nginx off #不太對

[root@axinlinux-01 ~]# chkconfig nginx off #這樣將他停掉

[root@axinlinux-01 ~]# ps aux |grep zabbix #看一下zabbix是否啓動。已啓動

[root@axinlinux-01 ~]# netstat -lntp #看一下zabbix是否監聽端口,並無監聽端口

進程還在,可是並無監聽端口,要排查一下。能夠先看一下他的日誌

[root@axinlinux-01 ~]# less /var/log/zabbix/zabbix_server.log #日誌在這個路徑下

3829:20180910:153640.897 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) #不能鏈接mysql。要修改配置文件

[root@axinlinux-01 ~]# vim /etc/zabbix/zabbix_server.conf #修改配置文件

# DBHost=localhost #這一行下面定義IP。固然也能夠寫localhost

DBHost=127.0.0.1

### Option: DBName

# Database name.

# For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.

#

# Mandatory: yes

# Default:

# DBName=

 

DBName=zabbix #還要檢查DBName是否是zabbix

 

### Option: DBSchema

# Schema name. Used for IBM DB2 and PostgreSQL.

#

# Mandatory: no

# Default:

# DBSchema=

 

### Option: DBUser

# Database user. Ignored for SQLite.

#

# Mandatory: no

# Default:

# DBUser=

 

DBUser=zabbix #檢查是否是zabix

DBPassword=aming-zabbix #設置DBPassword密碼

[root@axinlinux-01 ~]# systemctl restart zabbix-server.service #修改完配置文件,在重啓一下服務

[root@axinlinux-01 ~]# ps aux |grep zabbix #檢查是否啓動。正常的話會啓動這麼多的子進程

[root@axinlinux-01 ~]# netstat -lntp #查看監聽的端口。爲10051

tcp6 0 0 :::10051 :::* LISTEN 4586/zabbix_server

!!咱們只是把httpd服務啓動啓動了,沒有作任何的配置。咱們yum安裝zabbix,會默認安裝httpd以及他的配置文件。一切都幫咱們配置好了。若是咱們非要編譯安裝htpd或者使用nginx,那咱們的工做量就會很大。!!

接下來配置web界面。瀏覽器輸入監控中心的監控地址:

以上這一項是讓咱們設置timezone的時區

[root@axinlinux-01 ~]# vim /etc/php.ini #php默認的配置文件。搜索timezone

[Date]

; Defines the default timezone used by the date functions

; http://php.net/date.timezone

date.timezone = Asia/Shanghai #去掉註釋,改成上海時區

[root@axinlinux-01 ~]# systemctl restart httpd

重啓以後,再來刷新界面

所有OK以後,點擊NEXT step

以上,填寫mysql相關的信息。密碼就是咱們之間設置的密碼 aming-zabbix

以上,定義zabbix-server服務的主機名

以上確認界面

以上,安裝成功

以上登陸zabbix。默認的管理員是admin,密碼是zabbix

進去以後首先修改密碼:

 

以上,重現刷新爲中文。密碼也已生效

 

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

 

19.5 忘記Admin密碼如何作:

 

 

跟重置mysql的root密碼殊途同歸,直接更改數據庫的數據就能夠了

~1.進入mysql命令行,選擇zabbix庫

~2.mysql -uroot -p zabbix

~3.update users set passwd=md5(‘newpasswd’) where alias=‘Admin’;

~4.這樣就更改了Admin用戶的密碼

 

 

實例:

[root@axinlinux-01 ~]# mysql -uroot -pwangxin789

MySQL [zabbix]> show tables;

+----------------------------+

| Tables_in_zabbix |

+----------------------------+

..........

127 rows in set (0.00 sec)

這裏面有不少zabbix的表。之後監控的主機不少的話,這些表會愈來愈大。因此要去指定合適的監控的規則。好比個人數據量要保持多長時間,那麼在定義監控項目的時候,就要想到了。好比保留一個月或保留了一年。若是監控的服務量很大的話,一天可能就要漲幾個G。那麼服務器磁盤是否支持,這些都要想到

MySQL [zabbix]> desc users; #密碼存放於users表裏面

+----------------+---------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------------+---------------------+------+-----+---------+-------+

| userid | bigint(20) unsigned | NO | PRI | NULL | |

| alias | varchar(100) | NO | UNI | | |

| name | varchar(100) | NO | | | |

| surname | varchar(100) | NO | | | |

| passwd | char(32) | NO | | | | #咱們改的就是這個

| url | varchar(255) | NO | | | |

| autologin | int(11) | NO | | 0 | |

| autologout | int(11) | NO | | 900 | |

| lang | varchar(5) | NO | | en_GB | |

| refresh | int(11) | NO | | 30 | |

| type | int(11) | NO | | 1 | |

| theme | varchar(128) | NO | | default | |

| attempt_failed | int(11) | NO | | 0 | |

| attempt_ip | varchar(39) | NO | | | |

| attempt_clock | int(11) | NO | | 0 | |

| rows_per_page | int(11) | NO | | 50 | |

+----------------+---------------------+------+-----+---------+-------+

16 rows in set (0.00 sec)

MySQL [zabbix]> update users set passwd=md5('wangxin6789') where alias='Admin';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

咱們將密碼更改成wangxin6789,登陸瀏覽器,就可使用了

相關文章
相關標籤/搜索