Thứ Hai, 11 tháng 11, 2019

[Other] 4 giây - 2 phút - 72 giờ và 21 ngày: Công thức kì diệu giúp bạn đạt mọi mục tiêu và không bao giờ bị trì hoãn

Trước khi bắt đầu đọc bài viết này, bạn hãy dành một chút thời gian để suy nghĩ xem: Đã bao nhiêu lần bạn lập ra danh sách các mục tiêu mà mình muốn thực hiện? Chắc chắn, số lần đó luôn nhiều hơn những hành động thực tế bạn làm để đạt được mục tiêu.
Luật 4 giây
Lời khuyên: Hãy hít thở thật sâu và chậm 4 giây trước khi bạn hành động hoặc đưa ra bất cứ quyết định quan trọng nào.
Trong cuộc sống , chúng ta thường có xu hướng trì hoãn việc đưa ra những quyết định quan trọng. Điều này có vẻ như một gánh nặng quá lớn, do vậy chúng ta muốn chờ thêm thời gian. Cho đến khi bắt buộc phải đưa ra quyết định, chúng ta sẽ quyết định nhất thời và thông thường sau đó sẽ là sự hối tiếc.
Nguyên tắc 4 giây sẽ giúp bạn đưa ra những quyết định tốt hơn. Peter Bregman, tác giả của cuốn sách “Luật 4 giây” cho rằng bạn nên hít thở thật đều và sâu trong vòng 4 giây; sau đó bạn có thể hành động.
Tại sao việc này quan trọng? Đó chính là nghệ thuật tự kiểm soát. Hít thở sâu sẽ tránh cho bạn khỏi việc đưa ra các quyết định vội vã và mang lại cho bạn thời gian để đánh giá kết quả của mỗi hành động.
Luật 2 phút

Lời khuyên: Nếu việc nào đó chỉ tốn chưa đến 2 phút để hoàn thành, bạn hãy thực hiện nó ngay lập tức.
Rất nhiều nhiệm vụ chúng ta trì hoãn thường không khó để hoàn thành. Chúng ta thường tránh làm chúng cho đến hạn chót, mặc dù nó không đòi hỏi kỹ năng hay kiến thức đặc biệt. Chẳng hạn, bạn cần phải gọi điện cho đối tắc hoặc gửi một email. Việc này chỉ mất 1 đến 2 phút nhưng bạn lại trì hoãn cho đến phút cuối cùng. Nhiệm vụ đơn giản này làm bạn bị chùn bước và mất tập trung.
Nguyên tắc 2 phút này sẽ giúp bạn đạt được những mục tiêu lớn. Mỗi mục tiêu đi kèm với một danh sách các hành động nhỏ. Chẳng hạn, bạn phải đọc 1 cuốn sách khoảng 2.000 trang, việc này sẽ khiến bạn mất vài tháng. Nếu như bạn tiếp tục nhìn cuốn sách như một tổng thể, bạn sẽ thấy nó khó mà hoàn thành, do đó bạn dễ bỏ cuộc. Nhưng nếu như bạn chia nhỏ cuốn sách thành từng trang và đặt mục tiêu đọc từng trang một, bạn sẽ mất chưa đến 2 phút cho một trang sách.
Luật 72 giờ

Lời khuyên: Khi bạn đã có 1 ý tưởng, hãy thực hiện nó trong vòng 3 ngày (72 giờ).
Bodo Schaefer – tác giả sách, doanh nhân kiêm diễn giả nổi tiếng người Đức cho rằng nguyên tắc đơn giản này sẽ giúp bạn đẩy lùi trì hoãn: Đừng bao giờ đặt ra các nhiệm vụ kéo dài quá 72 giờ. Nếu bạn trì hoãn hành động này, ý tưởng của bạn sẽ mãi nằm trên giấy mà thôi.
Luật 21 ngày

Lời khuyên: Hãy cho bản thân 21 ngày để phát triển một thói quen
Khi bạn muốn đạt được một mục tiêu nào đó, bạn phải biến các hành động thành thói quen hàng ngày. Hãy lập lại danh sách mục tiêu một lần nữa, tập trung vào các mục tiêu đơn lẻ và biến nó thành hành động, sau đó thực hiện đều đặn mỗi ngày. Đó có thể là viết blog, ngồi thiền, chạy bộ hay học tiếng Anh… bất cứ việc gì.
Trong những ngày đầu tiên, bạn sẽ cần rất nhiều nỗ lực. Nhưng một khi đã quen dần với nó, bạn sẽ cảm thấy điều này như một phần cuộc sống.
Nguyên tắc 10.000 giờ

Lời khuyên: Khi bạn cố gắng để thành thạo trong lĩnh vực nào đó, bạn cần dành khoảng 10.000 giờ thực hành việc đó.
Trong cuốn sách “Outliers: The Story of Succes” (Tạm dịch: Những kẻ xuất chúng), tác giả người Canada Malcolm Gladwell đã đề cập đến nguyên tắc 10.000 giờ thực hành đóng góp vào thành công của hầu hết các doanh nhân, triệu phú trên thế giới.
Để thực hiện quy tắc này, bạn hãy lựa chọn lĩnh vực mà mình yêu thích và lập kế hoạch để thực hành mỗi ngày. Hãy theo dõi thời gian mà bạn thực hành việc đó để đảm bảo bạn thực hiện đủ 10.000 giờ.

Thứ Sáu, 11 tháng 1, 2019

Zabbix Check Java JMX






ZABBIX MONITORING JAVA JMX

    


Contents
Sơ đồ hoạt động của Zabbix JMX.. 2
Phần 1: Cài đặt Tomcat + Enable JMX.. 2
Phần 2: Cài đặt và setting Zabbix-Server. 4
Phần 3: Bảo mật JMX.. 6
Phần 4: Fix lỗi template Tomcat7/8 của zabbix not-support. 8



tuanduong122


Sơ đồ hoạt động của Zabbix JMX



Ở bài hướng dẫn này chúng ta sẽ sử dụng ở phía client là : tomcat web-server và enable jmx lên (với các tiến trình chạy trên nền java khác cũng tương tự).
[Zabbix-server --- Zabbix Java gateway --- Tomcat JMX]

Phần 1: Cài đặt Tomcat + Enable JMX

Cài đặt java
# tar -xvzf jdk-8u181-linux-x64.tar.gz
# chown -R root.root jdk1.8.0_181
# mv jdk1.8.0_181 /opt/

Setting môi trường java
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_181/bin/java 2
# alternatives --config java
# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_181/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_181/bin/javac 2
# alternatives --install /usr/bin/javaws javaws /opt/jdk1.8.0_181/bin/javaws  2
# alternatives --set jar /opt/jdk1.8.0_181/bin/jar
# alternatives --set javac /opt/jdk1.8.0_181/bin/javac
# alternatives --set javaws /opt/jdk1.8.0_181/bin/javaws
# java –version

Cài đặt Tomcat
Tải tomcat tại đường dẫn https://tomcat.apache.org/download-80.cgi
# tar -xvzf apache-tomcat-8.5.37.tar.gz
# mv apache-tomcat-8.5.37 /opt/tomcat

Setting tomcat bật JMX
# vim /opt/tomcat/bin/setenv.sh
#Set Heap Memory Commnit and Max
export CATALINA_OPTS="$CATALINA_OPTS -Xms1024m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx3096m"

#Enable JMX with no authenticaion
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
 -Dcom.sun.management.jmxremote.port=12345 \
 -Dcom.sun.management.jmxremote.authenticate=false \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Djava.rmi.server.hostname=192.168.80.134"
IP 192.168.80.134 chính là ip của client.
Start tomcat
# cd /opt/tomcat/bin
# ./startup.sh
# tail -n 1000 /opt/tomcat/logs/*
# netstat -apln | grep 12345
tcp        0      0 :::12345                    :::*                        LISTEN      1553/java

Ta có thể tải jconsole.jar về để check real-time (Yêu cầu cài đặt java jdk để mở trên window https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html )






  



Phần 2: Cài đặt và setting Zabbix-Server


Cài đặt thêm zabbix-gateway-java trên zabbix-server
# yum install zabbix-java-gateway

Thêm config
[root@zabbix-server opt]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

[root@ zabbix-server opt]# vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_PORT=10052
START_POLLERS=5

Restart zabbix-server và zabbix-gateway java
# /etc/init.d/zabbix-server restart
# /etc/init.d/zabbix-java-gateway restart

# ps aux | grep java
zabbix     2212  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000057 sec, idle 5 sec]
zabbix     2213  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000043 sec, idle 5 sec]
zabbix     2214  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000059 sec, idle 5 sec]
zabbix     2215  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000034 sec, idle 5 sec]
zabbix     2216  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000049 sec, idle 5 sec]
zabbix     2275  2.4  2.1 2353872 30608 ?       Sl   21:04   0:00 java -server -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-3.4.15.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.listenPort=10052 -Dzabbix.startPollers=5 com.zabbix.gateway.JavaGateway
root       2287  0.0  0.0 103324   896 pts/0    S+   21:04   0:00 grep java


Phần 1 ta đã cài agent, tiếp theo ta sẽ add client vào giám sát trong zabbix
Add hoặc sửa Host




Thêm Template:










Phần 3: Bảo mật JMX

Mục đích là để bảo mật JMX. Khi kết nối cần phải nhập pass và user. https://db.apache.org/derby/docs/10.10/adminguide/radminjmxenabledisable.html
Stop tomcat. Change lại setenv.sh
# /opt/tomcat/bin/shutdown.sh
# vim /opt/tomcat/bin/setenv.sh
#Enable JMX with authentication. You need create file "jmxremote.access" and "jmxremote.password" and chown readonly permission.
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
 -Dcom.sun.management.jmxremote.port=12345 \
 -Dcom.sun.management.jmxremote.authenticate=true \
 -Dcom.sun.management.jmxremote.password.file=/opt/tomcat/conf/jmxremote.password \
 -Dcom.sun.management.jmxremote.access.file=/opt/tomcat/conf/jmxremote.access \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Djava.rmi.server.hostname=192.168.80.134"

[root@java-client ~]# vim /opt/tomcat/conf/jmxremote.password
monitorRole  1234321
controlRole  1234567
[root@java-client ~]# vim /opt/tomcat/conf/jmxremote.access
monitorRole readonly
controlRole readwrite
[root@java-client ~]# chmod 600 /opt/tomcat/conf/jmxremote.access
[root@java-client ~]# chmod 600 /opt/tomcat/conf/jmxremote.password

# /opt/tomcat/bin/startup.sh

Client đã setting password xong. Giờ cần khai báo user/pass cho zabbix-server
Cách 1: Vào sửa từng Item trong Template


Cách 2: Export Template ra, sửa trực tiếp tất cả iteam trong file .xml và Import lại

Ta Replace All
                    <username/>
                    <password/>
Thành
                    <username>monitorRole</username>
                    <password>1234321</password>
Hoặc có thể sử dụng MACRO của zabbix thay cho trường Username/pass cũng được.

                    <username>{$USER_JMX}</username>
                    <password>{$PASS_JMX}</password>








Phần 4: Fix lỗi template Tomcat7/8  zabbix not-supported.



VD: Nhìn trên zabbix ta có Item : Template App Apache Tomcat JMXhttp-8080 threads max
Có key: jmx["Catalina:type=ThreadPool,name=http-8080",maxThreads]

Ta sử dụng Jconsole / Mbeans để tìm vị trí của nó trong tree

Tomcat version 7/8 sử dụng connector NIO. Vậy ta có kết luận là Zabbix đang gọi sai Name trong ThreadPool

Ta vào Template của zabbix, sửa lại theo đúng tên như sau:


jmx["Catalina:type=ThreadPool,name=http-8080",maxThreads]
Sửa thành:
jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",maxThreads]
-------------------------------------------------------
Ngoài ra ta có thể tải check_jmx của nagios để check bằng console

Ta chạy lệnh
[root@zabbix-server]# ./check_jmx -U  service:jmx:rmi:///jndi/rmi://192.168.80.134:12345/jmxrmi -O "Catalina:type=ThreadPool,name=\"http-nio-8080\"" -A maxThreads
JMX OK maxThreads=200
Lệnh check_jmx chính là chạy :
[root@zabbix-server]#  java -cp jmxquery.jar org.nagios.JMXQuery -U  service:jmx:rmi:///jndi/rmi://192.168.80.134:12345/jmxrmi -O "Catalina:type=ThreadPool,name=\"http-nio-8080\"" -A maxThreads
JMX OK maxThreads=200



Thứ Năm, 29 tháng 6, 2017

Phần 1/2: PrivacyIDEA giải pháp xác thực 2 bước, chứng thực-quản lý tập trung. (update 20190712)

PrivacyIDEA giải pháp xác thực 2 bước, chứng thực-quản lý tập trung.
Giới thiệu:
- Bạn đã bao giờ thấy Google/Microsoft/Skype gửi cho bạn 1 đoạn mã qua SMS/Email để đăng nhập chưa? . 
- Bạn đã dùng thiết bị tạo key OTP của 1 số ngân hàng để thanh toán giao dịch chưa? (vd: techcombank)- Bạn đã dùng mã OTP để đăng nhập wifi, đăng nhập web, login linux/window với pass bằng otp...
- Bạn đã dùng ssh-key để login vào server bao giờ chưa?. Quản lý ssh-key tập trung, muốn gán vào server tùy ý.
- Bạn đã dùng thiết bị OTP (One Time Password - Mật khẩu thay đổi theo thời gian) bao giờ chưa?

PrivacyIDEA có rất nhiều plugin hỗ trợ đăng nhập ứng dụng: từ PAM, Radius, ssh OTP, basic-authen OTP cho đến REST API để viết code gọi vào. Ta sẽ đi lần lượt các phần sau:

Ở Bài viết này. Chúng ta sẽ đi xây dựng hệ thống server xác thực 2 bước và các ứng dụng của nó.

Đứng về mặt system-admin. Ta sẽ có sơ đồ sau
PrivacyIDEA đang hỗ trợ những cách thức đăng nhập sau:



Phần 1 : Cài đặt PrivacyIDEA server

(Nguồn: https://privacyidea.readthedocs.io/en/latest/)
1.Cài đặt trên Ubuntu 16.04
add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install python-privacyidea privacyideaadm
  • Cài đặt gói giao diện cho PrivacyIDEA
apt-get install privacyidea-apache2
Trong gói cài đặt privacyidea-apache2, sẽ bao gồm cả mysql. Vì vậy bạn cần nhập mật khẩu mysql trong lúc cài đặt.
-- Tạo tài khoản admin đăng nhập web PrivacyIDEA
pi-manage admin add admin -e admin@localhost

Truy cập vào địa chỉ https://<your_privacyidea_ip> đăng nhập với pass là admin/<password> như đã tạo ở bước trên.

Lần đầu tiên đăng nhập, bạn sẽ được hỏi tự động tạo Default Realm. Nếu chưa sử dụng bao giờ, bạn nên chọn Create Realm.

Như vậy, bạn đã hoàn tất việc cài đặt PrivacyIDEA server. Việc ứng dụng PrivacyIDEA 2factor sẽ được hướng dẫn ở các phần tiếp theo.

Phần 2: Login ubuntu sử dụng OTP token key.

(Nguồn: https://www.privacyidea.org/ssh-keys-and-otp-really-strong-two-factor-authentication/)
Mô tả: Ta có thể sử dụng mật khẩu thay đổi theo thời gian để đăng nhập vào pc/server. Như vậy việc bỏ đi mật khẩu cố định sẽ rất an toàn cho hệ thống cũng như máy cá nhân.

Bước 1: Cài Đặt
add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install privacyidea-pam
Kiểm tra UsePAM đã được enable chưa
#vim /etc/ssh/sshd_config 
UsePAM yes
Đổi config của PAM
# vim /etc/pam.d/sshdĐổi: 
@include common-auth
Thành:
@include common-auth-pi
Thay đổi config:
# vim /etc/pam.d/common-auth-pi 
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_python.so /lib/security/privacyidea_pam.py url=https://ĐỊA_CHỈ_PRIVACYIDEA_SERVER  auth  nosslverify debug
auth    requisite             pam_deny.so
auth    required              pam_permit.so
auth    optional              pam_cap.so
Chú ý đổi địa chỉ về privacy-server của bạn. Khi bạn nhập mật khẩu token key, PAM sẽ dùng python để lấy mật khẩu được đồng bộ ở trên server privacy về.
/etc/init.d/ssh restart
Bước 2:
Tạo token key trên server. Vào mục User chọn user nào được chỉ định

Chọn Enroll New Token

Ta chọn TOTP

Cài đặt phần mềm trên điện thoại: Google authenticator



Như vậy là trên màn hình điện thoại, ta đã có password cho user FRAMGIA thay đổi theo thời gian. Khi đăng nhập, ta có thể dung pass này .
(Note:
- Nếu bạn muốn bảo mật thêm cho OTP, như chèn 1 đoạn pass TEXT{otp} thì ta chỉ việc điền text vào dòng PIN khi Enroll new Token
- Trường hợp đăng nhập bằng OTP không được, bạn hãy theo dõi log /var/log/auth.log . Và nhớ kiểm tra giờ Server đúng với giờ điện thoại nhé (nên dùng ntp-time để đồng bộ).
Đây là log auth.log cho user danhtuan trên privacyidea (update 20190712).


Có một thắc mắc hỏi? tại sao ko dùng google authenticator có sẵn trên ppa của ubuntu, mà phải mất công đi cài privacyIDEA. Đó là vì PrivacyIDEA hỗ trợ quản lý user tập trung, dùng 1 mã OTP cho tất cả server đều được. Khi cần ta có thể cấp mã cho user. Khi loại bỏ quyền thì rất dễ dàng có thể xóa đoạn authen ngay trên giao diện web quản lý…..

Phần 3: Quản lý tập trung ssh-key bằng privacyIDEA.

Mời bạn theo dõi tiếp bài sau của tôi.
FRAMGIA : https://viblo.asia skype: tuanduong122 , Blogspot:  tuanduong122
Do kiến thức của người viết có hạn. Nếu bài viết thấy có lỗi hoặc sai sót. Mong các bạn comment/contact giúp bài viết hoàn thiện hơn. Xin cảm ơn

Debug exec pod with no any command support

  Một ngày đẹp trời pod bị lỗi. Bạn thử ngay lệnh "kubectl exec -it ..." vào pod kiểm tra. Nhưng quãi đạn, pod không hỗ trợ bất kỳ...