12月24日任務php
19.1 Linux監控平臺介紹mysql
19.2 zabbix監控介紹linux
19.3/19.4/19.6 安裝zabbixios
19.5 忘記Admin密碼如何作nginx
監控對於一個企業而言是很是重要的,尤爲對一些比較重要的業務,監控能夠在問題出現之初就被發現,可以及時修復,較少損失。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
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 客戶端軟件,負責採集各個監控服務或項目的數據,並上報。
監控流程以下:
能夠使用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
#服務器(會附帶安裝httpd和php,web界面須要) [root@server ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-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庫 mysql> create database zabbix character set utf8; # 授予權限 mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '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
[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 //這個名字隨便寫,方便區分 保存退出
[root@client ~]# systemctl start zabbix-agent
zabbix-server的端口號默認爲10051,zabbix-agent的默認端口號爲10050
查看日誌,發現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
[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
Server_IP/zabbix
,回車,就會看到zabbix的配置頁面。修改php的配置的文件
[root@server ~]# vim /etc/php.ini 定位到timezone timezone = Asia/Shanghai # 修改後重啓httpd服務 [root@server ~]# systemctl restart httpd
刷新頁面後查看
信息彙總
"Administration" --> "User" --> "Admin"
點擊update按鍵,再次修改Adminy用戶信息界面就顯示爲中文了!
點擊修改密碼,將新密碼輸入2次後,點擊更新便可
退出當前用戶,使用新密碼從新登陸,界面以下(當前未配置監控的主機,顯示的數據爲空):
若是忘記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';
從新登陸網頁,使用新密碼登陸便可。