Zabbix – monitoring MySQL + replikacja

Zabbix

Zabbix – monitoring MySQL + replikacja

 

Zabbix jest ogromnym narzędziem służącym do monitoringu który jak wiemy w administracji serwerami jest niezbędny.          Potrafi monitorować praktycznie wszystko więc jak już mamy zainstalowany ten kombajn to fajnie było by monitorować więcej niż ICMP 😉

Monitoring MySQL w Zabbix nie jest skomplikowany, aczkolwiek wymaga użycia Agent’a i zmian w jego konfiguracji.

Instalacji agenta nie będziemy opisywać i skupimy się tylko na czystej konfiguracji monitorowania serwera MySQL.

Zaczynamy od utworzenia użytkownika dzięki któremu będziemy mogli pobrać niezbędne parametry.

Generujemy jakieś losowe hasło w bashu np. tak:

</dev/urandom tr -dc '12345qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c10; echo ""

Logujemy się do konsoli MySQL i wydajemy polecenie ( podmieniając HASLO oczywiście ):

Bez replikacji:

GRANT SELECT ON zabbix.* To [email protected] IDENTIFIED BY 'HASLO';

Z replikacją:

GRANT SELECT, SUPER, REPLICATION CLIENT ON zabbix.* To [email protected] IDENTIFIED BY 'HASLO';

Jeżeli nie dodamy powyższych parametrów zobaczymy coś ala:

ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation

Gdy już mamy użytkownika dodajemy odpowiednie wpisy konfiguracyjne do pliku zabbix_agentd.conf ( podmieniając HASLO oczywiście ):

Bez replikacji:

UserParameter=mysql.ping,mysqladmin -uzabbix -pHASLO ping|grep alive|wc -l
 UserParameter=mysql.uptime,mysqladmin -uzabbix -pHASLO status|cut -f2 -d":"|cut -f1 -d"T"
 UserParameter=mysql.threads,mysqladmin -uzabbix -pHASLO status|cut -f3 -d":"|cut -f1 -d"Q"
 UserParameter=mysql.questions,mysqladmin -uzabbix -pHASLO status|cut -f4 -d":"|cut -f1 -d"S"
 UserParameter=mysql.slowqueries,mysqladmin -uzabbix -pHASLO status|cut -f5 -d":"|cut -f1 -d"O"
 UserParameter=mysql.qps,mysqladmin -uzabbix -pHASLO status|cut -f9 -d":

Z replikacją to co wyżej plus:

UserParameter=mysql.replikacja.sql.run,mysql -uzabbix -pHASLO -e 'show slave statusG' | grep Slave_SQL_Running | awk '{print $2}' | sed 's/No/0/;s/Yes/1/'

Po tym wszystkim pozostaje zresetować agenta i udać się do panelu Zabbixa by wprowadzić konfiguracje schematu.

Schemat Zabbix w formie XML możliwej do importu w systemie:

https://netfs.pl/files/zbx_mysql_template.xml

Teraz wystarczy dodać do zaimportowanego schematu hosty które mają mieć dodaną konfiguracje agenta.

MySQL 5.1 problem slow_log – Errcode: 2

MySQL

 

MySQL 5.1 problem slow_log – Errcode: 2

 

Jeżeli po aktualizacji czy włączeniu slow_log na serwerze MySQL pojawi się coś podobnego do tego:

Error : Can't get stat of './mysql/slow_log.CSV' (Errcode: 2)
 Error : Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
mysql> set global slow_query_log=ON;
ERROR 13 (HY000): Can't get stat of './mysql/slow_log.CSV' (Errcode: 2)

Należy wyłączyć slow log:

mysql> set global slow_query_log=0;
 Query OK, 0 rows affected (0.00 sec)

Utworzyć brakujące pliki:

[email protected]:/var/lib/mysql/mysql# touch slow_log.CSV
 [email protected]:/var/lib/mysql/mysql# touch slow_log.CSM
 [email protected]:/var/lib/mysql/mysql# chown mysql:mysql slow_log.*

Włączyć slow_log:

mysql> set global slow_query_log=1;
 Query OK, 0 rows affected, 1 warning (0.06 sec)

i naprawić tabele:

mysql> repair table mysql.slow_log;
 +----------------+--------+----------+----------+
 | Table | Op | Msg_type | Msg_text |
 +----------------+--------+----------+----------+
 | mysql.slow_log | repair | status | OK |
 +----------------+--------+----------+----------+
 1 row in set (0.02 sec)

Problem rozwiązany 😉

PureFTPd + TLS + Debian = 3 min ?

pure-ftpd

PureFTPd + TLS + Debian = 3 min ?

 

PureFTPd jako wydajny i bezpieczny serwer FTP ? TAK !

W gruncie rzeczy to nie lubimy protokołu FTP i gdzie tylko możemy tam stosujemy sftp bądź scp, aczkolwiek niektórzy są bardzo do niego przyzwyczajeni 😉

Przedstawimy jak w prosty sposób uzyskać serwer PureFTPd na systemie Debian 7 ( choć zadziała na starszej wersji jak i też Ubuntu):

apt-get update -y
 apt-get install pure-ftpd -y
 echo "yes" > /etc/pure-ftpd/conf/Daemonize
 echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
 echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
 echo "yes" > /etc/pure-ftpd/conf/IPV4Only
 echo "yes" > /etc/pure-ftpd/conf/UnixAuthentication
 echo "35000 35999" > /etc/pure-ftpd/conf/PassivePortRange
 echo "1" > /etc/pure-ftpd/conf/TLS
cd /etc/ssl/private && openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
/etc/init.d/pure-ftpd restart

Powyższe polecenia zainstalują serwer PureFTPd, następnie wprowadzone wpisy konfiguracyjne pozwolą na:

– wyłączenie anonimowego logowania.

– włączenie chroot dla konta czyli użytkownik będzie mógł pracować tylko w swoim katalogu.

– włączenie obsługi tylko ipv4 – tu można oczywiście ją włączyć jeżeli jest wymagana.

– włączenie obsługi użytkowników systemowych.

– możliwość połączeń pasywnych na portach od 35000 do 35999

– włączenie obsługi TLS – jest to bardzo zalecane w przypadku logowania się na zdalny serwer

– wygenerowanie certyfikatu SSL do obsługi SSL, możemy go oczywiście zastąpić certyfikatem używanym na stronie internetowej. Tu pojawią się pola do wypełnienia, takie jak: Kod kraju, Województwo, Miasto, Firma, Firma dział, nazwa domeny i adres e-mail. Następnie należy wcisnąć przycisk enter bez nadawania dodatkowych haseł, zostanie utworzony certyfikat

– Zabezpieczenie klucza prywatnego poprzez nadanie odpowiednich  uprawnień.

i restart 😉

PureFTPd bardzo dobrze działa z bazami danych pozwalając ustawić przez nie autoryzacje czy quote. Jednak o tym już w innym wpisie…

Pomocne ?