Linux監控平臺 zabbix介紹和安裝

12月24日任務php

19.1 Linux監控平臺介紹mysql

19.2 zabbix監控介紹linux

19.3/19.4/19.6 安裝zabbixios

19.5 忘記Admin密碼如何作nginx

 

Linux監控平臺介紹

監控對於一個企業而言是很是重要的,尤爲對一些比較重要的業務,監控能夠在問題出現之初就被發現,可以及時修復,較少損失。c++

建立的開源監控軟件有:cacti、nagios、zabbix、smokeping、open-falcon等。web

cacti、smokeping偏向於基礎監控,圖形化顯示很是漂亮。sql

cacti、zabbix支持web界面進行管理、控制,zabbix在這方面作得很好,配置簡單;相對而言nagios須要修改配置文件等,步驟繁瑣。cacti、nagios、zabbix服務端監控中心,須要php環境支持,其中zabbix和cacti都須要mysql做爲數據存儲,nagios不用存儲歷史數據,注意服務或者監控項的狀態,zabbix會時刻獲取服務或者監控項目的數據,並將數據記錄到數據庫裏,從而能夠出圖。數據庫

open-falcon是小米公司開發的,開源後受到諸多大公司和運維工程師的追捧,適合大公司,國內的不少大公司如滴滴、360、新浪微博、京東等大公司都在使用這款軟件,值得研究。vim


zabbix監控介紹

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

單server節點能夠支持上萬臺客戶端,併發高,其瓶頸在於數據採集的量,當服務器的規模達到必定程度後,就須要添加一些代理。

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

zabbix包括5個組件:

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

  • web UI 在web界面下操做配置,這也是zabbix簡單易用的主要緣由。

  • zabbix-proxy 可選組件,能夠代替zabbix-server的功能,減輕server的壓力。

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

監控流程以下:

zabbix monitor process


安裝zabbix

能夠使用yum安裝zabbix,epel倉庫的zabbix較老,這裏推薦使用新版本所對應的yum倉庫來安裝新版本。到http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/目錄下找到zabbix-release-3.2-1.el7.noarch.rpm包,使用rpm命令安裝便可。(能夠根據須要安裝版本,上述的地址和包只要修改版本號便可)

服務器端

  • 下載倉庫並安裝
# 服務器和客戶端都須要安裝zabbix-release包
[root@server ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@server ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
  • zabbix安裝
#服務器(會附帶安裝httpd和php,web界面須要)
[root@server ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
  • 安裝、配置並啓動mysql
# 若是你的服務器內已經有了mysql就不要再次安裝了
[root@server ~]# yum install -y mysql

[root@server ~]# vi /etc/my.cnf
# 不設置的話,後續web界面設置爲中文將會出現顯示錯誤。
character_set_server = utf8 

[root@server ~]# systemctl start mysql
  • 建立zabbix庫
# 建立zabbix庫
mysql> create database zabbix character set utf8;
# 授予權限
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
  • 導入zabbix的原始數據
# 默認的原始數據在/usr/share/doc/zabbix-server-mysql-你的版本/
[root@server ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@server zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 
[root@server zabbix-server-mysql-3.2.11]# mysql -uroot -p1 zabbix < create.sql 
# create.sql內的數據較多,導入過程須要一點時間
  • 啓動服務
[root@server ~]# systemctl start zabbix-server
# 啓動httpd的時候須要注意一下,若是服務器內安裝並啓動了nginx服務器,須要關閉nginx,不然80端口被佔用,致使httpd啓動不了。
[root@server ~]# systemctl start httpd

客戶端

  • 下載倉庫並安裝
[root@client ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@client ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
  • 安裝zabbix-agent
[root@client ~]# yum install -y zabbix-agent
  • 修改配置文件
# 這裏最關鍵的就是設置白名單
# 白名單的意義在於限定鏈接的服務器端,防止客戶端信息泄露

[root@client ~]# vi /etc/zabbix/zabbix_agentd.conf
# 指定服務器IP
Server=127.0.0.1 改成 Server=192.168.65.133

# 主動模式,主動向服務器端上報信息
ServerActive=127.0.0.1 改成 ServerActive=192.168.65.133

Hostname=Zabbix server 改成 Hostname=client1 //這個名字隨便寫,方便區分

保存退出
  • 啓動zabbix-agent
[root@client ~]# systemctl start zabbix-agent

zabbix-server的端口號默認爲10051,zabbix-agent的默認端口號爲10050

zabbix啓動不正常的解決

  1. zabbix服務啓動但端口(10051)未正常檢測

查看日誌,發現mysql沒法鏈接

[root@test1 ~]# tail /var/log/zabbix/zabbix_server.log
  2978:20180120:154842.481 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
...

編輯配置文件

[root@server ~]# vim /etc/zabbix/zabbix_server.conf
# mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
DBHost=127.0.0.1  //對應zabbix數據庫和用戶建立時的ip
DBPassword=zabbix //對應zabbix數據庫和用戶建立時的密碼

# 實際生產環境下,爲了服務器的性能優化,mysql可能會裝在其餘服務器上,這時上述Host修改成實際mysql服務器的ip便可。

重啓zabbix服務

[root@server ~]# systemctl restart zabbix-server

查看是否正常啓動

[root@server ~]# 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      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1840/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2107/master         
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      3012/zabbix_server  
tcp6       0      0 :::3306                 :::*                    LISTEN      2064/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      2986/httpd          
tcp6       0      0 :::22                   :::*                    LISTEN      1840/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2107/master         
tcp6       0      0 :::10051                :::*                    LISTEN      3012/zabbix_server  

[root@server ~]# ps aux |grep zabbix
zabbix     3012  0.6  0.4 256256  4116 ?        S    15:53   0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix     3015  0.0  0.2 256256  2464 ?        S    15:53   0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]
zabbix     3016  0.0  0.2 256256  2672 ?        S    15:53   0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.021593 sec, idle 60 sec]
zabbix     3017  0.6  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix     3018  0.6  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000008 sec, idle 5 sec]
zabbix     3019  0.4  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix     3020  0.4  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000012 sec, idle 5 sec]
zabbix     3021  0.4  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000017 sec, idle 5 sec]
zabbix     3022  0.4  0.5 363200  5188 ?        S    15:53   0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000013 sec, idle 5 sec]
zabbix     3023  0.0  0.3 256256  3576 ?        S    15:53   0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix     3024  0.0  0.3 256256  3576 ?        S    15:53   0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix     3025  0.0  0.3 256256  3576 ?        S    15:53   0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix     3027  0.0  0.3 256256  3576 ?        S    15:53   0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix     3028  0.0  0.3 256256  3576 ?        S    15:53   0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix     3029  0.1  0.2 258832  2604 ?        S    15:53   0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000008 sec, idle 5 sec]
zabbix     3032  0.0  0.2 256256  2680 ?        S    15:53   0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.009433 sec, idle 30 sec]
zabbix     3033  0.0  0.2 256256  2460 ?        S    15:53   0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
zabbix     3034  0.0  0.2 256332  2908 ?        S    15:53   0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000154 sec, 0 maintenances in 0.002947 sec, idle 30 sec]
zabbix     3035  0.0  0.2 256256  2820 ?        S    15:53   0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000652 sec, idle 5 sec]
zabbix     3039  0.4  0.5 360616  5024 ?        S    15:53   0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.049212 sec, idle 60 sec]
zabbix     3040  0.0  0.2 256256  2804 ?        S    15:53   0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000007 sec, idle 1 sec]
zabbix     3041  0.0  0.2 256256  2804 ?        S    15:53   0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix     3042  0.0  0.2 256256  2804 ?        S    15:53   0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000002 sec, idle 1 sec]
zabbix     3043  0.0  0.2 256256  2804 ?        S    15:53   0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix     3048  0.0  0.3 256256  3760 ?        S    15:53   0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001462 sec, idle 3 sec]
zabbix     3049  0.0  0.3 256256  3756 ?        S    15:53   0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000005 sec, idle 5 sec]
zabbix     3050  0.0  0.2 256256  2572 ?        S    15:53   0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000008 sec, idle 1 sec]
zabbix     3051  0.0  0.2 256256  2792 ?        S    15:53   0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000485 sec, idle 5 sec]
root       3064  0.0  0.0 112684   972 pts/0    S+   15:54   0:00 grep --color=auto zabbix
  1. zabbix-agent啓動失敗
[root@client ~]# systemctl start zabbix-agent
Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.

[root@client ~]# systemctl status zabbix-agent.service
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: resources) since 二 ... 14:54:58 CST; 9s ago
  Process: 3413 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)

... 14:54:58 client systemd[1]: zabbix-agent.service neve...
... 14:54:58 client systemd[1]: Failed to start Zabbix Ag...
... 14:54:58 client systemd[1]: Unit zabbix-agent.service...
... 14:54:58 client systemd[1]: zabbix-agent.service failed.

解決方法:關閉selinux

[root@client ~]# setenforce 0
[root@client ~]# systemctl restart zabbix-agent
[root@client ~]# ps aux | grep zabbix-agent
root       3447  0.0  0.0 112680   980 pts/0    R+   14:55   0:00 grep --color=auto zabbix-agent
[root@client ~]# ps aux | grep zabbix
zabbix     3440  0.0  0.1  80608  1252 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix     3441  0.0  0.1  80608  1288 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     3442  0.0  0.1  80608  1832 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     3443  0.0  0.1  80608  1836 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     3444  0.0  0.1  80608  1832 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     3445  0.0  0.2  80736  2188 ?        S    14:55   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root       3449  0.0  0.0 112680   972 pts/0    R+   14:55   0:00 grep --color=auto zabbix
[root@client ~]# 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      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1321/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2145/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3440/zabbix_agentd  
tcp6       0      0 :::3306                 :::*                    LISTEN      2104/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1321/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2145/master         
tcp6       0      0 :::10050                :::*                    LISTEN      3440/zabbix_agentd

zabbix web 初始化配置

  1. 打開瀏覽器,輸入Server_IP/zabbix,回車,就會看到zabbix的配置頁面。

zabbix conf web

  1. 安裝前參數檢驗

zabbix_pre-requisites

修改php的配置的文件

[root@server ~]# vim /etc/php.ini 
定位到timezone
timezone = Asia/Shanghai

# 修改後重啓httpd服務
[root@server ~]# systemctl restart httpd

刷新頁面後查看

zabbix_pre-requisites_after

  1. 配置mysql相關信息

zabbix_mysql

信息彙總

zabbix_conf_summary

  1. 登陸 使用默認的用戶名/密碼進行登陸:Admin/zabbix

zabbix_login

  1. 修改默認管理員密碼

"Administration" --> "User" --> "Admin"

change_adm_passwd_step

  • 爲了配置的方便,咱們能夠先修改語言爲中文

change language

點擊update按鍵,再次修改Adminy用戶信息界面就顯示爲中文了!

  • 修改用戶密碼

點擊修改密碼,將新密碼輸入2次後,點擊更新便可 change_adm_passwd

退出當前用戶,使用新密碼從新登陸,界面以下(當前未配置監控的主機,顯示的數據爲空):

zabbix web


忘記Admin用戶密碼

若是忘記Admin的密碼,直接在mysql中的zabbix數據庫內更新密碼便可。

具體步驟以下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| test1              |
| zabbix             |
+--------------------+
6 rows in set (0.04 sec)

mysql> use zabbix;
mysql> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
          ........
| trigger_discovery          |
| trigger_tag                |
| triggers                   |
| users                      |
| users_groups               |
| usrgrp                     |
| valuemaps                  |
+----------------------------+
127 rows in set (0.01 sec)

mysql> desc 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)

# 這裏修改的是users表,修改密碼使用MD5加密,指定alaias爲Admin
mysql> update users set passwd=md5('zabbix') where alias='Admin';

從新登陸網頁,使用新密碼登陸便可。

相關文章
相關標籤/搜索