Error 1045 28000 access denied for user zabbix localhost using password yes zabbix

Stuck with the Zabbix error connecting to database access denied for user? Our skilled Support Engineers have a solution. Click to read.

Zabbix error connecting to database access denied for user will no longer be a problem with Bobcares by your side.

At Bobcares, we offer solutions for every query, big and small, as a part of our Server Management Service.

Let’s take a look at how our Support Team recently helped a customer who had trouble with connecting to the database.

Zabbix error: Connecting to database access denied for user

Are you facing an Access denied for user ‘root’ @ ‘localhost’ error while attempting to connect to the database? Our Support Engineers have come up with a workaround solution for this particular issue.

Zabbix is a monitoring software tool for various IT components like networks, virtual machines, servers as well as cloud services. Additionally, it offers monitoring metrics like network utilization, disk space consumption, CPU load, and so on. It is a popular open-source software monitoring tool all over the world.

Before we dive into the solution, we need to check the zabbix_server.conf file, user name, password, and database to ensure everything is in order. We will also be able to get a glimpse of the following line in the error log:

[Z3001] connection to database 'zabbixdb' failed: [1045] Access denied for user 'zabbixuser'@'centos62' (using password: YES)
  1. First, we will set user rights with the following command:
    GRANT ALL PRIVILEGES ON * * TO zabbixuser @ "%" IDENTIFIED BY "xxx"; 
    FLUSH PRIVILEGES;
  2. Next, we have to modify the Zabbix configuration file. We can find it at vim/etc/zabbix/web/zabbix.conf.php. The following changes have to be made:
    $ DB [ 'DATABASE'] = 'zabbixdb'; 
    $ DB [ 'USER'] = 'zabbixuser'; 
    $ DB [ 'PASSWORD'] = 'xxx';
  3. After that, we have to restart the service by executing this command:
    service zabbix-server restart
  4. Finally, we will be able to access http://xxx.xxx.xxx.xxx/zabbix/login by entering the username and password.

[Need help with another query? We are available 24/7.]

Conclusion

In brief, the skilled Support Engineers at Bobcares demonstrated how to resolve the Zabbix error: database access denied for user.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

Note: For MySQL 5.7+, please see the answer from Lahiru to this question. That contains more current information.

For MySQL < 5.7:

The default root password is blank (i.e., an empty string), not root. So you can just log in as:

mysql -u root

You should obviously change your root password after installation:

mysqladmin -u root password [newpassword]

In most cases you should also set up individual user accounts before working extensively with the database as well.

Peter Mortensen's user avatar

answered Feb 21, 2014 at 20:54

Mike Brant's user avatar

Mike BrantMike Brant

69.9k10 gold badges97 silver badges103 bronze badges

15

I was able to solve this problem by executing this statement

sudo dpkg-reconfigure mysql-server-5.5

Which will change the root password.

Peter Mortensen's user avatar

answered Mar 18, 2014 at 3:37

Divz's user avatar

8

I was recently faced with the same problem, but in my case, I remember my password quite alright, but it kept on giving me the same error. I tried so many solutions, but still none helped. Then I tried this:

mysql -u root -p

After which it asks you for a password like this

Enter password:

And then I typed in the password I used. That’s all.

Peter Mortensen's user avatar

answered Mar 21, 2018 at 22:22

XY-JOE's user avatar

XY-JOEXY-JOE

1,3641 gold badge10 silver badges8 bronze badges

3

You have to reset the password! Steps for Mac OS X (tested and working) and Ubuntu:

Stop MySQL using

sudo service mysql stop

or

sudo /usr/local/mysql/support-files/mysql.server stop

Start it in safe mode:

sudo mysqld_safe --skip-grant-tables --skip-networking

(the above line is the whole command)

This will be an ongoing command until the process is finished, so open another shell/terminal window, log in without a password:

mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

As per @IberoMedia’s comment, for newer versions of MySQL, the field is called authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

Start MySQL using:

sudo service mysql start

or

sudo /usr/local/mysql/support-files/mysql.server start

Your new password is ‘password’.

Note: for version of MySQL > 5.7 try this:

update mysql.user set authentication_string='password' where user='root';

Peter Mortensen's user avatar

answered Sep 17, 2014 at 6:44

tk_'s user avatar

tk_tk_

15.8k8 gold badges80 silver badges89 bronze badges

12

It happens when your password is missing.

Steps to change the password when you have forgotten it:

  1. Stop MySQL Server (on Linux):

    sudo systemctl stop mysql
    
  2. Start the database without loading the grant tables or enabling networking:

    sudo mysqld_safe --skip-grant-tables --skip-networking &
    

    The ampersand at the end of this command will make this process run in the background, so you can continue to use your terminal and run mysql -u root (as root). It will not ask for a password.

    If you get error like as below:

    2018-02-12T08:57:39.826071Z mysqld_safe Directory '/var/run/mysqld' for UNIX
    socket file don't exists.
    mysql -u root
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket
    '/var/run/mysqld/mysqld.sock' (2)
    [1]+  Exit 1
    
  3. Make MySQL service directory.

    sudo mkdir /var/run/mysqld
    

    Give MySQL user permission to write to the service directory.

    sudo chown mysql: /var/run/mysqld
    
  4. Run the same command in step 2 to run MySQL in background.

  5. Run mysql -u root. You will get the MySQL console without entering a password.

    Run these commands

    FLUSH PRIVILEGES;
    

    For MySQL 5.7.6 and newer

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    For MySQL 5.7.5 and older

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    

    If the ALTER USER command doesn’t work use:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';
    

    Now exit

  6. To stop the instance started manually:

    sudo kill `cat /var/run/mysqld/mysqld.pid`
    
  7. Restart MySQL

    sudo systemctl start mysql
    

Peter Mortensen's user avatar

answered Feb 12, 2018 at 14:25

Sameer Kumar Choudhary's user avatar

4

At the initial start up of the server the following happens, given that the data directory of the server is empty:

  • The server is initialized.
  • SSL certificate and key files are generated in the data directory.
  • The validate_password plugin is installed and enabled.
  • The superuser account ‘root’@’localhost’ is created. The password for the superuser is set and stored in the error log file.

To reveal it, use the following command:

shell> sudo grep 'temporary password' /var/log/mysqld.log

Change the root password as soon as possible by logging in with the generated temporary password and set a custom password for the superuser account:

shell> mysql -u root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

answered Mar 23, 2017 at 5:17

Lahiru's user avatar

LahiruLahiru

1,33810 silver badges17 bronze badges

8

If the problem still exists, try to force changing the password:

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Set up a new MySQL root user password:

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Stop the MySQL server:

/etc/init.d/mysql stop

Start the MySQL server and test it:

mysql -u root -p

Peter Mortensen's user avatar

answered May 20, 2014 at 13:34

Yasin Hassanien's user avatar

Yasin HassanienYasin Hassanien

4,0051 gold badge20 silver badges16 bronze badges

6

If none of the other answers work for you, and you received this error:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

Follow the below commands step by step until you reset your password:

# Stop your server first
sudo service mysql stop

# Make the MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

# If you omit (AND Host='localhost') section, it updates
# the root password regardless of its host

FLUSH PRIVILEGES;
EXIT;

# Kill the mysqld_safe process
sudo service mysql restart

# Now you can use your new password to log in to your server
mysql -u root -p

# Take note for remote access. You should create a remote
# user and then grant all privileges to that remote user

Peter Mortensen's user avatar

answered Apr 16, 2019 at 11:39

Mehdi's user avatar

MehdiMehdi

3,7323 gold badges35 silver badges65 bronze badges

1

I came across this very annoying problem and found many answers that did not work. The best solution I came across was to completely uninstall MySQL and reinstall it. On reinstall you set a root password and this fixed the problem.

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

I found this code elsewhere, so I don’t take any credit for it. But it works. To install MySQL after uninstalling it, I think DigitalOcean has a good tutorial on it. Checkout my gist for this.

How to install MySQL on Ubuntu (which works)

Peter Mortensen's user avatar

answered Feb 9, 2017 at 21:05

JamesD's user avatar

JamesDJamesD

5815 silver badges10 bronze badges

0

I am using Ubuntu 16.04 (Xenial Xerus) and installed MySQL 5.7.

I had the same issue

Login denied for root user.

I tried the below steps:

  1. dpkg --get-selections | grep mysql (to get the version of MySQL).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

Without -p that doesn’t prompt you to ask password. Once you are in, you can create a user with a password by following steps:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Exit from the root and log in from the <name> you gave above.

mysql -u <your_new_username> -p

For some reason still just typing MySQL does not work. At all. I suggest to make it a habit to use mysql -u <name> -p.

Peter Mortensen's user avatar

answered Jun 21, 2017 at 15:21

Nikhil Rushmith's user avatar

1

In the terminal, just enter:

mysql -u root -p

Then it will ask the password from you.

Peter Mortensen's user avatar

answered Jul 8, 2019 at 21:24

Vahap Gencdal's user avatar

I installed MySQL as root user ($SUDO) and got this same issue

Here is how I fixed it:

  1. sudo cat /etc/mysql/debian.cnf

    This will show details as:

    # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

    Above we can see the password. But we are just going to use(GUx0RblkD3sPhHL5) that in the prompt.

  2. `mysql -u debian-sys-maint -p

    Enter password: `

    Now provide the password (GUx0RblkD3sPhHL5).

  3. Now exit from MySQL and log in again as:

    `mysql -u root -p

    Enter password: `

Now provide the new password. That’s all. We have a new password for further uses.

It worked for me.

Peter Mortensen's user avatar

answered Sep 17, 2019 at 12:30

S.Yadav's user avatar

S.YadavS.Yadav

4,0353 gold badges35 silver badges42 bronze badges

For those for whom the current answers didn’t work can try this (tested on macOS):

mysql -h localhost -u root -p --protocol=TCP

After this, a password will be asked from you and you should use your OS user password. Then when you get into MySQL you can run:

select Host, User from mysql.user;

And you should see:

MySQL [(none)]> select Host, User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

And from here you can change the configurations and edit the password or modify the grants.

Peter Mortensen's user avatar

answered Nov 25, 2020 at 19:29

Eric's user avatar

EricEric

4406 silver badges15 bronze badges

1

Please read the official documentation: MySQL: How to Reset the Root Password

If you have access to a terminal:

MySQL 5.7.6 and later:

mysql

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 and earlier:

mysql

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Peter Mortensen's user avatar

answered Aug 10, 2015 at 10:05

d.danailov's user avatar

d.danailovd.danailov

9,4364 gold badges50 silver badges36 bronze badges

2

I am using mysql-5.7.12-osx10.11-x86_64.dmg on Mac OS X.

The installation process automatically sets up a temporary password for the root user. You should save the password. The password can not be recovered.

Follow the instructions:

  1. Go to cd /usr/local/mysql/bin/
  2. Enter the temporary password (which would look something like, «tsO07JF1=>3»)
  3. You should get the mysql> prompt.
  4. Run, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}'); If you wish to set your password: «root» then the command would be, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Run ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Run exit
  7. Run ./mysql -u root -p
  8. Type your password. In my case I would type, «root» (without quote)
  9. That’s all.

For convenience, you should add "/usr/local/mysql/bin" to your PATH environment variable.

Now from anywhere you can type ./mysql -u root -p and then type the password and you will get the mysql> prompt.

Peter Mortensen's user avatar

answered May 30, 2016 at 11:14

tausiq's user avatar

tausiqtausiq

9271 gold badge13 silver badges23 bronze badges

The answer may sound silly, but after wasting hours of time, this is how I got it to work:

mysql -u root -p

I got the error message

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

Even though I was typing the correct password (the temporary password you get when you first install MySQL).

I got it right when I typed in the password when the password prompt was blinking.

Peter Mortensen's user avatar

answered Dec 6, 2017 at 3:31

Amit Kumar's user avatar

Amit KumarAmit Kumar

7342 gold badges9 silver badges16 bronze badges

1

If you have MySQL as part of a Docker image (say on port 6606) and an Ubuntu install (on port 3306) specifying the port is not enough:

mysql -u root -p -P 6606

will throw:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

as it’s trying to connect to localhost by default, specifying your local IP address fixes the issue:

mysql -u root -p -P 6606 -h 127.0.0.1

Peter Mortensen's user avatar

answered Nov 19, 2019 at 11:36

botris's user avatar

botrisbotris

1612 silver badges2 bronze badges

Year 2021.

Answer for Ubuntu 20.04 (Focal Fossa) (maybe other distributions as well).

After days of wandering around… and having none of those answers working for me, I did this and it worked!

Always in a Bash shell:

sudo systemctl disable mysql

In order to stop the daemon from starting on boot.

sudo apt purge mysql-server

and

sudo apt purge mysql-community-server*

There, it warns you you’ll erase configuration files… so it’s working! Because those are the ones making trouble!

sudo autoremove

To delete all the left behind packages.

Then (maybe it’s optional, but I did it) reboot.
Also, I downloaded mysql-server-8.0 from the official MySQL webpage:

sudo apt install mysql-server

A signal that it’s working is that when you enter the command above, the system asks you to enter the root password.

Finally:

mysql -u root -p

And the password you entered before.

Peter Mortensen's user avatar

answered Jul 26, 2021 at 3:48

DiegoMMF's user avatar

DiegoMMFDiegoMMF

1091 silver badge3 bronze badges

If the problem still exists, try to force changing the password.

Stop MySQL Server (on Linux):

/etc/init.d/mysql stop

Stop MySQL Server (on Mac OS X):

mysql.server stop

Start the mysqld_safe daemon with —skip-grant-tables:

mysqld_safe --skip-grant-tables &
mysql -u root

Set up a new MySQL root user password:

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Stop MySQL Server (on Linux):

/etc/init.d/mysql stop

Stop MySQL Server (on Mac OS X):

mysql.server stop

Start the MySQL server service and test to log in by root:

mysql -u root -p

Peter Mortensen's user avatar

answered Jul 26, 2017 at 2:19

Max Yao's user avatar

Max YaoMax Yao

7116 silver badges7 bronze badges

I also came across the same problem. I did:

  1. Open your cmd

  2. Navigate to C:Program FilesMySQLMySQL Server 8.0bin>
    (where MySQL Server 8.0 may be different depending on the server you installed)

  3. Then put the following command mysql -u root -p

  4. It will prompt for the password… simply hit Enter, as sometimes the password you entered while installing is changed by to blank.

Now you can simply access the database.

This solution worked for me on the Windows platform.

Peter Mortensen's user avatar

answered Nov 8, 2019 at 17:08

Aman-D's user avatar

By default, the password will be null, so you have to change the password by doing the below steps.

Connect to MySQL

root# mysql

Use mysql

mysql> update user set password=PASSWORD('root') where User='root';

Finally, reload the privileges:

mysql> flush privileges;
mysql> quit

Just one line and it solved my issue.

sudo dpkg-reconfigure mysql-server-5.5

Peter Mortensen's user avatar

answered May 11, 2016 at 21:51

Satyendra Sahani's user avatar

In Ubuntu 16.04 (Xenial Xerus) and MySQL version 5.7.13, I was able to resolve the problem with the steps below:

  1. Follow the instructions from section B.5.3.2.2 Resetting the Root Password: Unix and Unix-Like Systems
    MySQL 5.7 reference manual

  2. When I tried #sudo mysqld_safe --init-file=/home/me/mysql-init & it failed. The error was in /var/log/mysql/error.log:

    2016-08-10T11:41:20.421946Z 0 [Note] Execution of init_file '/home/me/mysql/mysql-init' started.
    2016-08-10T11:41:20.422070Z 0 [ERROR] /usr/sbin/mysqld: File '/home/me/mysql/mysql-init' not found (Errcode: 13 - Permission denied)
    2016-08-10T11:41:20.422096Z 0 [ERROR] Aborting
    

The file permission of mysql-init was not the problem. We need to edit AppArmor permissions.

  1. Edit by sudo vi /etc/apparmor.d/usr.sbin.mysqld

     ....
       /var/log/mysql/ r,
       /var/log/mysql/** rw,
    
    
     # Allow user init file
       /home/pranab/mysql/* r,
    
       # Site-specific additions and overrides. See local/README for details.
       #include <local/usr.sbin.mysqld>
     }
    
  2. Do sudo /etc/init.d/apparmor reload

  3. Start mysqld_safe again. Try step 2 above. Check file /var/log/mysql/error.log. Make sure there is no error and the mysqld is successfully started.

  4. Run mysql -u root -p

    Enter password:

    Enter the password that you specified in mysql-init. You should be able to log in as root now.

  5. Shutdown mysqld_safe by sudo mysqladmin -u root -p shutdown

  6. Start mysqld the normal way by sudo systemctl start mysql

Peter Mortensen's user avatar

answered Aug 10, 2016 at 13:37

codegen's user avatar

codegencodegen

791 silver badge2 bronze badges

While the top answer (with mysqladmin) worked on macOS v10.15 (Catalina), it did not work on Ubuntu. Then I tried many of the other options, including a safe start for MySQL, but none worked.

Here is one that does:

At least for the version I got 5.7.28-0ubuntu0.18.04.4 answers were lacking IDENTIFIED WITH mysql_native_password. 5.7.28 is the default on the current LTS and thus should be the default for most new new systems (till Ubuntu 20.04 (Focal Fossa) LTS comes out).

I found Can’t set root password MySQL Server and now applied

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

which does work.

Peter Mortensen's user avatar

answered Dec 9, 2019 at 10:43

arntg's user avatar

arntgarntg

1,49714 silver badges12 bronze badges

The error that I faced was:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

It was a problem with the port running on.

By default, MySQL is running on port 3306.

You can check that on by running

  • in a 32-bit system:

    sudo /opt/lampp/manager-linux.run

  • in a 64-bit system:

    sudo /opt/lampp/manager-linux-x64.run

and click on the Configure button.

XAMPP control panel

In my case the port was running on 3307, and I used the command

mysql -u root -p -P 3307 -h 127.0.0.1

Peter Mortensen's user avatar

answered Mar 12, 2020 at 16:20

RochaaP's user avatar

RochaaPRochaaP

3056 silver badges14 bronze badges

Copied from this link, I had the same problem and this solved the problem. After we add a password for the database, we need to add -p (password-based login), and then enter the password. Otherwise, it will return this error:

mysql -u root -p

Peter Mortensen's user avatar

answered Nov 5, 2020 at 8:07

Mahmoud Magdy's user avatar

Because your error message says «PASSWORD: YES» this means you are are using the wrong password. This happened to me also. Luckily I remembered my correct password, and was able to make the DB connection work.

answered May 31, 2022 at 22:17

Haris Beg's user avatar

In recent MySQL versions there isn’t any password in the mysql.user table.

So you need to execute ALTER USER. Put this one line command into the file.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

And execute it as an init file (as the root or mysql user):

mysqld_safe --init-file=/home/me/mysql-init &

MySQL server need to be stopped to start mysqld_safe.

Also, there may be a problem with AppArmor permissions to load this init file. Read more in AppArmor and MySQL.

Peter Mortensen's user avatar

answered Jun 9, 2016 at 15:06

Vladimir Kovalchuk's user avatar

If you haven’t set password yet, then run mysql -uroot. It works for me.

Peter Mortensen's user avatar

answered Aug 16, 2018 at 11:10

ah bon's user avatar

ah bonah bon

8,9159 gold badges56 silver badges125 bronze badges

On Mac, if you have a problem in logging in with the first password you were given in installation, maybe you can just simply kill the MySQL process and then try.

So:

  1. run the following command to find the PID of MySQL:

    ps -aef | grep mysql | grep -v grep
    
  2. kill the process:

    kill -15 [process id]
    

Then you can log in with the initial password using this command:

mysql -uroot -p

Which asks you to enter your password. Just enter the initial password.

Peter Mortensen's user avatar

answered Jan 19, 2019 at 9:22

Maryam Zakani's user avatar

I am trying to install Zabbix Server on Ubuntu 20.04.

I enter this command:

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p Passw0rd 

But receive this error:

ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)

How to find if my password is correct?

matigo's user avatar

matigo

17.8k6 gold badges35 silver badges61 bronze badges

asked Apr 1, 2022 at 7:33

Kamal bernard's user avatar

When you create a MySQL account, the hostname is important. Many people will use something like 'zabbix'@'%', but this should be used only if the MySQL database is on a different physical server from the web application. For a local connection, you’ll want to use 'zabbix'@'localhost'. Of course, there’s no reason why you cannot use both.

Here’s how:

  1. Connect to MySQL Server as an administrator (or as root). If doing this from Terminal, you can type:
    sudo mysql 
    
  2. Once connected to MySQL, create the user account:
    CREATE USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
    

    Note: Be sure to replace superSecretPassword!123 with a proper password. You can reuse the same password as was used for ‘zabbix’@’%’ if you would like.

  3. Ensure the new account has all the permissions necessary to work with the necessary database(s):
    GRANT ALL ON `zabbix`.* TO 'zabbix'@'localhost';
    
  4. Disconnect from MySQL:
    exit 
    

That’s all there is to it 👍🏻

answered Apr 1, 2022 at 7:40

matigo's user avatar

matigomatigo

17.8k6 gold badges35 silver badges61 bronze badges

2


1

1

Озадачился тут установкой zabbix и застрял на этапе создания БД.

Делаю всё по оф. мануалу: https://www.zabbix.com/documentation/4.0/ru/manual/installation/install_from_…

установил сам zabbix командой apt install zabbix-server-mysql, установил веб-интерфейс командой apt install zabbix-frontend-php
Далее перехожу к этапу «создание БД» и вот тут затык. Мануал пишет следующее:

База данных Zabbix должна быть создана в процессе установки Zabbix сервера или прокси.

MySQL

shell> mysql -uroot -p<пароль>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<пароль>';
mysql> quit;

Тут я не совсем понимаю, что есть shell, при копипасте всей команды в терминал выдается ошибка, что такой команды нет. Если пишу mysql -uroot -p<пароль>, то терминал выдает ошибку

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

Что я делаю не так и как мне установить zabbix?

Zabbix — это система мониторинга серверов и других компонентов сети. О ней мы подробно рассказали в статье Zabbix: что такое и как использовать. В этой статье мы покажем, как установить Zabbix на ОС Ubuntu и Debian.

Основные отличия установки

Установка системы мониторинга на Ubuntu и на Debian отличается только первыми двумя шагами. Остальные шаги инструкции полностью совпадают. Подобрать команды для этих шагов можно на официальном сайте. Для этого выберите конфигурацию вашего сервера, и утилита подберёт нужные команды для установки.

Например, установка Zabbix версии 5.4 на сервер с Ubuntu 20.04 (с базой данных MySQL и веб-сервером Nginx) будет выглядеть так:

Утилита на сайте для установки Zabbix

Используйте подобранные команды в первых 2-х шагах инструкции по установке ниже.

Как установить Zabbix на Ubuntu и Debian

  1. 1.

    Чтобы установить актуальную и стабильную версию Zabbix, воспользуйтесь официальным репозиторием. Скачайте на сервер deb-пакет с нужной версией:

    для Ubuntu:

    wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb

    для Debian:

    wget https://repo.zabbix.com/zabbix/5.5/debian/pool/main/z/zabbix-release/zabbix-release_5.5-1+debian11.tar.gz
  2. 2.

    Установите deb-пакет:

    Ubuntu:

    sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb

    Debian:

    dpkg -i zabbix-release_5.5-1+debian11.tar.gz

    После успешной установки вы увидите следующее:

    Результат успешной установки пакета Zabbix в терминале

  3. 3.

  4. 4.

    Установите сервер Zabbix вместе с пакетами для работы и дальнейшей настройки. С помощью команды ниже также выполняется установка Zabbix агента на Ubuntu:

    для версии 5.4 и выше:

    apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

    для версий 5.0 и 5.2:

    apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

    На ваш сервер установятся:

    • zabbix-server-mysql — сервер Zabbix с поддержкой MySQL,

    • zabbix-frontend-php — веб-интерфейс,

    • zabbix-nginx-conf — пакет автоматической настройки веб-сервера Nginx,

    • zabbix-sql-scripts — скрипты для настройки и импорта данных в базу Zabbix,

    • zabbix-agent — Zabbix агент.

    Установка Zabbix agent на Debian 11 и Ubuntu 20.04 не отличается.

  5. 5.

    Войдите в MySQL под root-пользователем:

    Введите пароль root-пользователя. Если у вас настроен доступ без пароля, введите:

  6. 6.

    Zabbix поддерживает только кодировку UTF-8. Создайте базу данных с поддержкой кодировки UTF-8:

    create database zabbix character set utf8 collate utf8_bin;
  7. 7.

    Создайте пользователя базы данных и задайте пароль:

    create user zabbix@localhost identified by 'zabbix_db_user_password';

    Вместо zabbix_db_user_password введите пароль пользователя для подключения к базе данных.

  8. 8.

    Предоставьте этому пользователю доступ к базе данных Zabbix:

    grant all privileges on zabbix.* to zabbix@localhost;
  9. 9.

  10. 10.

    Импортируйте начальную схему и данные в БД. Команда для импорта зависит от версии системы мониторинга.

    Для версии 5.4 и выше:

    zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix

    Для версии 5.0 и 5.2:

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

    Введите пароль пользователя, который вы указали на 7 шаге. В случае возникновения ошибки ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES) проверьте, что вводите правильный пароль.

  11. 11.

    В конфигурационном файле сервера Zabbix пропишите пароль для доступа к базе данных. Для этого откройте конфигурационный файл при помощи команды:

    sudo nano /etc/zabbix/zabbix_server.conf

    Найдите в файле следующий фрагмент:

    Блок DBPassword в конфигурационном файле Zabbix

    После этих комментариев добавьте строку:

    DBPassword=zabbix_db_user_password

    Вместо zabbix_db_user_password введите пароль для подключения к базе данных.

  12. 12.

    Сохраните изменения сочетанием клавиш CTRL+S. Затем закройте редактор нажав CTRL+X.

  13. 13.

    На 4 шаге вы установили пакет zabbix-nginx-conf для автоматической настройки Nginx, в результате чего был создан файл конфигурации Nginx /etc/zabbix/nginx.conf. Чтобы веб-интерфейс Zabbix стал доступен по доменному имени или IP-адресу вашего сервера, нужно изменить файл nginx.conf. Откройте файл:

    sudo nano /etc/zabbix/nginx.conf

    Раскомментируйте 2 и 3 строки. В этих строках задаётся имя сервера и порт, который будет прослушиваться. Для этого удалите символ решётки в начале каждой строки:

    Конфигурационный файл nginx.conf

    В третьей строке example.com замените на доменное имя или IP-адрес вашего сервера. По этому адресу вы сможете попасть в веб-интерфейс Zabbix. Если вы хотите открывать веб-интерфейс по домену, домен должен быть направлен на сервер при помощи A-записи. Если ваш домен зарегистрирован в REG.RU, добавьте для домена A-запись с IP-адресом вашего сервера по инструкции.

    В результате первые три строки конфигурационного файла будут выглядеть так:

    Конфигурационный файл nginx.conf 2

    Вместо 123.123.123.123 пропишите имя домена или IP-адрес сервера.

  14. 14.

    Сохраните изменения при помощи CTRL+S и затем закройте файл сочетанием клавиш CTRL+X.

  15. 15.

    Проверьте конфигурационный файл на наличие ошибок:

    Если ошибки отсутствуют, на экране вы увидите следующее:

    Успешная проверка конфигурации Nginx

  16. 16.

    Перезапустите службы сервера и агента Zabbix, а также веб-сервера и PHP:

    sudo systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
  17. 17.

    Включите автоматический старт этих служб вместе с загрузкой системы:

    sudo systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
  18. 18.

    Перейдите по тому домену или IP-адресу, который вы указали на 15 шаге. Если Zabbix правильно установлен, вы увидите приветственную страницу:

    Приветственный экран Zabbix

Готово, Zabbix успешно установлен на сервер. Теперь переходите к настройке веб-интерфейса.

Настройка веб-интерфейса Zabbix

В веб-интерфейсе вы сможете настраивать отчёты и следить за работоспособностью серверов. Чтобы настроить веб-интерфейс:

  1. 1.

    Откройте браузер и в адресной строке введите доменное имя или IP-адрес сервера (в зависимости от того, что вы указали на 15 шаге в файле nginx.conf).

  2. 2.

    В последних версиях Zabbix есть поддержка русского языка по умолчанию. Выберите его из выпадающего списка и нажмите Далее:

    Выбор языка на приветственном экране Zabbix

  3. 3.

    Убедитесь, что на странице «Проверка предварительных условий» в каждой строке с требованиями стоит статус OK. Затем нажмите Далее:

    Экран проверки предварительных условий в Zabbix

  4. 4.

    Введите параметры для подключения к базе данных. Все поля, кроме пароля, будут заполнены автоматически. Если данные заполнены верно, введите пароль, который вы указывали на 7 шаге на этапе установки Zabbix, и нажмите Далее:

    Настройка подключения к БД в веб интерфейсе Zabbix

  5. 5.

    Оставьте параметры по умолчанию и нажмите Далее:

    Детали Zabbix сервера по умолчанию

  6. 6.

    Выберите часовой пояс и тему оформления и нажмите Далее:

    Настройки веб-интерфейса Zabbix

  7. 7.

    Проверьте все параметры установки и нажмите Далее:

    Предварительный обзор инсталляции Zabbix

  8. 8.

    Нажмите Финиш:

    Завершение установки веб-интерфейса Zabbix

  9. 9.

    На странице авторизации введите логин и пароль для доступа в веб-интерфейс:

    Страница авторизации на Zabbix-сервере

    Доступы по умолчанию:

    Логин:

    Пароль:

Готово, вы настроили веб-интерфейс Zabbix. Теперь переходите к установке и настройке агента.

Настройка Zabbix agent Debian

Zabbix-агент — это программа, которая позволяет контролировать ресурсы и приложения (например, статистику процессора, оперативную память и т. д.). Чтобы получать эти данные, агент нужно установить на сервер, который вы хотите отслеживать, а затем добавить этот сервер с агентом на основной Zabbix-сервер.

Установка Zabbix agent на Debian 11

  1. 1.

    Добавьте репозиторий:

    Ubuntu:

    wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb

    Debian:

    wget https://repo.zabbix.com/zabbix/5.5/debian/pool/main/z/zabbix-release/zabbix-release_5.5-1+debian11_all.deb
  2. 2.

    Установите пакет:

    Ubuntu:

    sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb

    Debian:

    dpkg -i zabbix-release_5.5-1+debian11_all.deb
  3. 3.

  4. 4.

    Установите Zabbix агент:

    sudo apt install zabbix-agent
  5. 5.

    Откройте конфигурационный файл агента:

    sudo nano /etc/zabbix/zabbix_agentd.conf
  6. 6.

    В блоке «Option: Server» введите IP-адрес вашего сервера Zabbix, на который агент будет отправлять данные:

    Конфигурационный файл zabbix_agentd.conf

  7. 7.

    В блоке «Option: ServerActive» введите тот же IP-адрес:

    Конфигурационный файл zabbix_agentd.conf 2

  8. 8.

    В блоке «Option: Hostname» введите имя хоста:

    Конфигурационный файл zabbix_agentd.conf 3

  9. 9.

    Чтобы сохранить и закрыть редактор, нажмите CTRL+S и CTRL+X.

  10. 10.

    Запустите агент:

    sudo systemctl start zabbix-agent
  11. 11.

    Перезапустите агент:

    sudo systemctl restart zabbix-agent
  12. 12.

    Включите автозапуск агента:

    systemctl enable zabbix-agent

Готово, агент установлен.

Добавление агента на сервер

Теперь добавьте агент на сервер Zabbix. Для этого:

  1. 1.

    Откройте веб-интерфейс сервера и перейдите в раздел Настройка — Узлы сети:

    Веб-интерфейс Zabbix

  2. 2.

    В правом верхнем углу нажмите Создать узел сети:

    Веб-интерфейс Zabbix 1

  3. 3.

    Введите имя узла и напротив поля «Группы» нажмите Выбрать:

    Веб-интерфейс Zabbix 2

  4. 4.

    Поставьте галочку напротив пункта «Linux servers» и нажмите Выбрать:

    Веб-интерфейс Zabbix 3

  5. 5.

    В блоке «Интерфейсы» нажмите Добавить и из списка выберите Агент:

    Веб-интерфейс Zabbix 4

  6. 6.

    В поле «IP-адрес» введите IP-адрес сервера, на котором вы установили агент:

    Веб-интерфейс Zabbix 5

  7. 7.

    В верхнем меню нажмите Шаблоны.

  8. 8.

    Чтобы присоединить новый шаблон, нажмите Выбрать:

    Веб-интерфейс Zabbix 6

  9. 9.

    Нажмите Выбрать:

    Веб-интерфейс Zabbix 7

  10. 10.

    Выберите группу Templates/Operating systems:

    Веб-интерфейс Zabbix 8

  11. 11.

    Поставьте галочку напротив пункта «Linux by Zabbix agent» и нажмите Выбрать:

    Веб-интерфейс Zabbix 9

  12. 12.

    Нажмите на синюю кнопку Добавить:

    Веб-интерфейс Zabbix 10

  13. 13.

    В левом меню выберите Мониторинг — Узлы сети, чтобы проверить статус добавленного сервера. В строке сервера должен быть зелёный значок ZBX. Он появится в течение нескольких минут:

    Веб-интерфейс Zabbix 11

Готово, сервер добавлен в систему мониторинга Zabbix.

7 июля, 2017 12:25 пп
5 545 views
| Комментариев нет

PHP, Ubuntu

Zabbix – это открытое программное обеспечение для мониторинга сетей и приложений. Zabbix может в реальном времени отслеживать тысячи метрик, собранных с серверов, виртуальных машин или любого другого сетевого устройства. Это позволяет вам здраво оценить состояние машины и своевременно обнаружить проблемы. Zabbix сохраняет полезные данные в базу, что позволяет вам анализировать данные в течение долгого времени и улучшить качество предоставляемых услуг или усовершенствовать оборудование.

Zabbix использует архитектуру «клиент-сервер». На отслеживаемую машину устанавливается агент, который собирает данные и передаёт их серверу Zabbix. Версия Zabbix 3 поддерживает шифрованные подключения между сервером и клиентами, что обеспечивает надёжную защиту данных.

Сервер Zabbix хранит данные в реляционной БД MySQL, PostgreSQL или Oracle. Также он предоставляет веб-интерфейс, с помощью которого можно просматривать данные и настраивать программу.

Данное руководство поможет установить и настроить Zabbix на двух машинах, одна из которых будет использоваться как сервер, а вторая – как отслеживаемый клиент. Также в руководстве используется СУБД MySQL (для хранения данных) и веб-сервер Apache (для обслуживания веб-интерфейса).

Требования

  • Два настроенных сервера Ubuntu 16.04 (руководство по настройке можно найти по этой ссылке).
  • Пользователь с доступом к sudo на каждом сервере.
  • Предварительно установленные Apache, MySQL и PHP на одном из серверов. Установить этот стек можно с помощью этого руководства.

1: Установка сервера Zabbix

Перейдите на сервер, на который вы ранее установили MySQL, Apache и PHP. Эта машина будет использоваться в качестве сервера Zabbix.

ssh 8host@first_server_ip_address

Теперь нужно установить модули PHP, от которых зависит Zabbix. Обновите индекс пакетов:

sudo apt-get update

Установите модули:

sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring

По умолчанию пакеты Zabbix доступны в репозитории, но они устарели. Чтобы установить последнюю стабильную версию Zabbix, добавьте официальный репозиторий. Установите конфигурационный пакет репозитория:

wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
Selecting previously unselected package zabbix-release.
(Reading database ... 55276 files and directories currently installed.)
Preparing to unpack zabbix-release_3.2-1+xenial_all.deb ...
Unpacking zabbix-release (3.2-1+xenial) ...
Setting up zabbix-release (3.2-1+xenial) ...

Обновите индекс пакетов:

sudo apt-get update

Установите сервер Zabbix и фронтенд с поддержкой MySQL.

sudo apt-get install zabbix-server-mysql zabbix-frontend-php

Теперь нужно установить агент Zabbix, который будет собирать данные о сервере Zabbix:

sudo apt-get install zabbix-agent

2: Настройка базы данных MySQL для Zabbix

Создайте новую БД MySQL и добавьте в неё базовые данные. Также нужно создать специального пользователя для Zabbix.

Откройте MySQL как пользователь root. По запросу введите MySQL root-пароль.

mysql -uroot -p

Создайте БД Zabbix с поддержкой символов UTF-8:

create database zabbix character set utf8 collate utf8_bin;

Затем создайте пользователя, с помощью которого Zabbix сможет взаимодействовать с БД, и выберите пароль для него:

grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';

Сбросьте привилегии:

flush privileges;

Закройте MySQL:

quit;

Импортируйте базовую схему БД Zabbix, которая поставляется вместе с программой с помощью команды zcat (данные в файле сжаты):

zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Введите пароль пользователя zabbix.

После выполнения команды вы можете получить ошибку:

ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)

Она возникает при введении неправильного пароля; возможно, вместо пароля пользователя zabbix вы ввели пароль root.

Чтобы сервер Zabbix мог взаимодействовать с БД, нужно добавить пароль пользователя БД в конфигурационный файл Zabbix:

sudo nano /etc/zabbix/zabbix_server.conf

Найдите следующий раздел:

### Option: DBPassword
#       Database password. Ignored for SQLite.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=

Эти параметры настраивают подключение к БД. В параметре DBPassword нужно указать пароль пользователя базы данных.

DBPassword=your_zabbix_mysql_password

Теперь нужно настроить PHP для поддержки веб-интерфейса Zabbix.

3: Настройка PHP для поддержки Zabbix

Веб-интерфейс Zabbix написан на PHP, потому PHP требует дополнительной настройки для его поддержки. Во время установки Zabbix создаёт конфигурационный файл Apache, в котором и хранятся все необходимые параметры. Этот файл находится в /etc/zabbix и автоматически загружается Apache. Откройте файл:

sudo nano /etc/zabbix/apache.conf

В файле находятся параметры PHP для поддержки веб-интерфейса Zabbix. Укажите правильный часовой пояс (по умолчанию этот параметр закомментирован).

...
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
</IfModule>

Раскомментируйте выделенную красным строку и укажите в ней свой часовой пояс.

Примечание: Список часовых поясов можно найти здесь.

Сохраните и закройте файл.

Перезапустите Apache:

sudo systemctl restart apache2

Запустите сервер Zabbix:

sudo systemctl start zabbix-server

Убедитесь, что сервер Zabbix успешно запущен:

sudo systemctl status zabbix-server

Команда должна вернуть:

zabbix-server.service - Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)
Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago
Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
...

Теперь включите автозапуск Zabbix:

sudo systemctl enable zabbix-server

Итак, сервер запущен и подключен к БД.

4: Установка веб-интерфейса Zabbix

Веб-интерфейс Zabbix позволяет просматривать отчёты и добавлять новые хосты, которые нужно мониторить. Чтобы начать установку, запустите браузер и откройте ссылку:

http://your_zabbix_server_ip_address/zabbix/

На экране появится приветственная страница. Нажмите Next step.

На следующем экране вы увидите таблицу, в которой перечислены все требования и зависимости, необходимые для запуска Zabbix. Все строки в этом списке должны быть отмечены зелёным OK в последнем столбце. Если это так, то окружение полностью готово к работе Zabbix. Просмотрите весь список и в случае необходимости установите недостающие компоненты. Затем нажмите Next step.

На следующей странице нужно указать данные для подключения к БД.

Веб-интерфейс Zabbix требует доступа к БД, чтобы иметь возможность управлять хостами и читать данные для отображения. Введите учётные данные БД MySQL и нажмите Next step, чтобы продолжить.

На следующем экране оставить параметрам их значения по умолчанию. Поле Name опционально. С его помощью интерфейс отличает один сервер от другого (при наличии нескольких серверов Zabbix). Поскольку в этом руководстве используется только один мониторящий сервер, можно просто нажать Next step.

На следующем экране появится предварительный обзор установки. Тут вы можете убедиться, что все данные указаны правильно. Нажмите Next step, чтобы перейти к последней странице.

Установка веб-интерфейса завершена. Во время установки будет создан конфигурационный файл /usr/share/zabbix/conf/zabbix.conf.php, который можно скопировать и использовать в дальнейшей работе. Нажмите Finish, чтобы получить доступ к форме аутентификации. Имя пользователя и пароль по умолчанию: Admin и zabbix соответственно.

Но прежде чем открыть интерфейс, нужно подготовить клиентский сервер Zabbix.

5: Установка и настройка клиента Zabbix

Перейдите на второй сервер:

ssh 8host@second_server_ip_address

Как и на первом сервере, запустите следующие команды, чтобы установить официальный репозиторий Zabbix:

wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

Обновите индекс пакетов:

sudo apt-get update

Установите агент Zabbix:

sudo apt-get install zabbix-agent

Zabbix поддерживает шифрование на основе сертификатов. Настройка центра сертификации выходит за рамки данного руководства, но вы можете использовать предварительно согласованный ключ (PSK), чтобы обеспечить соединение между сервером и агентом.

Сгенерируйте PSK:

sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

Скопируйте ключ, он понадобится при настройке хоста:

cat /etc/zabbix/zabbix_agentd.psk

Ключ имеет примерно такой вид:

cd12686e166a80aa09a227ae5f97834eaa3d5ae686d2ae39590f17ef85dd6de5

Откорректируйте настройки агента Zabbix, чтобы обеспечить безопасное соединение с сервером Zabbix.

sudo nano /etc/zabbix/zabbix_agentd.conf

Файл хранит множество параметров, каждый из которых содержит информативный комментарий.

Укажите IP-адрес сервера Zabbix:

### Option: Server
#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
#       Incoming connections will be accepted only from the hosts listed here.
#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=
Server=127.0.0.1

Замените стандартное значение строки Server= IP-адресом сервера Zabbix.

Server=your_zabbix_server_ip_address

Затем найдите параметры для настройки безопасного соединения (раздел TSLConnect) и включите поддержку PSK.

### Option: TLSConnect
#       How the agent should connect to server or proxy. Used for active checks.
#       Only one value can be specified:
#               unencrypted - connect without encryption
#               psk         - connect using TLS and a pre-shared key
#               cert        - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSConnect=unencrypted

Измените значение строки TLSConnect:

TLSConnect=psk

Найдите раздел TLSAccept:

### Option: TLSAccept
#       What incoming connections to accept.
#       Multiple values can be specified, separated by comma:
#               unencrypted - accept connections without encryption
#               psk         - accept connections secured with TLS and a pre-shared key
#               cert        - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSAccept=unencrypted

Настройте входящие соединения для поддержки psk:

TLSAccept=psk
Найдите раздел TLSPSKIdentity:
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKIdentity=

Выберите уникальное имя для ключа PSK:

TLSPSKIdentity=PSK 001

Теперь этот уникальный идентификатор ключа можно использовать при добавлении новых хостов через веб-интерфейс.

Затем укажите, в каком файле хранится ключ. Найдите опцию TLSPSKFile:

### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKFile=

Чтобы указать агенту Zabbix место хранения ключа, добавьте строку:

TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

Сохраните и закройте файл.

Запустите агент Zabbix и настройте его автозапуск:

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

На всякий случай убедитесь, что агент Zabbix успешно запущен:

sudo systemctl status zabbix-agent

Команда должна вернуть:

zabbix-agent.service - Zabbix Agent
Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago
Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
...

Теперь агент может передавать данные на сервер Zabbix. Чтобы начать работу, нужно подключиться к агенту через веб-консоль сервера.

Примечание: Если вы используете UFW, настройте подключения к порту 10050

sudo ufw allow 10050/tcp

Читайте также: Настройка брандмауэра UFW на сервере Ubuntu 16.04

6: Добавление хоста на сервер Zabbix

Чтобы сервер Zabbix начал отслеживать установленный агент, нужно добавить его в список хостов через веб-интерфейс.

Откройте интерфейс Zabbix:

http://first_server_ip_address/zabbix/

В верхней панели нажмите Configuration → Hosts. Затем нажмите кнопку Create host в правом верхнем углу.

На экране появится страница настройки хоста. В полях Host name и IP ADDRESS укажите имя и IP-адрес клиента. Затем выберите группу хоста; вы можете выбрать одну из существующих групп или создать свою. Один хост может входить сразу в несколько групп. Группа Linux Servers выбрана по умолчанию и подходит в большинстве случаев. Добавив группу, откройте вкладку Templates.

Введите в поле поиска Template OS Linux и нажмите Add, чтобы добавить этот шаблон.

Откройте вкладку Encryption. Выберите PSK в Connections to host и Connections from host. В PSK identity укажите имя ключа, установленное в параметре TLSPSKIdentity на агенте Zabbix (в данном случае PSK 001).

В поле PSK укажите ключ, который хранится в /etc/zabbix/zabbix_agentd.psk на агенте.

Нажмите Add, чтобы добавить хост.

Новый хост появится в списке. Через несколько секунд можно открыть Monitoring → Latest data и просмотреть данные агента.

Чтобы убедиться, что всё работает должным образом, остановите клиентский сервер. В такой ситуации сервер Zabbix должен сообщить о проблеме.

Zabbix agent is unreachable for 5 minutes.

Чтобы добавить новые клиенты Zabbix, установите программное обеспечение агента Zabbix, создайте PSK, настройте агент и добавьте его в список веб-консоли.

Tags: Ubuntu 16.04, Zabbix

Понравилась статья? Поделить с друзьями:
  • Error 1045 28000 access denied for user username localhost using password yes
  • Error 1045 28000 access denied for user root localhost using password yes windows
  • Error 1045 28000 access denied for user root localhost using password yes ubuntu 20
  • Error 1045 28000 access denied for user root localhost using password yes docker
  • Error 1045 28000 access denied for user root localhost using password yes centos